Token导航 LogoToken导航TokenDH.com
开发需要联网github未标认证来源可访问许可证需确认审计通过

riverpod-offline河波德离线

Agent Skill

riverpod-offline 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

259

周安装

11

GitHub Stars

7

下载量

91
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:riverpod-offline(河波德离线)
来源仓库:https://github.com/serverpod/skills-registry
仓库路径:skills/riverpod-offline
安装命令:
npx skills add https://github.com/serverpod/skills-registry --skill riverpod-offline
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/serverpod/skills-registry --skill riverpod-offline

简介

riverpod-offline 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。

  • 适用于需要离线环境或减少网络依赖的 Codex、Claude、Cursor、Gemini CLI 场景。
  • 通过 npx skills add 命令从 serverpod/skills-registry 安装。
  • 安装前应评估其对网络访问的限制及本地资源使用影响。
  • 原始 SKILL.md 未提供技术细节,功能尚不明确。

SKILL.md

Riverpod — Offline persistence (experimental)

Instructions

Offline persistence stores provider state on device so it survives restarts and works offline. Riverpod is storage-agnostic; packages like riverpod_sqflite provide a Storage implementation. Only Notifier-based providers can be persisted. The feature is experimental.

Creating a Storage

Install a package (e.g. riverpod_sqflite + sqflite) and create a Storage. With SQFlite:

final storageProvider = FutureProvider<Storage<String, String>>((ref) async {
  return JsonSqFliteStorage.open(
    join(await getDatabasesPath(), 'riverpod.db'),
  );
});

Persisting a notifier

Inside the notifier's build, call persist with: the Storage (e.g. ref.watch(storageProvider.future)), a unique key, and encode/ decode for your state. Do not await persist; Riverpod handles it.

class TodoList extends AsyncNotifier<List<Todo>> {
  @override
  Future<List<Todo>> build() async {
    persist(
      ref.watch(storageProvider.future),
      key: 'todo_list',
      encode: (todos) => todos.map((todo) => {'task': todo.task}).toList(),
      decode: (json) => (json as List).map((todo) => Todo(task: todo['task'] as String)).toList(),
    );
    return fetchTodosFromServer();
  }
}

Keys

  • Unique across all persisted providers (same key = same row, risk of corruption).
  • Stable across restarts (changing the key loses restored state).
  • For family providers, include the parameter in the key.

JsonPersist (code generation)

With riverpod_sqflite and codegen, use @JsonPersist() so key/encode/decode are generated:

@riverpod
@JsonPersist()
class TodoList extends _$TodoList {
  @override
  Future<List<Todo>> build() async {
    persist(ref.watch(storageProvider.future));
    return fetchTodosFromServer();
  }
}

Cache duration

By default state is cached for a short time (e.g. 2 days). For long-lived data (e.g. user preferences), set StorageOptions:

persist(
  ref.watch(storageProvider.future),
  options: const StorageOptions(cacheTime: StorageCacheTime.unsafe_forever),
  // ...
);

If using forever, plan to delete or migrate data when the app changes; Riverpod does not do migrations.

Destroy key (simple migration)

When the data shape changes, use destroyKey so old data is discarded:

options: const StorageOptions(destroyKey: '1.0'),

Bump the string in new releases; old persisted state is then ignored and the provider starts fresh.

Waiting for decode

To initialize from persisted state instead of a network call, await the persist future:

await persist(ref.watch(storageProvider.future), key: 'todo_list', ...).future;
return state.value ?? <Todo>[];

Testing

Override the storage provider with Storage.inMemory() so tests don't need a real database:

ProviderScope(
  overrides: [
    storageProvider.overrideWith((ref) => Storage<String, String>.inMemory()),
  ],
  child: const MyApp(),
)

For advanced migrations or custom storage strategies, you may still need to work with the database directly.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.46%
按下载量换算33

Claude

31.33%
按下载量换算29

Cursor

16.22%
按下载量换算15

Gemini CLI

9.02%
按下载量换算8

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills