Skills
安装 Dinox CLI Skills,让 AI 助手通过自然语言或斜杠命令直接操作你的 Dinox 知识库。
Skills
Skills 是一套为 AI 助手(如 Claude)准备的「技能包」。装好之后,你可以用一句话让 AI 帮你搜索笔记、新建笔记、整理标签、管理待办——它会在背后调用 Dinox CLI(dino)替你完成。
准备工作
使用 Skills 前,先装好并登录 Dinox CLI。推荐使用 Node.js 24 LTS;CLI 支持 Node.js 20.18.1+、22、23、24、25,不支持 Node.js 21 或 26+。
第一步,全局安装 CLI:
npm install -g @dinoxx/dinox-cli第二步,登录你的账号(在自己的终端里运行):
read -rs DINOX_TOKEN
printf '%s' "$DINOX_TOKEN" | dino auth login --token-stdin
unset DINOX_TOKEN不要把 token 贴进聊天框、命令参数或公开日志里。read -rs 会隐藏终端输入,--token-stdin 会从管道读取凭证。token 可在 Dinox 移动端 App → 设置 → 同步设置 → API Token 中获取。
安装 Skills
一行命令全局安装:
npx skills add ryzencool/dinox-cli-skills -g装好后重启你的 AI 助手即可生效。
开始使用
有两种方式,挑顺手的用。
方式一:直接说人话
把它当成懂你笔记的助手,自然提问就行:
帮我搜索最近一周的 AI 笔记
创建一条笔记,标题是「今日复盘」
把这条笔记加到 Inbox 并打星
列出我所有的标签
帮我建一个待办:补交报销单、整理发票方式二:用斜杠命令
想更精确地指定操作,可以用 / 命令:
/dino-note 搜索最近 7 天的 AI 笔记
/dino-note 创建一条标题为「今日笔记」的笔记
/dino-manage-todo 创建待办:联系供应商
/dino-manage-tags reading/tech
/dino-sync
dino doctor --format json能做什么
| 技能 | 命令 | 用途 |
|---|---|---|
| dino-note | /dino-note | 搜索、阅读、新建、更新、打星、删除笔记 |
| dino-manage-todo | /dino-manage-todo | 搜索 / 创建 / 追加 / 更新待办任务 |
| dino-manage-tags | /dino-manage-tags | 查看全部标签或新建标签 |
| dino-manage-boxes | /dino-manage-boxes | 查看全部卡片盒或新建卡片盒 |
| dino-manage-prompts | /dino-manage-prompts | 查看或新建可复用的提示词模板 |
| dino-storage | /dino-storage | 管理自定义存储、上传文件、查看用量 |
| dino-sync | /dino-sync | 同步本地缓存与云端 |
| dino-auth | /dino-auth | 查看登录状态、登录、登出 |
| dino-config | /dino-config | 读取或修改 CLI 配置 |
| dino-update-cli | /dino-update-cli | 升级 Dinox CLI 到最新版 |
做「最近笔记、月度汇总、统计、导出」这类需要完整数据的分析时,建议先让 AI 执行一次 /dino-sync,确保本地数据是最新的。遇到搜索漏结果、同步异常、daemon 异常、上传积压或本地索引 / 数据库疑问时,先运行 dino doctor --format json 查看健康报告。
CLI 行为说明
- 读类命令默认使用本地 PowerSync 缓存;需要强一致新鲜度时,Skills 会让 CLI 先执行
dino sync --strict --sync-timeout 600000 --format json,或在读命令上添加--require-sync。严格模式要求 PowerSync 保持连接、取得晚于本次命令启动时间的新 checkpoint、数据流进入 idle,且没有下载错误。 - 笔记和待办写命令会返回 Write Receipt:
durability、upload_queue_remaining、version、content_hash、changed和stale。默认可以把durability: local视为本地数据库已写入;如果必须等云端上传队列清空,Skills 会加--durability uploaded,失败时按UPLOAD_PENDING/suggested_action处理。 dino note patch的readToken是短期凭证(当前有效期为 30 分钟,以readTokenExpiresAt为准),并绑定生成它时当前账号对应的本地 PowerSync 数据库作用域,不能在切换账号或本地数据库后复用。token 只能使用一次,会在真实 patch 尝试写库前原子消费;任何失败后都必须重新执行dino note content-read <id>。这样不会在数据库已提交后因 token 文件清理失败而误报整次写入失败。dino doctor --format json会返回认证、同步、上传队列、笔记 FTS 索引对账、daemon 版本 / 账号 / token 指纹 / runtime config 匹配和本地数据库完整性状态;dino doctor --fix --format json会尝试清空上传队列、重建本地笔记索引并重启 stale daemon。CLI 会先释放数据库 owner lease 再重启 daemon;失败的修复会保持healthy: false,不会被标记为已修复。- 结构化错误会在顶层返回
code、recoverable、exit_code和suggested_action.command。脚本可以按退出码分支:2参数错误、3未登录、4数据过期 / 上传未完成、5前置条件或资源缺失。 dino note search、dino todo search、dino graph backlinks/outlinks/related/stats在默认在线模式下会使用 daemon-owned DB runtime。daemon 通过用户私有 Unix domain socket 通信(Windows 使用命名管道),并会在 CLI 版本、登录账号、token 指纹或非秘密 runtime config(PowerSync endpoint、上传路径、sync.timeoutMs)变化后自动重启;不可用时 CLI 会返回带suggested_action的结构化错误,不会静默回退到另一个进程打开本地 DB。需要明确接受本地缓存语义时,可加--offline。- 需要在前台进程打开 PowerSync 的命令(写命令、
sync、在线auth status、--offline和--require-sync)会持有跨进程生命周期锁。同一用户数据库上的健康 daemon 会被暂时停止,并且只在前台数据库关闭、owner lease 成功释放后按原端口恢复;使用其他用户数据库的 daemon 不受影响。若关闭或释放失败,CLI 会把 daemon 保持在停止状态并向 stderr 输出清洗后的警告,避免两个运行时同时持有同一 SQLite 数据库。 dino auth logout会优先清除保存的凭据;如果当前 shell 仍设置了DINOX_TOKEN,结果会明确返回environmentTokenActive: true,该环境仍保持登录。--clear-local-db只有在 daemon 停止、取得数据库独占所有权并删除主库、WAL、SHM 和 rollback journal 后才会报告成功。任何 owner lease 获取/释放或缓存清理错误都应检查persistedCredentialsCleared、cleanupPhase和cachePaths/cachePath:凭据可能已经清除,但不能据此声称本地清理已安全完成。CLI 会逐个尝试释放所有已取得的 lease;某个 release 失败不会跳过后续 release,也不会覆盖更早的主错误。sync.timeoutMs和--sync-timeout只接受1..2147483647的十进制整数,避免超过 Node 定时器上限后意外变成约 1ms 超时。- 更新待办时,建议把
dino todo search返回的note_id作为dino todo update <taskId> --note-id <noteId> --status completed的精确定位参数,尤其是legacy-task-*。legacy id 会绑定搜索时的任务位置和内容;如果笔记结构或任务内容随后变化,CLI 会拒绝旧 id,必须重新搜索,避免改错任务。未传--note-id的跨笔记查找最多检查 500 个候选笔记;一旦触顶会返回TODO_TASK_LOOKUP_TRUNCATED并拒绝写入,因为此时无法证明 task ID 唯一。遇到该错误时,先运行dino todo search <task-text> --scan-limit 5000 --format json找到目标note_id,再带--note-id重试。 - 笔记标签校验、正文 hashtag 解析和标签管理都按当前已解析账号的
user_id隔离。切换账号后应重新列出或同步标签;只存在于其他账号的同名标签会被视为不存在,不会被当前笔记写入误用。 dino note detail的结构化输出包含完整 markdown、纯文本、解析后的content_json、标签数组和updated_at,适合在明确需要全文时使用。dino storage upload会把文件写入自定义 S3 并记录资源;图片上传会额外生成400pxwebp 缩略图,缩略图 URL 只在命令结果中返回,不写入资源checksum字段。显式--key默认拒绝覆盖已有主对象或缩略图,只有确认精确替换目标后才使用--overwrite;key 与存储路径前缀不能包含纯./..路径段,否则标准 URL 客户端会把地址归一化到错误对象。- 使用
--overwrite时,一旦远端对象写入成功,后续缩略图或资源 metadata 记录失败不会自动删除已写入对象。不要把命令失败当作远端已回滚;检查结构化错误详情中的remoteObjectChanged、affectedKeys和主对象storageKey,再核查或重试这些 key。若 S3 PUT 在客户端看来失败但无法确认远端是否已经提交,CLI 会返回STORAGE_UPLOAD_OUTCOME_UNKNOWN、remoteOutcome: "unknown"、remoteObjectChanged: null和possiblyAffectedKeys,并避免对这些可能已写入但没有确认 ETag 的对象做猜测性删除。