@dinoxx/dinox-cli 1.0.19 → 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +756 -472
- package/dist/auth/userInfo.d.ts +10 -1
- package/dist/auth/userInfo.js +66 -17
- package/dist/cli.js +0 -2
- package/dist/commands/auth/index.js +29 -14
- package/dist/commands/boxes/index.js +272 -52
- package/dist/commands/boxes/model.d.ts +34 -0
- package/dist/commands/boxes/model.js +78 -0
- package/dist/commands/boxes/operations.d.ts +86 -0
- package/dist/commands/boxes/operations.js +415 -0
- package/dist/commands/boxes/repo.d.ts +13 -6
- package/dist/commands/boxes/repo.js +272 -149
- package/dist/commands/boxes/store.d.ts +22 -0
- package/dist/commands/boxes/store.js +143 -0
- package/dist/commands/graph/index.js +2 -36
- package/dist/commands/mcp/noteContentTools.d.ts +222 -0
- package/dist/commands/mcp/noteContentTools.js +390 -0
- package/dist/commands/mcp/server.d.ts +3 -0
- package/dist/commands/mcp/server.js +45 -16
- package/dist/commands/mcp/tools.js +3 -1
- package/dist/commands/mcp/types.d.ts +6 -2
- package/dist/commands/meta/index.js +6 -22
- package/dist/commands/meta/repo.d.ts +0 -3
- package/dist/commands/meta/repo.js +1 -4
- package/dist/commands/notes/actions.d.ts +2 -0
- package/dist/commands/notes/actions.js +149 -55
- package/dist/commands/notes/bulk.d.ts +34 -0
- package/dist/commands/notes/bulk.js +204 -0
- package/dist/commands/notes/contentEngine.d.ts +95 -0
- package/dist/commands/notes/contentEngine.js +652 -0
- package/dist/commands/notes/contentPatch.d.ts +84 -0
- package/dist/commands/notes/contentPatch.js +337 -0
- package/dist/commands/notes/contentPatchCommand.d.ts +3 -0
- package/dist/commands/notes/contentPatchCommand.js +126 -0
- package/dist/commands/notes/descriptors.js +192 -40
- package/dist/commands/notes/export.d.ts +21 -0
- package/dist/commands/notes/export.js +224 -0
- package/dist/commands/notes/metadataMutation.d.ts +28 -0
- package/dist/commands/notes/metadataMutation.js +127 -0
- package/dist/commands/notes/repo.d.ts +20 -0
- package/dist/commands/notes/repo.js +135 -18
- package/dist/commands/notes/runtime.d.ts +3 -12
- package/dist/commands/notes/runtime.js +4 -30
- package/dist/commands/notes/searchSql.js +1 -1
- package/dist/commands/prompt/index.js +15 -45
- package/dist/commands/prompt/repo.js +2 -2
- package/dist/commands/runtime.d.ts +26 -0
- package/dist/commands/runtime.js +76 -0
- package/dist/commands/schema/renderSkills.js +20 -7
- package/dist/commands/schema/spec.d.ts +1 -2
- package/dist/commands/schema/spec.js +2 -3
- package/dist/commands/schema/types.d.ts +0 -13
- package/dist/commands/storage/index.js +30 -60
- package/dist/commands/storage/repo.d.ts +1 -1
- package/dist/commands/storage/repo.js +20 -1
- package/dist/commands/sync.js +4 -2
- package/dist/commands/tags/content.d.ts +32 -0
- package/dist/commands/tags/content.js +243 -0
- package/dist/commands/tags/index.js +285 -49
- package/dist/commands/tags/model.d.ts +38 -0
- package/dist/commands/tags/model.js +100 -0
- package/dist/commands/tags/operations.d.ts +105 -0
- package/dist/commands/tags/operations.js +438 -0
- package/dist/commands/tags/repo.d.ts +5 -1
- package/dist/commands/tags/repo.js +142 -218
- package/dist/commands/tags/store.d.ts +28 -0
- package/dist/commands/tags/store.js +166 -0
- package/dist/commands/todo/index.js +30 -61
- package/dist/commands/writeDryRun.d.ts +25 -0
- package/dist/commands/writeDryRun.js +31 -1
- package/dist/config/paths.d.ts +2 -1
- package/dist/config/paths.js +11 -1
- package/dist/config/resolve.js +9 -7
- package/dist/daemon/index.d.ts +2 -0
- package/dist/daemon/index.js +176 -58
- package/dist/powersync/runtime.d.ts +2 -1
- package/dist/powersync/runtime.js +15 -3
- package/dist/powersync/schema/content.d.ts +2 -0
- package/dist/powersync/schema/content.js +2 -0
- package/dist/powersync/schema/index.d.ts +2 -0
- package/dist/skills/check.d.ts +1 -1
- package/dist/skills/check.js +27 -2
- package/dist/utils/authToken.d.ts +2 -0
- package/dist/utils/authToken.js +7 -2
- package/dist/utils/noteContentEngine.d.ts +333 -0
- package/dist/utils/noteContentEngine.js +740 -0
- package/dist/utils/tiptapMarkdownSchema.js +31 -0
- package/package.json +4 -8
package/README.md
CHANGED
|
@@ -1,840 +1,1124 @@
|
|
|
1
|
-
# Dinox CLI
|
|
1
|
+
# Dinox CLI 用户手册
|
|
2
2
|
|
|
3
|
-
`dino`
|
|
3
|
+
`dino` 是 Dinox 的命令行工具,用来在本地管理和同步你的 Dinox 数据,包括:笔记、待办、标签、卡片盒、Prompt、知识图谱,以及适合脚本和 AI 助手调用的结构化命令输出。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
这份 README 按“先上手、再进阶、最后查表”的顺序重写,尽量做到:
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- 先让你快速跑通第一次使用
|
|
8
|
+
- 再教你完成最常见的日常操作
|
|
9
|
+
- 最后给出完整命令速查,方便回头查阅
|
|
10
|
+
|
|
11
|
+
如果你只想尽快开始,先看“5 分钟快速上手”。
|
|
8
12
|
|
|
9
|
-
|
|
13
|
+
---
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
## 目录
|
|
12
16
|
|
|
13
|
-
1.
|
|
14
|
-
2.
|
|
15
|
-
3.
|
|
16
|
-
4.
|
|
17
|
-
5.
|
|
18
|
-
6.
|
|
19
|
-
7.
|
|
20
|
-
8.
|
|
17
|
+
- [1. 你可以用 Dinox CLI 做什么](#1-你可以用-dinox-cli-做什么)
|
|
18
|
+
- [2. 安装要求与安装方法](#2-安装要求与安装方法)
|
|
19
|
+
- [3. 5 分钟快速上手](#3-5-分钟快速上手)
|
|
20
|
+
- [4. 使用前必须知道的 6 个规则](#4-使用前必须知道的-6-个规则)
|
|
21
|
+
- [5. 日常操作教程](#5-日常操作教程)
|
|
22
|
+
- [6. 完整命令速查](#6-完整命令速查)
|
|
23
|
+
- [7. AI / 脚本自动化](#7-ai--脚本自动化)
|
|
24
|
+
- [8. 常见问题](#8-常见问题)
|
|
25
|
+
- [9. 配置文件、数据库与环境变量](#9-配置文件数据库与环境变量)
|
|
26
|
+
- [10. 如何查看帮助](#10-如何查看帮助)
|
|
21
27
|
|
|
22
28
|
---
|
|
23
29
|
|
|
24
|
-
##
|
|
30
|
+
## 1. 你可以用 Dinox CLI 做什么
|
|
25
31
|
|
|
26
|
-
|
|
32
|
+
Dinox CLI 适合这几类场景:
|
|
27
33
|
|
|
28
|
-
|
|
34
|
+
1. 在终端里登录 Dinox 账号,并把云端数据同步到本地
|
|
35
|
+
2. 快速搜索、查看、创建、更新、删除笔记
|
|
36
|
+
3. 从笔记里的任务列表中搜索待办,或追加/创建待办
|
|
37
|
+
4. 维护标签、卡片盒、Prompt 等结构化信息
|
|
38
|
+
5. 查询笔记之间的链接关系和知识图谱
|
|
39
|
+
6. 用 `--format json` 输出结构化结果,方便脚本和 AI 调用
|
|
29
40
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
41
|
+
你可以把它理解为:
|
|
42
|
+
|
|
43
|
+
- 普通用户:一个更高效的 Dinox 数据管理工具
|
|
44
|
+
- 进阶用户:一个可脚本化的本地知识库命令行入口
|
|
45
|
+
- AI 用户:一个可通过结构化命令和 schema 稳定调用的本地知识库入口
|
|
34
46
|
|
|
35
47
|
---
|
|
36
48
|
|
|
37
|
-
##
|
|
49
|
+
## 2. 安装要求与安装方法
|
|
50
|
+
|
|
51
|
+
### 2.1 系统要求
|
|
38
52
|
|
|
39
|
-
|
|
53
|
+
安装前请先确认:
|
|
40
54
|
|
|
41
|
-
|
|
55
|
+
- 已安装 Node.js 20 或更高版本
|
|
56
|
+
- 已安装 npm
|
|
57
|
+
- 你的系统可以正常执行全局 npm 命令
|
|
42
58
|
|
|
43
|
-
|
|
59
|
+
检查方法:
|
|
44
60
|
|
|
45
61
|
```bash
|
|
46
|
-
|
|
62
|
+
node -v
|
|
63
|
+
npm -v
|
|
47
64
|
```
|
|
48
65
|
|
|
49
|
-
2. 安装 CLI
|
|
66
|
+
### 2.2 安装 Dinox CLI
|
|
67
|
+
|
|
68
|
+
推荐直接全局安装:
|
|
50
69
|
|
|
51
70
|
```bash
|
|
52
71
|
npm install -g @dinoxx/dinox-cli
|
|
53
72
|
```
|
|
54
73
|
|
|
55
|
-
|
|
74
|
+
安装完成后,验证是否成功:
|
|
56
75
|
|
|
57
76
|
```bash
|
|
58
77
|
dino info
|
|
59
78
|
```
|
|
60
79
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
## 3.2 Windows
|
|
80
|
+
看到版本号就表示安装成功。
|
|
64
81
|
|
|
65
|
-
|
|
82
|
+
> 说明:安装后通常可以使用 `dino` 或 `dinox` 两个命令名,本文统一使用 `dino`。
|
|
66
83
|
|
|
67
|
-
|
|
84
|
+
### 2.3 macOS 安装 Node.js(如果你还没装)
|
|
68
85
|
|
|
69
|
-
```
|
|
70
|
-
|
|
86
|
+
```bash
|
|
87
|
+
brew install node
|
|
71
88
|
```
|
|
72
89
|
|
|
73
|
-
2. 安装
|
|
90
|
+
### 2.4 Windows 安装 Node.js(如果你还没装)
|
|
91
|
+
|
|
92
|
+
PowerShell 中可使用:
|
|
74
93
|
|
|
75
94
|
```powershell
|
|
76
|
-
|
|
95
|
+
winget install OpenJS.NodeJS.LTS
|
|
77
96
|
```
|
|
78
97
|
|
|
79
|
-
|
|
98
|
+
### 2.5 更新 CLI
|
|
80
99
|
|
|
81
|
-
|
|
82
|
-
|
|
100
|
+
后续如果要更新到最新版本,直接执行:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
dino update
|
|
83
104
|
```
|
|
84
105
|
|
|
106
|
+
它会自动根据你当前的安装方式选择合适的包管理器执行更新。
|
|
107
|
+
|
|
85
108
|
---
|
|
86
109
|
|
|
87
|
-
##
|
|
110
|
+
## 3. 5 分钟快速上手
|
|
111
|
+
|
|
112
|
+
下面是第一次使用最推荐的顺序。你可以直接照着执行。
|
|
88
113
|
|
|
89
|
-
|
|
114
|
+
### 第 1 步:登录
|
|
90
115
|
|
|
91
116
|
```bash
|
|
92
|
-
dino auth login "<你的token>"
|
|
117
|
+
dino auth login "<你的 token>"
|
|
93
118
|
```
|
|
94
119
|
|
|
95
|
-
|
|
120
|
+
说明:
|
|
121
|
+
|
|
122
|
+
- 这里填的是登录 token 本体
|
|
123
|
+
- `dino auth login` 建议传 token 本体,不要加 `Bearer ` 前缀
|
|
124
|
+
- 登录时 CLI 会顺便验证连接是否可用
|
|
125
|
+
- 自动化或 CI 可以改用 `DINOX_TOKEN` 环境变量注入 token;它优先于本地配置,并支持 token 本体或 `Bearer ...`
|
|
126
|
+
|
|
127
|
+
### 第 2 步:同步数据到本地
|
|
96
128
|
|
|
97
129
|
```bash
|
|
98
130
|
dino sync
|
|
99
131
|
```
|
|
100
132
|
|
|
101
|
-
|
|
133
|
+
这一步会把 Dinox 数据同步到本地 SQLite 数据库,后续很多查询都会直接使用本地缓存。
|
|
134
|
+
|
|
135
|
+
### 第 3 步:确认当前状态
|
|
102
136
|
|
|
103
137
|
```bash
|
|
104
138
|
dino auth status
|
|
105
139
|
```
|
|
106
140
|
|
|
141
|
+
你会看到当前是否已登录、本地数据库位置、最近同步状态等信息。
|
|
142
|
+
|
|
143
|
+
### 第 4 步:搜索一条笔记试试
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
dino note search "AI"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### 第 5 步:新建一条笔记试试
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
dino note create \
|
|
153
|
+
--title "今天的记录" \
|
|
154
|
+
--content "# 标题\n\n这里是正文" \
|
|
155
|
+
--type note
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
如果你能顺利完成上面 5 步,说明 CLI 已经可以正常使用。
|
|
159
|
+
|
|
107
160
|
---
|
|
108
161
|
|
|
109
|
-
##
|
|
162
|
+
## 4. 使用前必须知道的 6 个规则
|
|
163
|
+
|
|
164
|
+
很多问题都来自对 CLI 约定不熟。先掌握下面 6 条,会少踩很多坑。
|
|
165
|
+
|
|
166
|
+
### 规则 1:很多命令默认会优先使用本地数据库
|
|
110
167
|
|
|
111
|
-
|
|
168
|
+
`dino sync` 会把云端数据同步到本地。后续大多数查询命令会基于本地缓存工作。
|
|
112
169
|
|
|
113
|
-
|
|
170
|
+
如果你希望明确只使用本地缓存、不触发联网/同步,可以加:
|
|
114
171
|
|
|
115
172
|
```bash
|
|
116
|
-
|
|
117
|
-
dino note search "AI" --days 7
|
|
118
|
-
dino note search "AI" --from 2026-02-01 --to 2026-02-28
|
|
119
|
-
dino note search "AI" --boxes "Inbox"
|
|
120
|
-
dino note search --sql 'type = "crawl" AND zettel_boxes IN ("Inbox","Project")'
|
|
173
|
+
--offline
|
|
121
174
|
```
|
|
122
175
|
|
|
123
|
-
|
|
176
|
+
例如:
|
|
124
177
|
|
|
125
178
|
```bash
|
|
126
|
-
dino
|
|
127
|
-
dino todo search "付款"
|
|
128
|
-
dino todo search "付款" --status uncompleted --tags "工作,财务"
|
|
129
|
-
dino todo search --from 2026-03-01 --to 2026-03-07 --limit 100
|
|
179
|
+
dino note search "项目复盘" --offline
|
|
130
180
|
```
|
|
131
181
|
|
|
132
|
-
|
|
182
|
+
适用场景:
|
|
183
|
+
|
|
184
|
+
- 网络不稳定
|
|
185
|
+
- 只想查本地缓存
|
|
186
|
+
- 你已经先手动执行过 `dino sync`
|
|
187
|
+
|
|
188
|
+
### 规则 2:给脚本或 AI 用时,推荐统一加 `--format json`
|
|
189
|
+
|
|
190
|
+
例如:
|
|
133
191
|
|
|
134
192
|
```bash
|
|
135
|
-
dino
|
|
136
|
-
dino todo append --note-id <note-id> --task "补交报销单" --task "整理发票"
|
|
137
|
-
dino todo append --tasks '["补交报销单","整理发票"]'
|
|
193
|
+
dino note search "AI" --format json
|
|
138
194
|
```
|
|
139
195
|
|
|
140
|
-
|
|
196
|
+
说明:
|
|
197
|
+
|
|
198
|
+
- `--format json`:推荐的结构化输出
|
|
199
|
+
- `--format yaml`:也支持
|
|
200
|
+
- `--json`:历史兼容参数,等价于 `--format yaml`
|
|
201
|
+
|
|
202
|
+
### 规则 3:很多写操作都支持 `--dry-run`
|
|
203
|
+
|
|
204
|
+
如果你想先看“将会发生什么”,但暂时不真正写入数据,可以用:
|
|
141
205
|
|
|
142
206
|
```bash
|
|
143
|
-
|
|
144
|
-
dino todo create --task "补交报销单" --task "整理发票" --title "本周财务待办"
|
|
145
|
-
dino todo create --tasks @./todo.txt
|
|
207
|
+
--dry-run
|
|
146
208
|
```
|
|
147
209
|
|
|
148
|
-
|
|
210
|
+
例如:
|
|
149
211
|
|
|
150
212
|
```bash
|
|
151
|
-
dino
|
|
152
|
-
dino todo update <task-id> --status uncompleted
|
|
213
|
+
dino note delete <note-id> --dry-run
|
|
153
214
|
```
|
|
154
215
|
|
|
155
|
-
|
|
216
|
+
这对删除、更新、批量修改尤其有用。
|
|
217
|
+
|
|
218
|
+
### 规则 4:很多参数支持直接从文件读取
|
|
219
|
+
|
|
220
|
+
凡是写成 `<string|@file>` 或 `<string|@file>` 的参数,通常都支持 `@文件路径` 的写法。
|
|
221
|
+
|
|
222
|
+
例如从文件读取笔记正文:
|
|
156
223
|
|
|
157
224
|
```bash
|
|
158
|
-
dino note create
|
|
159
|
-
--title "今天的记录" \
|
|
160
|
-
--content "# 标题\n\n正文内容"
|
|
225
|
+
dino note create --title "读书笔记" --content @./note.md --type note
|
|
161
226
|
```
|
|
162
227
|
|
|
163
|
-
|
|
228
|
+
例如从文件读取待办列表:
|
|
164
229
|
|
|
165
230
|
```bash
|
|
166
|
-
dino
|
|
167
|
-
dino note detail <note-id>
|
|
231
|
+
dino todo create --tasks @./todo.txt
|
|
168
232
|
```
|
|
169
233
|
|
|
170
|
-
|
|
234
|
+
### 规则 5:列表参数通常有 3 种写法
|
|
235
|
+
|
|
236
|
+
像 `--tags`、`--boxes`、`--tasks`、`--ids` 这类列表参数,通常支持:
|
|
237
|
+
|
|
238
|
+
1. JSON 数组
|
|
239
|
+
2. 逗号分隔
|
|
240
|
+
3. 换行分隔
|
|
241
|
+
|
|
242
|
+
例如这三种都可以:
|
|
171
243
|
|
|
172
244
|
```bash
|
|
173
|
-
|
|
245
|
+
--tags '["工作","项目A"]'
|
|
246
|
+
--tags "工作,项目A"
|
|
247
|
+
--tags @./tags.txt
|
|
174
248
|
```
|
|
175
249
|
|
|
176
|
-
|
|
250
|
+
### 规则 6:标签和卡片盒必须先存在,笔记才能引用它们
|
|
177
251
|
|
|
178
|
-
|
|
252
|
+
例如你先创建笔记时用了一个不存在的标签:
|
|
179
253
|
|
|
180
254
|
```bash
|
|
181
|
-
dino
|
|
255
|
+
dino note create --title "测试" --content "正文" --tags "工作/项目A"
|
|
182
256
|
```
|
|
183
257
|
|
|
184
|
-
|
|
258
|
+
如果这个标签还不存在,就会报错。正确顺序通常是:
|
|
185
259
|
|
|
186
260
|
```bash
|
|
187
261
|
dino tag add "工作/项目A"
|
|
188
|
-
dino
|
|
262
|
+
dino box add "Inbox"
|
|
263
|
+
dino note create --title "测试" --content "正文" --tags "工作/项目A" --boxes "Inbox" --type note
|
|
189
264
|
```
|
|
190
265
|
|
|
191
|
-
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## 5. 日常操作教程
|
|
269
|
+
|
|
270
|
+
这一部分按真实使用场景来写。你不需要一开始记住所有命令,先会做日常任务就够了。
|
|
271
|
+
|
|
272
|
+
### 5.1 搜索笔记
|
|
192
273
|
|
|
193
|
-
|
|
274
|
+
#### 按关键词搜索
|
|
194
275
|
|
|
195
276
|
```bash
|
|
196
|
-
dino
|
|
277
|
+
dino note search "AI"
|
|
197
278
|
```
|
|
198
279
|
|
|
199
|
-
|
|
280
|
+
#### 搜索最近 7 天的笔记
|
|
200
281
|
|
|
201
282
|
```bash
|
|
202
|
-
dino
|
|
203
|
-
dino box add --name "Inbox" --description "用于存放待整理的想法和资料"
|
|
283
|
+
dino note search "AI" --days 7
|
|
204
284
|
```
|
|
205
285
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
## 5.4 Prompt
|
|
286
|
+
#### 按时间范围搜索
|
|
209
287
|
|
|
210
288
|
```bash
|
|
211
|
-
dino
|
|
212
|
-
dino prompt add --name "周报助手" --prompt "请基于本周笔记输出一份简洁周报"
|
|
289
|
+
dino note search "AI" --from 2026-03-01 --to 2026-03-31
|
|
213
290
|
```
|
|
214
291
|
|
|
215
|
-
|
|
292
|
+
#### 按标签表达式搜索
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
dino note search --tags "(work OR life) AND NOT archived"
|
|
296
|
+
```
|
|
216
297
|
|
|
217
|
-
|
|
298
|
+
#### 按卡片盒搜索
|
|
218
299
|
|
|
219
300
|
```bash
|
|
220
|
-
dino
|
|
301
|
+
dino note search --boxes "Inbox,Project"
|
|
221
302
|
```
|
|
222
303
|
|
|
223
|
-
|
|
304
|
+
#### 只看已收藏或未收藏笔记
|
|
224
305
|
|
|
225
306
|
```bash
|
|
226
|
-
dino
|
|
307
|
+
dino note search --starred true
|
|
308
|
+
dino note search --starred false
|
|
227
309
|
```
|
|
228
310
|
|
|
229
|
-
|
|
311
|
+
#### 分页与字段裁剪
|
|
230
312
|
|
|
231
313
|
```bash
|
|
232
|
-
dino
|
|
314
|
+
dino note search "AI" --limit 20 --offset 0
|
|
315
|
+
dino note search "AI" --fields id,title,summary,created_at
|
|
233
316
|
```
|
|
234
317
|
|
|
235
|
-
|
|
318
|
+
#### 高级 SQL 风格筛选
|
|
236
319
|
|
|
237
|
-
|
|
320
|
+
```bash
|
|
321
|
+
dino note search --sql 'type = "crawl" AND zettel_boxes IN ("Inbox","Project")'
|
|
322
|
+
```
|
|
238
323
|
|
|
239
|
-
|
|
324
|
+
适合场景:
|
|
240
325
|
|
|
241
|
-
|
|
326
|
+
- 你已经很清楚要筛什么字段
|
|
327
|
+
- 希望做更复杂的组合条件查询
|
|
242
328
|
|
|
243
|
-
|
|
244
|
-
2. Windows: `%APPDATA%\dinox\config.json`
|
|
329
|
+
> 提醒:`--sql` 只支持只读查询条件,不是让你执行任意 SQL。
|
|
245
330
|
|
|
246
|
-
|
|
331
|
+
### 5.2 查看笔记内容
|
|
247
332
|
|
|
248
|
-
|
|
333
|
+
#### 只看笔记基础信息
|
|
249
334
|
|
|
250
335
|
```bash
|
|
251
|
-
dino note
|
|
252
|
-
--title "标题" \
|
|
253
|
-
--content "正文"
|
|
336
|
+
dino note get <note-id>
|
|
254
337
|
```
|
|
255
338
|
|
|
256
|
-
|
|
339
|
+
#### 只拿轻量上下文(适合 AI / 脚本)
|
|
257
340
|
|
|
258
|
-
```
|
|
259
|
-
dino note
|
|
260
|
-
--title "标题" `
|
|
261
|
-
--content "正文"
|
|
341
|
+
```bash
|
|
342
|
+
dino note get <note-id> --context-only --format json
|
|
262
343
|
```
|
|
263
344
|
|
|
264
|
-
|
|
345
|
+
#### 预览正文前几行
|
|
346
|
+
|
|
347
|
+
```bash
|
|
348
|
+
dino note preview <note-id>
|
|
349
|
+
dino note preview <note-id> --lines 30
|
|
350
|
+
```
|
|
265
351
|
|
|
266
|
-
|
|
352
|
+
#### 查看完整详情
|
|
267
353
|
|
|
268
354
|
```bash
|
|
269
|
-
dino note
|
|
355
|
+
dino note detail <note-id>
|
|
270
356
|
```
|
|
271
357
|
|
|
272
|
-
|
|
358
|
+
#### 批量查看多条笔记详情
|
|
273
359
|
|
|
274
|
-
```
|
|
275
|
-
dino note
|
|
360
|
+
```bash
|
|
361
|
+
dino note detail --ids @./note-ids.txt
|
|
276
362
|
```
|
|
277
363
|
|
|
278
|
-
|
|
364
|
+
### 5.3 创建笔记
|
|
279
365
|
|
|
280
|
-
|
|
366
|
+
#### 创建最简单的一条笔记
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
dino note create \
|
|
370
|
+
--title "会议记录" \
|
|
371
|
+
--content "今天讨论了发布计划" \
|
|
372
|
+
--type note
|
|
373
|
+
```
|
|
281
374
|
|
|
282
|
-
|
|
375
|
+
#### 从 Markdown 文件创建
|
|
283
376
|
|
|
284
|
-
|
|
377
|
+
```bash
|
|
378
|
+
dino note create \
|
|
379
|
+
--title "周报" \
|
|
380
|
+
--content @./weekly.md \
|
|
381
|
+
--type note
|
|
382
|
+
```
|
|
285
383
|
|
|
286
|
-
|
|
384
|
+
#### 同时设置标签和卡片盒
|
|
287
385
|
|
|
288
386
|
```bash
|
|
289
|
-
dino
|
|
387
|
+
dino note create \
|
|
388
|
+
--title "项目复盘" \
|
|
389
|
+
--content @./review.md \
|
|
390
|
+
--type note \
|
|
391
|
+
--tags "工作/项目A,复盘" \
|
|
392
|
+
--boxes "Project"
|
|
290
393
|
```
|
|
291
394
|
|
|
292
|
-
|
|
395
|
+
注意:
|
|
396
|
+
|
|
397
|
+
- `--title` 和 `--content` 是必填项
|
|
398
|
+
- `--type` 可选值只有 `note` 和 `crawl`
|
|
399
|
+
- 如果你不写 `--type`,默认是 `crawl`
|
|
400
|
+
- 如果你想写普通笔记,建议明确加 `--type note`
|
|
293
401
|
|
|
294
|
-
|
|
402
|
+
#### 创建前先预演
|
|
295
403
|
|
|
296
404
|
```bash
|
|
297
|
-
dino
|
|
298
|
-
|
|
405
|
+
dino note create \
|
|
406
|
+
--title "测试笔记" \
|
|
407
|
+
--content "正文" \
|
|
408
|
+
--type note \
|
|
409
|
+
--dry-run
|
|
299
410
|
```
|
|
300
411
|
|
|
301
|
-
|
|
412
|
+
### 5.4 整理笔记元数据与正文
|
|
302
413
|
|
|
303
|
-
|
|
414
|
+
#### `note update`:显式 ID 的全量替换
|
|
304
415
|
|
|
305
|
-
|
|
416
|
+
```bash
|
|
417
|
+
dino note update <note-id> --tags "工作,AI" --dry-run
|
|
418
|
+
dino note update <note-id> --boxes "Inbox" --starred true --dry-run
|
|
419
|
+
```
|
|
306
420
|
|
|
307
|
-
|
|
421
|
+
`note update` 面向明确的笔记 ID,`--tags` 和 `--boxes` 都是完整替换,不是追加。清空标签或卡片盒时传 `[]`:
|
|
308
422
|
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
| `--offline` | flag | 跳过 connect/sync,仅用本地缓存(仅被支持该参数的命令读取)。 |
|
|
314
|
-
| `--sync-timeout <ms>` | integer | 覆盖连接/同步超时毫秒,必须是正整数。 |
|
|
315
|
-
| `--verbose` | flag | 预留 verbose 开关。 |
|
|
423
|
+
```bash
|
|
424
|
+
dino note update <note-id> --tags '[]'
|
|
425
|
+
dino note update <note-id> --boxes '[]'
|
|
426
|
+
```
|
|
316
427
|
|
|
317
|
-
|
|
428
|
+
#### `note tag` / `note move`:显式 ID 的增量整理
|
|
318
429
|
|
|
319
|
-
|
|
430
|
+
```bash
|
|
431
|
+
dino note tag <note-id> --add "工作,AI" --dry-run
|
|
432
|
+
dino note tag --ids @./note-ids.txt --remove "Inbox" --dry-run
|
|
433
|
+
dino note move <note-id> --add "Project/Inbox" --dry-run
|
|
434
|
+
dino note move --ids @./note-ids.txt --replace "Project" --dry-run
|
|
435
|
+
```
|
|
320
436
|
|
|
321
|
-
|
|
437
|
+
`note tag` 管标签,`note move` 管卡片盒归属;它们的 `--add` / `--remove` 会保留现有值,`--replace` 才会覆盖整个列表。`note move` 不移动文件,也不改正文。
|
|
322
438
|
|
|
323
|
-
|
|
324
|
-
| --- | --- | --- |
|
|
325
|
-
| `<token>` | 是 | 登录 token,直接传 token 字符串(不需要 `Bearer` 前缀)。 |
|
|
439
|
+
#### `note bulk`:按过滤器批量整理
|
|
326
440
|
|
|
327
|
-
|
|
441
|
+
```bash
|
|
442
|
+
dino note bulk --tags "Inbox" --tag-add "AI" --format json --dry-run
|
|
443
|
+
dino note bulk --days 30 --boxes "Work/Inbox" --box-replace "Archive/Review" --expected-count 12 --confirm --format json
|
|
444
|
+
```
|
|
328
445
|
|
|
329
|
-
|
|
446
|
+
`note bulk` 只接受受控过滤器,不支持 `--sql` 作为写入目标筛选。真实写入必须先 dry-run,再带 `--confirm --expected-count <n>`。
|
|
330
447
|
|
|
331
|
-
|
|
448
|
+
#### `note patch`:结构化编辑正文
|
|
332
449
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
450
|
+
```bash
|
|
451
|
+
dino note content-read <note-id> --format json
|
|
452
|
+
dino note patch <note-id> --append-section "复盘" --content @./section.md --read-token <token> --format json
|
|
453
|
+
```
|
|
336
454
|
|
|
337
|
-
|
|
455
|
+
`note patch` 只用于正文结构化编辑。真实写入前必须先 `content-read`,并传回 `readToken`;替换媒体、表格、未知节点等受保护 block 时,还需要显式 `--allow-protected-replace`。
|
|
338
456
|
|
|
339
|
-
|
|
457
|
+
#### 收藏状态
|
|
340
458
|
|
|
341
|
-
|
|
459
|
+
```bash
|
|
460
|
+
dino note star <note-id>
|
|
461
|
+
dino note unstar <note-id>
|
|
462
|
+
dino note star --ids @./note-ids.txt
|
|
463
|
+
```
|
|
342
464
|
|
|
343
|
-
|
|
465
|
+
### 5.5 删除笔记
|
|
344
466
|
|
|
345
|
-
|
|
467
|
+
```bash
|
|
468
|
+
dino note delete <note-id>
|
|
469
|
+
```
|
|
346
470
|
|
|
347
|
-
|
|
471
|
+
说明:
|
|
348
472
|
|
|
349
|
-
|
|
473
|
+
- 这是软删除,不是物理彻底抹除
|
|
474
|
+
- 建议先加 `--dry-run` 再执行正式删除
|
|
350
475
|
|
|
351
|
-
|
|
476
|
+
```bash
|
|
477
|
+
dino note delete <note-id> --dry-run
|
|
478
|
+
```
|
|
352
479
|
|
|
353
|
-
###
|
|
480
|
+
### 5.6 管理待办任务
|
|
354
481
|
|
|
355
|
-
|
|
482
|
+
Dinox 的待办来自笔记内容中的任务列表。CLI 提供了 4 个最常用动作:搜索、追加、创建、更新状态。
|
|
356
483
|
|
|
357
|
-
|
|
358
|
-
| --- | --- | --- |
|
|
359
|
-
| `[path]` | 否 | 命令路径,例如 `note.search`、`todo.update`、`sync`。不传则列出所有可用 schema。 |
|
|
484
|
+
#### 搜索待办
|
|
360
485
|
|
|
361
|
-
|
|
486
|
+
```bash
|
|
487
|
+
dino todo search
|
|
488
|
+
dino todo search "付款"
|
|
489
|
+
dino todo search "付款" --status uncompleted
|
|
490
|
+
dino todo search --from 2026-03-01 --to 2026-03-07 --limit 100
|
|
491
|
+
```
|
|
362
492
|
|
|
363
|
-
|
|
493
|
+
#### 按标签筛选待办
|
|
364
494
|
|
|
365
495
|
```bash
|
|
366
|
-
dino
|
|
367
|
-
dino schema note.search
|
|
368
|
-
dino schema note.search --format json
|
|
496
|
+
dino todo search --tags "工作,财务"
|
|
369
497
|
```
|
|
370
498
|
|
|
371
|
-
|
|
499
|
+
#### 创建一条新的待办笔记
|
|
500
|
+
|
|
501
|
+
```bash
|
|
502
|
+
dino todo create "补交报销单"
|
|
503
|
+
```
|
|
372
504
|
|
|
373
|
-
|
|
505
|
+
#### 一次创建多条待办
|
|
374
506
|
|
|
375
|
-
|
|
507
|
+
```bash
|
|
508
|
+
dino todo create --task "补交报销单" --task "整理发票"
|
|
509
|
+
dino todo create --tasks '["补交报销单","整理发票"]'
|
|
510
|
+
dino todo create --tasks @./todo.txt --title "本周财务待办"
|
|
511
|
+
```
|
|
376
512
|
|
|
377
|
-
|
|
378
|
-
| --- | --- | --- |
|
|
379
|
-
| `[query]` | 否 | 搜索关键词。可为空。 |
|
|
513
|
+
#### 追加待办到现有笔记
|
|
380
514
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
| `--days <n>` | 否 | 最近 N 天(按 `created_at`),不能与 `--from/--to` 同时使用。 |
|
|
387
|
-
| `--boxes <string\|@file>` | 否 | 按卡片盒名称筛选(支持 JSON 数组或逗号/换行分隔);会自动解析为 box id 查询。 |
|
|
388
|
-
| `--sql <expr>` | 否 | SQL 风格条件表达式;仅支持字段 `id/content_md/summary/tags/zettel_boxes/created_at/type`,其中 `zettel_boxes` 按名称自动转 id。只支持只读 WHERE 条件(禁止 `INSERT/UPDATE/DELETE`、注释和多语句)。 |
|
|
389
|
-
| `--include-deleted` | 否 | 包含软删除笔记。 |
|
|
515
|
+
```bash
|
|
516
|
+
dino todo append "补交报销单"
|
|
517
|
+
dino todo append --note-id <note-id> --task "补交报销单" --task "整理发票"
|
|
518
|
+
dino todo append --note-id <note-id> --tasks @./todo.txt
|
|
519
|
+
```
|
|
390
520
|
|
|
391
|
-
|
|
521
|
+
说明:
|
|
392
522
|
|
|
393
|
-
|
|
523
|
+
- 如果不传 `--note-id`,CLI 会自动选一条“适合追加任务”的最近笔记
|
|
524
|
+
- 如果该笔记末尾已有任务列表,会直接并入;没有则会新建任务列表
|
|
394
525
|
|
|
395
|
-
|
|
526
|
+
#### 更新待办状态
|
|
396
527
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
528
|
+
```bash
|
|
529
|
+
dino todo update <task-id> --status completed
|
|
530
|
+
dino todo update <task-id> --status uncompleted
|
|
531
|
+
```
|
|
400
532
|
|
|
401
|
-
|
|
533
|
+
兼容写法也支持:
|
|
402
534
|
|
|
403
|
-
|
|
535
|
+
```bash
|
|
536
|
+
dino todo update <task-id> --status done
|
|
537
|
+
dino todo update <task-id> --status false
|
|
538
|
+
```
|
|
404
539
|
|
|
405
|
-
|
|
540
|
+
但为了可读性,推荐始终使用:
|
|
406
541
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
| `[id]` | 否 | 单个笔记 ID(可与 `--ids` 组合,去重后批量读取)。 |
|
|
542
|
+
- `completed`
|
|
543
|
+
- `uncompleted`
|
|
410
544
|
|
|
411
|
-
|
|
412
|
-
| --- | --- | --- |
|
|
413
|
-
| `--ids <string\|@file>` | 否 | 笔记 ID 列表(JSON 数组或逗号/换行分隔)。 |
|
|
545
|
+
### 5.7 管理标签
|
|
414
546
|
|
|
415
|
-
|
|
547
|
+
#### 查看全部标签
|
|
416
548
|
|
|
417
|
-
|
|
549
|
+
```bash
|
|
550
|
+
dino tag list
|
|
551
|
+
```
|
|
418
552
|
|
|
419
|
-
|
|
553
|
+
#### 创建标签
|
|
420
554
|
|
|
421
|
-
|
|
555
|
+
```bash
|
|
556
|
+
dino tag add "工作/项目A"
|
|
557
|
+
dino tag add --name "工作/项目A" --emoji "🧠"
|
|
558
|
+
```
|
|
422
559
|
|
|
423
|
-
|
|
424
|
-
| --- | --- | --- |
|
|
425
|
-
| `--title <string>` | 是 | 笔记标题。 |
|
|
426
|
-
| `--content <string|@file>` | 是 | Markdown 内容,可传 `@文件路径`。 |
|
|
427
|
-
| `--type <note\|crawl>` | 否 | 笔记类型,默认 `crawl`。 |
|
|
428
|
-
| `--tags <string\|@file>` | 否 | 标签列表(JSON 数组或逗号/换行分隔)。 |
|
|
429
|
-
| `--boxes <string\|@file>` | 否 | 卡片盒名称列表(JSON 数组或逗号/换行分隔)。 |
|
|
430
|
-
| `--dry-run` | 否 | 仅预览将要创建的笔记,不实际写入。 |
|
|
560
|
+
说明:
|
|
431
561
|
|
|
432
|
-
|
|
562
|
+
- 支持层级标签,如 `工作/项目A`
|
|
563
|
+
- 已删除但同名的标签,CLI 会尽量做恢复而不是重复新建
|
|
433
564
|
|
|
434
|
-
###
|
|
565
|
+
### 5.8 管理卡片盒
|
|
435
566
|
|
|
436
|
-
|
|
567
|
+
#### 查看全部卡片盒
|
|
437
568
|
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
569
|
+
```bash
|
|
570
|
+
dino box list
|
|
571
|
+
```
|
|
441
572
|
|
|
442
|
-
|
|
443
|
-
| --- | --- | --- |
|
|
444
|
-
| `--ids <string\|@file>` | 否 | 批量更新的笔记 ID 列表(JSON 数组或逗号/换行分隔)。 |
|
|
445
|
-
| `--tags <string\|@file>` | 否 | 标签列表(JSON 数组或逗号/换行分隔)。传 `[]` 可清空标签。 |
|
|
446
|
-
| `--boxes <string\|@file>` | 否 | 卡片盒名称列表(JSON 数组或逗号/换行分隔)。传 `[]` 可清空卡片盒。 |
|
|
447
|
-
| `--starred <true\|false>` | 否 | 设置收藏状态。 |
|
|
448
|
-
| `--dry-run` | 否 | 仅预览将要执行的变更,不实际写入。 |
|
|
573
|
+
#### 创建卡片盒
|
|
449
574
|
|
|
450
|
-
|
|
575
|
+
```bash
|
|
576
|
+
dino box add "Inbox"
|
|
577
|
+
dino box add --name "Inbox" --description "用于存放待整理的想法和资料"
|
|
578
|
+
```
|
|
451
579
|
|
|
452
|
-
|
|
580
|
+
说明:
|
|
453
581
|
|
|
454
|
-
|
|
582
|
+
- `--description` 很值得写
|
|
583
|
+
- 这段说明会帮助 AI 和你自己更准确地理解这个卡片盒的用途
|
|
455
584
|
|
|
456
|
-
|
|
585
|
+
### 5.9 管理 Prompt
|
|
457
586
|
|
|
458
|
-
|
|
459
|
-
| --- | --- | --- |
|
|
460
|
-
| `<id>` | 是 | 笔记 ID。 |
|
|
587
|
+
#### 查看全部 Prompt
|
|
461
588
|
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
589
|
+
```bash
|
|
590
|
+
dino prompt list
|
|
591
|
+
```
|
|
465
592
|
|
|
466
|
-
|
|
593
|
+
#### 新建 Prompt
|
|
467
594
|
|
|
468
|
-
|
|
595
|
+
```bash
|
|
596
|
+
dino prompt add --name "周报助手" --prompt "请基于本周笔记输出一份简洁周报"
|
|
597
|
+
```
|
|
469
598
|
|
|
470
|
-
###
|
|
599
|
+
### 5.10 查看版本与配置
|
|
471
600
|
|
|
472
|
-
|
|
601
|
+
#### 查看版本信息
|
|
473
602
|
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
| `--format <yaml\|json>` | 否 | 结构化输出格式,推荐 AI / 脚本使用 `json`。 |
|
|
478
|
-
| `--offline` | 否 | 跳过 connect/sync,仅用本地缓存。 |
|
|
479
|
-
| `--sync-timeout <ms>` | 否 | 覆盖连接/同步超时毫秒。 |
|
|
603
|
+
```bash
|
|
604
|
+
dino info
|
|
605
|
+
```
|
|
480
606
|
|
|
481
|
-
|
|
607
|
+
#### 查看全部可读配置
|
|
482
608
|
|
|
483
|
-
|
|
609
|
+
```bash
|
|
610
|
+
dino config get
|
|
611
|
+
```
|
|
484
612
|
|
|
485
|
-
|
|
486
|
-
| --- | --- | --- |
|
|
487
|
-
| `[name]` | 否 | 标签名/路径(支持斜杠层级)。 |
|
|
613
|
+
#### 查看单个配置项
|
|
488
614
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
| `--emoji <string>` | 否 | 标签 emoji。 |
|
|
493
|
-
| `--json` | 否 | 兼容旧行为,输出 machine-readable YAML。 |
|
|
494
|
-
| `--format <yaml\|json>` | 否 | 结构化输出格式,推荐 AI / 脚本使用 `json`。 |
|
|
495
|
-
| `--dry-run` | 否 | 仅预览将要创建或恢复的标签,不实际写入。 |
|
|
496
|
-
| `--offline` | 否 | 跳过 connect/sync,仅用本地缓存。 |
|
|
497
|
-
| `--sync-timeout <ms>` | 否 | 覆盖连接/同步超时毫秒。 |
|
|
615
|
+
```bash
|
|
616
|
+
dino config get sync.timeoutMs
|
|
617
|
+
```
|
|
498
618
|
|
|
499
|
-
|
|
619
|
+
#### 设置同步超时
|
|
500
620
|
|
|
501
|
-
|
|
621
|
+
```bash
|
|
622
|
+
dino config set sync.timeoutMs 20000
|
|
623
|
+
```
|
|
502
624
|
|
|
503
|
-
|
|
625
|
+
目前最常用、也是正式开放可写的配置项就是:
|
|
504
626
|
|
|
505
|
-
|
|
627
|
+
- `sync.timeoutMs`
|
|
506
628
|
|
|
507
|
-
|
|
508
|
-
| --- | --- | --- |
|
|
509
|
-
| `--offline` | 否 | 跳过 connect/sync,仅用本地缓存。 |
|
|
510
|
-
| `--sync-timeout <ms>` | 否 | 覆盖连接/同步超时毫秒。 |
|
|
629
|
+
---
|
|
511
630
|
|
|
512
|
-
|
|
631
|
+
## 6. 完整命令速查
|
|
513
632
|
|
|
514
|
-
|
|
633
|
+
这一节适合“我已经知道要做什么,只想确认命令怎么写”。
|
|
515
634
|
|
|
516
|
-
|
|
517
|
-
| --- | --- | --- |
|
|
518
|
-
| `[name]` | 否 | 卡片盒名称。 |
|
|
635
|
+
### 6.1 全局参数
|
|
519
636
|
|
|
520
|
-
|
|
521
|
-
| --- | --- | --- |
|
|
522
|
-
| `--name <string>` | 否 | 卡片盒名称,可替代位置参数 `[name]`。 |
|
|
523
|
-
| `--description <string>` | 否 | 用途说明(可帮助 AI 路由笔记)。 |
|
|
524
|
-
| `--color <string>` | 否 | 卡片盒颜色。 |
|
|
525
|
-
| `--json` | 否 | 兼容旧行为,输出 machine-readable YAML。 |
|
|
526
|
-
| `--format <yaml\|json>` | 否 | 结构化输出格式,推荐 AI / 脚本使用 `json`。 |
|
|
527
|
-
| `--dry-run` | 否 | 仅预览将要创建或恢复的卡片盒,不实际写入。 |
|
|
528
|
-
| `--offline` | 否 | 跳过 connect/sync,仅用本地缓存。 |
|
|
529
|
-
| `--sync-timeout <ms>` | 否 | 覆盖连接/同步超时毫秒。 |
|
|
637
|
+
这些参数可以放在很多命令前后使用:
|
|
530
638
|
|
|
531
|
-
|
|
639
|
+
| 参数 | 说明 |
|
|
640
|
+
| --- | --- |
|
|
641
|
+
| `--format json` | 推荐的结构化输出格式,适合脚本和 AI |
|
|
642
|
+
| `--format yaml` | YAML 结构化输出 |
|
|
643
|
+
| `--json` | 历史兼容写法,等价于 `--format yaml` |
|
|
644
|
+
| `--offline` | 跳过联网/同步,只使用本地缓存 |
|
|
645
|
+
| `--sync-timeout <ms>` | 覆盖同步超时时间,单位毫秒 |
|
|
646
|
+
| `--verbose` | 预留的详细日志开关 |
|
|
532
647
|
|
|
533
|
-
|
|
648
|
+
示例:
|
|
534
649
|
|
|
535
|
-
|
|
650
|
+
```bash
|
|
651
|
+
dino --format json note search "AI"
|
|
652
|
+
dino note search "AI" --offline --format json
|
|
653
|
+
```
|
|
536
654
|
|
|
537
|
-
|
|
655
|
+
### 6.2 `auth`:登录与状态
|
|
538
656
|
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
657
|
+
```bash
|
|
658
|
+
dino auth login "<token>"
|
|
659
|
+
dino auth status
|
|
660
|
+
dino auth logout
|
|
661
|
+
dino auth logout --clear-local-db
|
|
662
|
+
```
|
|
543
663
|
|
|
544
|
-
|
|
664
|
+
用途说明:
|
|
545
665
|
|
|
546
|
-
|
|
666
|
+
- `login`:保存 token 并验证连接
|
|
667
|
+
- `status`:查看登录状态、本地库位置、同步状态
|
|
668
|
+
- `logout`:退出登录
|
|
669
|
+
- `logout --clear-local-db`:退出并删除本地 SQLite 缓存
|
|
547
670
|
|
|
548
|
-
|
|
549
|
-
| --- | --- | --- |
|
|
550
|
-
| `--name <string>` | 是 | Prompt 名称。 |
|
|
551
|
-
| `--prompt <string>` | 是 | Prompt 文本内容。 |
|
|
552
|
-
| `--json` | 否 | 兼容旧行为,输出 machine-readable YAML。 |
|
|
553
|
-
| `--format <yaml\|json>` | 否 | 结构化输出格式,推荐 AI / 脚本使用 `json`。 |
|
|
554
|
-
| `--dry-run` | 否 | 仅预览将要创建或恢复的 Prompt,不实际写入。 |
|
|
555
|
-
| `--offline` | 否 | 跳过 connect/sync,仅用本地缓存。 |
|
|
556
|
-
| `--sync-timeout <ms>` | 否 | 覆盖连接/同步超时毫秒。 |
|
|
671
|
+
### 6.3 `sync`:手动同步
|
|
557
672
|
|
|
558
|
-
|
|
673
|
+
```bash
|
|
674
|
+
dino sync
|
|
675
|
+
dino sync --sync-timeout 600000
|
|
676
|
+
```
|
|
559
677
|
|
|
560
|
-
|
|
678
|
+
用途说明:
|
|
561
679
|
|
|
562
|
-
|
|
680
|
+
- 主动执行一次连接与同步
|
|
681
|
+
- 首次使用、网络恢复后、或想刷新本地缓存时最常用
|
|
563
682
|
|
|
564
|
-
|
|
565
|
-
| --- | --- | --- |
|
|
566
|
-
| `[key]` | 否 | 配置键(点路径);不传则返回全部配置。 |
|
|
683
|
+
### 6.4 `note`:笔记管理
|
|
567
684
|
|
|
568
|
-
|
|
685
|
+
#### 搜索与查看
|
|
569
686
|
|
|
570
|
-
```
|
|
571
|
-
|
|
687
|
+
```bash
|
|
688
|
+
dino note search [query]
|
|
689
|
+
dino note get <id>
|
|
690
|
+
dino note get <id> --context-only
|
|
691
|
+
dino note preview <id> --lines 30
|
|
692
|
+
dino note detail <id>
|
|
693
|
+
dino note detail --ids @./ids.txt
|
|
572
694
|
```
|
|
573
695
|
|
|
574
|
-
|
|
696
|
+
#### 创建与修改
|
|
575
697
|
|
|
576
|
-
|
|
698
|
+
```bash
|
|
699
|
+
dino note create --title "标题" --content @./note.md --type note
|
|
700
|
+
dino note update <id> --tags "工作,AI"
|
|
701
|
+
dino note update <id> --boxes "Inbox"
|
|
702
|
+
dino note update <id> --starred true
|
|
703
|
+
dino note star <id>
|
|
704
|
+
dino note unstar <id>
|
|
705
|
+
dino note delete <id>
|
|
706
|
+
```
|
|
577
707
|
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
708
|
+
重点参数:
|
|
709
|
+
|
|
710
|
+
- `note search`
|
|
711
|
+
- `--tags <expr>`:标签表达式
|
|
712
|
+
- `--from <date>` / `--to <date>` / `--days <n>`:时间过滤
|
|
713
|
+
- `--starred <true|false>`:按收藏状态过滤
|
|
714
|
+
- `--boxes <list>`:按卡片盒过滤
|
|
715
|
+
- `--sql <expr>`:高级筛选
|
|
716
|
+
- `--limit <n>` / `--offset <n>`:分页
|
|
717
|
+
- `--fields <list>`:裁剪输出字段
|
|
718
|
+
- `--include-deleted`:包含软删除笔记
|
|
719
|
+
- `note create`
|
|
720
|
+
- `--title`:必填
|
|
721
|
+
- `--content`:必填,可用 `@文件`
|
|
722
|
+
- `--type <note|crawl>`:默认 `crawl`
|
|
723
|
+
- `--tags` / `--boxes`
|
|
724
|
+
- `--dry-run`
|
|
725
|
+
- `note update`
|
|
726
|
+
- `[id]` 或 `--ids`
|
|
727
|
+
- `--tags` / `--boxes` / `--starred`
|
|
728
|
+
- `--dry-run`
|
|
729
|
+
|
|
730
|
+
### 6.5 `todo`:待办管理
|
|
582
731
|
|
|
583
|
-
|
|
732
|
+
```bash
|
|
733
|
+
dino todo search [query]
|
|
734
|
+
dino todo append [task]
|
|
735
|
+
dino todo create [task]
|
|
736
|
+
dino todo update <task-id> --status completed
|
|
737
|
+
```
|
|
584
738
|
|
|
585
|
-
|
|
586
|
-
|
|
739
|
+
重点参数:
|
|
740
|
+
|
|
741
|
+
- `todo search`
|
|
742
|
+
- `--status <all|completed|uncompleted>`
|
|
743
|
+
- `--tags <list>`
|
|
744
|
+
- `--from <date>` / `--to <date>` / `--days <n>`
|
|
745
|
+
- `--limit <n>`
|
|
746
|
+
- `--scan-limit <n>`
|
|
747
|
+
- `--include-deleted`
|
|
748
|
+
- `todo append`
|
|
749
|
+
- `[task]` / `--task` / `--tasks`
|
|
750
|
+
- `--note-id <id>`
|
|
751
|
+
- `--dry-run`
|
|
752
|
+
- `todo create`
|
|
753
|
+
- `[task]` / `--task` / `--tasks`
|
|
754
|
+
- `--title <string>`
|
|
755
|
+
- `--dry-run`
|
|
756
|
+
- `todo update`
|
|
757
|
+
- `--status <status>` 必填
|
|
758
|
+
- `--dry-run`
|
|
759
|
+
|
|
760
|
+
### 6.6 `tag`:标签管理
|
|
761
|
+
|
|
762
|
+
```bash
|
|
763
|
+
dino tag list
|
|
764
|
+
dino tag add "工作/项目A"
|
|
765
|
+
dino tag add --name "工作/项目A" --emoji "🧠"
|
|
587
766
|
```
|
|
588
767
|
|
|
589
|
-
|
|
768
|
+
### 6.7 `box`:卡片盒管理
|
|
590
769
|
|
|
591
|
-
|
|
770
|
+
```bash
|
|
771
|
+
dino box list
|
|
772
|
+
dino box add "Inbox"
|
|
773
|
+
dino box add --name "Inbox" --description "用于存放待整理资料"
|
|
774
|
+
```
|
|
775
|
+
|
|
776
|
+
重点参数:
|
|
592
777
|
|
|
593
|
-
|
|
778
|
+
- `--description <string>`:用途说明
|
|
779
|
+
- `--color <string>`:颜色
|
|
780
|
+
- `--dry-run`
|
|
594
781
|
|
|
595
|
-
|
|
782
|
+
### 6.8 `prompt`:Prompt 管理
|
|
596
783
|
|
|
597
|
-
|
|
784
|
+
```bash
|
|
785
|
+
dino prompt list
|
|
786
|
+
dino prompt add --name "周报助手" --prompt "请基于本周笔记输出简洁周报"
|
|
787
|
+
```
|
|
598
788
|
|
|
599
|
-
### `
|
|
789
|
+
### 6.9 `config`:CLI 配置
|
|
600
790
|
|
|
601
|
-
|
|
791
|
+
```bash
|
|
792
|
+
dino config get
|
|
793
|
+
dino config get sync.timeoutMs
|
|
794
|
+
dino config set sync.timeoutMs 20000
|
|
795
|
+
```
|
|
602
796
|
|
|
603
|
-
|
|
604
|
-
| --- | --- | --- |
|
|
605
|
-
| `[query]` | 否 | 按任务文本模糊匹配(不区分大小写)。 |
|
|
797
|
+
### 6.10 `graph`:知识图谱查询
|
|
606
798
|
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
| `--days <n>` | 否 | 最近 N 天(不能与 `--from/--to` 同时使用)。 |
|
|
614
|
-
| `--limit <n>` | 否 | 返回任务数上限(默认 `50`,最大 `500`)。 |
|
|
615
|
-
| `--scan-limit <n>` | 否 | 扫描 `c_note` 行数上限(默认 `200`,最大 `5000`)。 |
|
|
616
|
-
| `--include-deleted` | 否 | 包含软删除笔记中的任务。 |
|
|
799
|
+
```bash
|
|
800
|
+
dino graph backlinks <note-id>
|
|
801
|
+
dino graph outlinks <note-id>
|
|
802
|
+
dino graph related <note-id> --depth 2
|
|
803
|
+
dino graph stats
|
|
804
|
+
```
|
|
617
805
|
|
|
618
|
-
|
|
806
|
+
说明:
|
|
619
807
|
|
|
620
|
-
-
|
|
621
|
-
-
|
|
808
|
+
- 这些命令用于查看笔记之间的链接关系
|
|
809
|
+
- 在线模式下,CLI 会自动确保 daemon 可用
|
|
810
|
+
- 如果你只想用本地缓存而不启动 daemon,可加 `--offline`
|
|
622
811
|
|
|
623
|
-
|
|
812
|
+
例如:
|
|
624
813
|
|
|
625
|
-
|
|
814
|
+
```bash
|
|
815
|
+
dino graph related <note-id> --depth 2 --offline --format json
|
|
816
|
+
```
|
|
626
817
|
|
|
627
|
-
|
|
818
|
+
### 6.11 `meta`:查看元数据
|
|
628
819
|
|
|
629
|
-
|
|
820
|
+
```bash
|
|
821
|
+
dino meta stats
|
|
822
|
+
dino meta schema
|
|
823
|
+
```
|
|
630
824
|
|
|
631
|
-
|
|
632
|
-
- 若不传 `--note-id`,默认选择 `image_detail` 非空且不为 `[]` 的最新笔记(按 `created_at` 降序)。
|
|
633
|
-
- 若笔记末尾已有 `taskList`,会并入该 `taskList`;否则在末尾创建新的 `taskList`。
|
|
825
|
+
用途说明:
|
|
634
826
|
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
| `[task]` | 否 | 单个任务文本。 |
|
|
827
|
+
- `meta stats`:看 notes / tags / boxes 等统计信息
|
|
828
|
+
- `meta schema`:看 Dinox 结构化数据 schema,适合 AI / 自动化接入
|
|
638
829
|
|
|
639
|
-
|
|
640
|
-
| --- | --- | --- |
|
|
641
|
-
| `--task <text>` | 否 | 任务文本(可重复传入)。 |
|
|
642
|
-
| `--tasks <string\|@file>` | 否 | 任务列表(JSON 数组或逗号/换行分隔)。 |
|
|
643
|
-
| `--note-id <id>` | 否 | 指定目标笔记 ID。 |
|
|
644
|
-
| `--dry-run` | 否 | 仅预览将要追加的任务和目标笔记,不实际写入。 |
|
|
830
|
+
### 6.12 `storage`:自定义存储配置与上传
|
|
645
831
|
|
|
646
|
-
|
|
832
|
+
```bash
|
|
833
|
+
dino storage list
|
|
834
|
+
dino storage test
|
|
835
|
+
dino storage test --storage-id <id>
|
|
836
|
+
dino storage upload ./report.pdf
|
|
837
|
+
dino storage upload ./photo.jpg --category images
|
|
838
|
+
dino storage stats
|
|
839
|
+
```
|
|
647
840
|
|
|
648
|
-
|
|
841
|
+
重点说明:
|
|
649
842
|
|
|
650
|
-
|
|
843
|
+
- 这是给 Dinox 的自定义存储配置用的,不是一个“任意云盘命令”
|
|
844
|
+
- `storage list` 会列出当前可用的自定义存储,并标出活动配置
|
|
845
|
+
- `storage test` 会测试目标存储是否可写
|
|
846
|
+
- `storage upload` 会上传本地文件,并写入资源记录
|
|
847
|
+
- 如果不是上传到当前活动存储,可用 `--storage-id <id>` 指定目标
|
|
848
|
+
- `--category` 支持:`images`、`audios`、`files`、`videos`
|
|
849
|
+
- 如果你想自己指定对象 key,可用 `--key <string>`
|
|
850
|
+
- `--dry-run` 非常适合在正式上传前确认目标位置
|
|
651
851
|
|
|
652
|
-
|
|
852
|
+
### 6.13 `schema`:查看命令 schema
|
|
653
853
|
|
|
654
|
-
|
|
854
|
+
```bash
|
|
855
|
+
dino schema
|
|
856
|
+
dino schema note.search
|
|
857
|
+
dino schema todo.update --format json
|
|
858
|
+
```
|
|
655
859
|
|
|
656
|
-
|
|
657
|
-
- 默认自动生成总结性标题(可用 `--title` 覆盖)。
|
|
860
|
+
适合场景:
|
|
658
861
|
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
862
|
+
- 你不确定某个命令的参数怎么写
|
|
863
|
+
- 你要让 AI / 脚本可靠调用 CLI
|
|
864
|
+
- 你想快速查看命令风险级别、输出结构、示例
|
|
662
865
|
|
|
663
|
-
|
|
664
|
-
| --- | --- | --- |
|
|
665
|
-
| `--task <text>` | 否 | 任务文本(可重复传入)。 |
|
|
666
|
-
| `--tasks <string\|@file>` | 否 | 任务列表(JSON 数组或逗号/换行分隔)。 |
|
|
667
|
-
| `--title <string>` | 否 | 自定义笔记标题。 |
|
|
668
|
-
| `--dry-run` | 否 | 仅预览将要创建的待办笔记,不实际写入。 |
|
|
866
|
+
### 6.14 `daemon`:管理后台进程
|
|
669
867
|
|
|
670
|
-
|
|
868
|
+
```bash
|
|
869
|
+
dino daemon start
|
|
870
|
+
dino daemon status
|
|
871
|
+
dino daemon restart
|
|
872
|
+
dino daemon stop
|
|
873
|
+
```
|
|
671
874
|
|
|
672
|
-
|
|
875
|
+
调试时可以前台运行:
|
|
673
876
|
|
|
674
|
-
|
|
877
|
+
```bash
|
|
878
|
+
dino daemon start --no-detach
|
|
879
|
+
```
|
|
675
880
|
|
|
676
|
-
|
|
881
|
+
`daemon` 是公开 CLI 模块,也可以通过 schema 查询:
|
|
677
882
|
|
|
678
|
-
|
|
883
|
+
```bash
|
|
884
|
+
dino schema daemon.start --format json
|
|
885
|
+
```
|
|
679
886
|
|
|
680
|
-
|
|
681
|
-
- `content_json` 是真源,更新后会同步回写 `image_detail`、`content_md`、`content_text`。
|
|
682
|
-
- 若同一个 taskId 出现在多篇笔记,会报错并拒绝更新(避免误改)。
|
|
887
|
+
### 6.15 `info`:查看版本与技能仓库地址
|
|
683
888
|
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
889
|
+
```bash
|
|
890
|
+
dino info
|
|
891
|
+
```
|
|
687
892
|
|
|
688
|
-
|
|
689
|
-
| --- | --- | --- |
|
|
690
|
-
| `--status <status>` | 是 | 目标状态。 |
|
|
691
|
-
| `--dry-run` | 否 | 仅预览将要更新的任务状态,不实际写入。 |
|
|
893
|
+
### 6.16 `update`:升级 CLI
|
|
692
894
|
|
|
693
|
-
|
|
895
|
+
```bash
|
|
896
|
+
dino update
|
|
897
|
+
```
|
|
694
898
|
|
|
695
899
|
---
|
|
696
900
|
|
|
697
|
-
##
|
|
901
|
+
## 7. AI / 脚本自动化
|
|
698
902
|
|
|
699
|
-
|
|
903
|
+
如果你希望让 AI 助手或脚本可靠调用 Dinox 数据,推荐直接使用 CLI 命令的结构化输出。
|
|
700
904
|
|
|
701
|
-
###
|
|
702
|
-
|
|
703
|
-
默认监听本机 `127.0.0.1:45137`:
|
|
905
|
+
### 7.1 使用 JSON 输出
|
|
704
906
|
|
|
705
907
|
```bash
|
|
706
|
-
dino
|
|
908
|
+
dino note search "dinox" --limit 5 --format json
|
|
909
|
+
dino note detail <id> --format json
|
|
910
|
+
dino todo search --status uncompleted --format json
|
|
707
911
|
```
|
|
708
912
|
|
|
709
|
-
|
|
913
|
+
`--format json` 会返回稳定的结构化 envelope,适合被脚本、自动化任务和 AI Agent 解析。
|
|
914
|
+
|
|
915
|
+
### 7.2 先读取命令 schema
|
|
916
|
+
|
|
917
|
+
不确定某个命令支持哪些参数、输出哪些字段时,先读取 schema:
|
|
710
918
|
|
|
711
919
|
```bash
|
|
712
|
-
dino
|
|
920
|
+
dino schema
|
|
921
|
+
dino schema note.search --format json
|
|
922
|
+
dino schema todo.update --format json
|
|
713
923
|
```
|
|
714
924
|
|
|
715
|
-
|
|
925
|
+
schema 包含命令路径、风险级别、参数、选项、输出字段和示例。写操作建议先使用 `--dry-run` 确认结果。
|
|
716
926
|
|
|
717
|
-
|
|
927
|
+
---
|
|
928
|
+
|
|
929
|
+
## 8. 常见问题
|
|
930
|
+
|
|
931
|
+
### Q1:报错 `Missing resolved userId for the current authorization`
|
|
932
|
+
|
|
933
|
+
原因:你还没有完成登录,或当前 `DINOX_TOKEN` 环境变量覆盖了本地 token,CLI 需要先在线解析这个 token 对应的用户身份。
|
|
934
|
+
|
|
935
|
+
解决:
|
|
718
936
|
|
|
719
937
|
```bash
|
|
720
|
-
dino
|
|
938
|
+
dino auth login "<token>"
|
|
939
|
+
dino sync
|
|
721
940
|
```
|
|
722
941
|
|
|
723
|
-
|
|
942
|
+
如果你使用环境变量登录,确认 `DINOX_TOKEN` 已设置后直接运行一次在线命令:
|
|
724
943
|
|
|
725
944
|
```bash
|
|
726
|
-
|
|
727
|
-
dino
|
|
945
|
+
dino auth status --format json
|
|
946
|
+
dino sync
|
|
728
947
|
```
|
|
729
948
|
|
|
730
|
-
|
|
949
|
+
### Q2:创建笔记时报 `Unknown tags` 或 `Unknown zettel box names`
|
|
731
950
|
|
|
732
|
-
|
|
733
|
-
2. `x-dinox-token: <token>`
|
|
951
|
+
原因:你引用了不存在的标签或卡片盒。
|
|
734
952
|
|
|
735
|
-
|
|
953
|
+
解决:先创建,再重试。
|
|
736
954
|
|
|
737
|
-
|
|
955
|
+
```bash
|
|
956
|
+
dino tag add "你的标签"
|
|
957
|
+
dino box add "你的卡片盒"
|
|
958
|
+
```
|
|
959
|
+
|
|
960
|
+
### Q3:我已经同步过了,能不能完全离线查询?
|
|
961
|
+
|
|
962
|
+
可以。很多读命令都支持:
|
|
738
963
|
|
|
739
964
|
```bash
|
|
740
|
-
|
|
741
|
-
-H 'content-type: application/json' \
|
|
742
|
-
--data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'
|
|
965
|
+
--offline
|
|
743
966
|
```
|
|
744
967
|
|
|
745
|
-
|
|
968
|
+
例如:
|
|
746
969
|
|
|
747
970
|
```bash
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
--data '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
|
|
971
|
+
dino note search "日报" --offline
|
|
972
|
+
dino graph stats --offline --format json
|
|
751
973
|
```
|
|
752
974
|
|
|
753
|
-
|
|
975
|
+
前提是:你之前至少成功同步过一次,本地缓存里已经有数据。
|
|
976
|
+
|
|
977
|
+
### Q4:`note update` 为什么不是“追加标签”?
|
|
978
|
+
|
|
979
|
+
因为它的设计就是“全量替换”。
|
|
980
|
+
|
|
981
|
+
例如:
|
|
754
982
|
|
|
755
983
|
```bash
|
|
756
|
-
|
|
757
|
-
-H 'content-type: application/json' \
|
|
758
|
-
--data '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"dinox_search_notes","arguments":{"query":"dinox","limit":5}}}'
|
|
984
|
+
dino note update <note-id> --tags "工作,AI"
|
|
759
985
|
```
|
|
760
986
|
|
|
761
|
-
|
|
987
|
+
执行后,目标笔记的标签会被替换成这两个,而不是在原来基础上追加。
|
|
988
|
+
|
|
989
|
+
追加标签请使用:
|
|
990
|
+
|
|
991
|
+
```bash
|
|
992
|
+
dino note tag <note-id> --add "工作,AI"
|
|
993
|
+
```
|
|
762
994
|
|
|
763
|
-
|
|
995
|
+
### Q5:`todo append` 不传 `--note-id` 时会发生什么?
|
|
764
996
|
|
|
765
|
-
|
|
766
|
-
2. 全局:`~/.cursor/mcp.json`
|
|
997
|
+
CLI 会自动选一条最近的、适合追加任务的笔记作为目标。
|
|
767
998
|
|
|
768
|
-
|
|
999
|
+
如果你不希望它自动选,最稳妥的做法是显式传:
|
|
769
1000
|
|
|
770
|
-
```
|
|
771
|
-
|
|
772
|
-
"mcpServers": {
|
|
773
|
-
"dinox": {
|
|
774
|
-
"url": "http://127.0.0.1:45137",
|
|
775
|
-
"headers": {
|
|
776
|
-
"Authorization": "Bearer ${env:DINOX_MCP_TOKEN}"
|
|
777
|
-
}
|
|
778
|
-
}
|
|
779
|
-
}
|
|
780
|
-
}
|
|
1001
|
+
```bash
|
|
1002
|
+
dino todo append --note-id <note-id> --task "补交报销单"
|
|
781
1003
|
```
|
|
782
1004
|
|
|
783
|
-
|
|
1005
|
+
### Q6:Windows 下 `@file` 参数解析不稳定怎么办?
|
|
784
1006
|
|
|
785
|
-
|
|
1007
|
+
在 PowerShell 中,建议把 `@文件路径` 放进引号里。
|
|
786
1008
|
|
|
787
|
-
|
|
788
|
-
- 返回 `401 Unauthorized`:检查请求头 token 是否与启动服务时一致。
|
|
789
|
-
- 端口冲突:改用 `--port` 指定其他高位端口。
|
|
1009
|
+
例如:
|
|
790
1010
|
|
|
791
|
-
|
|
1011
|
+
```powershell
|
|
1012
|
+
dino note create --title "测试" --content "@.\note.md" --type note
|
|
1013
|
+
```
|
|
792
1014
|
|
|
793
|
-
|
|
1015
|
+
### Q7:怎么知道某个命令到底支持哪些参数?
|
|
794
1016
|
|
|
795
|
-
|
|
1017
|
+
最直接的方法:
|
|
796
1018
|
|
|
797
1019
|
```bash
|
|
798
|
-
dino --help
|
|
799
1020
|
dino <命令> --help
|
|
800
|
-
dino <命令> <子命令> --help
|
|
801
1021
|
```
|
|
802
1022
|
|
|
803
|
-
|
|
1023
|
+
如果你想看更结构化的 schema:
|
|
804
1024
|
|
|
805
1025
|
```bash
|
|
806
|
-
dino
|
|
807
|
-
dino note
|
|
1026
|
+
dino schema
|
|
1027
|
+
dino schema note.search
|
|
1028
|
+
dino schema todo.update --format json
|
|
1029
|
+
```
|
|
1030
|
+
|
|
1031
|
+
---
|
|
1032
|
+
|
|
1033
|
+
## 9. 配置文件、数据库与环境变量
|
|
1034
|
+
|
|
1035
|
+
### 9.1 默认文件位置
|
|
1036
|
+
|
|
1037
|
+
#### macOS
|
|
1038
|
+
|
|
1039
|
+
- 配置文件:`~/Library/Application Support/dinox/config.json`
|
|
1040
|
+
- 本地数据库:`~/Library/Application Support/dinox/dinox-cli.sqlite`
|
|
1041
|
+
|
|
1042
|
+
#### Windows
|
|
1043
|
+
|
|
1044
|
+
- 配置文件:`%APPDATA%\dinox\config.json`
|
|
1045
|
+
- 本地数据库:`%LOCALAPPDATA%\dinox\dinox-cli.sqlite`
|
|
1046
|
+
|
|
1047
|
+
#### Linux
|
|
1048
|
+
|
|
1049
|
+
- 配置文件:`~/.config/dinox/config.json`
|
|
1050
|
+
- 本地数据库:`~/.local/share/dinox/dinox-cli.sqlite`
|
|
1051
|
+
|
|
1052
|
+
### 9.2 常用环境变量
|
|
1053
|
+
|
|
1054
|
+
| 环境变量 | 用途 |
|
|
1055
|
+
| --- | --- |
|
|
1056
|
+
| `DINOX_CONFIG_DIR` | 覆盖配置目录 |
|
|
1057
|
+
| `DINOX_DATA_DIR` | 覆盖本地数据目录 |
|
|
1058
|
+
| `DINOX_TOKEN` | 用环境变量注入登录 token,优先级高于本地配置;可传 token 本体或 `Bearer ...` |
|
|
1059
|
+
| `DINOX_SYNC_TIMEOUT_MS` | 覆盖同步超时 |
|
|
1060
|
+
|
|
1061
|
+
### 9.3 macOS / Linux 与 Windows 的多行命令差异
|
|
1062
|
+
|
|
1063
|
+
#### macOS / Linux(bash / zsh)
|
|
1064
|
+
|
|
1065
|
+
用反斜杠 `\` 续行:
|
|
1066
|
+
|
|
1067
|
+
```bash
|
|
1068
|
+
dino note create \
|
|
1069
|
+
--title "标题" \
|
|
1070
|
+
--content "正文" \
|
|
1071
|
+
--type note
|
|
1072
|
+
```
|
|
1073
|
+
|
|
1074
|
+
#### Windows PowerShell
|
|
1075
|
+
|
|
1076
|
+
用反引号 `` ` `` 续行:
|
|
1077
|
+
|
|
1078
|
+
```powershell
|
|
1079
|
+
dino note create `
|
|
1080
|
+
--title "标题" `
|
|
1081
|
+
--content "正文" `
|
|
1082
|
+
--type note
|
|
808
1083
|
```
|
|
809
1084
|
|
|
810
1085
|
---
|
|
811
1086
|
|
|
812
|
-
##
|
|
1087
|
+
## 10. 如何查看帮助
|
|
813
1088
|
|
|
814
|
-
|
|
1089
|
+
任何时候都可以直接看 CLI 帮助:
|
|
815
1090
|
|
|
816
|
-
|
|
1091
|
+
```bash
|
|
1092
|
+
dino --help
|
|
1093
|
+
dino help note
|
|
1094
|
+
```
|
|
817
1095
|
|
|
818
|
-
|
|
1096
|
+
更常见的写法是:
|
|
819
1097
|
|
|
820
|
-
|
|
1098
|
+
```bash
|
|
1099
|
+
dino note --help
|
|
1100
|
+
dino note create --help
|
|
1101
|
+
dino todo --help
|
|
1102
|
+
dino storage upload --help
|
|
1103
|
+
```
|
|
821
1104
|
|
|
822
|
-
|
|
1105
|
+
如果你是脚本作者或 AI Agent 开发者,强烈建议搭配这两个命令一起使用:
|
|
823
1106
|
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
- `run_tests`:`true` 时会先执行测试
|
|
1107
|
+
```bash
|
|
1108
|
+
dino schema
|
|
1109
|
+
dino schema <path> --format json
|
|
1110
|
+
```
|
|
829
1111
|
|
|
830
|
-
|
|
1112
|
+
---
|
|
831
1113
|
|
|
832
|
-
|
|
833
|
-
- 为兼容分支命名迁移,workflow 也监听 `master`,但发布阶段会只允许默认分支执行
|
|
834
|
-
- 为防止递归触发,workflow 会跳过 `github-actions[bot]` 自己提交的版本 bump commit
|
|
1114
|
+
如果你是第一次用,建议按下面顺序熟悉:
|
|
835
1115
|
|
|
836
|
-
|
|
1116
|
+
1. `dino auth login`
|
|
1117
|
+
2. `dino sync`
|
|
1118
|
+
3. `dino note search`
|
|
1119
|
+
4. `dino note create`
|
|
1120
|
+
5. `dino todo search`
|
|
1121
|
+
6. `dino tag add` / `dino box add`
|
|
1122
|
+
7. `dino schema`
|
|
837
1123
|
|
|
838
|
-
|
|
839
|
-
- 调用仓库脚本 `publish-npm.sh` 自动递增 patch 版本并发布
|
|
840
|
-
- 发布成功后自动提交 `package.json` 版本变更、打 `vX.Y.Z` tag 并 push 回仓库
|
|
1124
|
+
这样会最快建立完整使用感。
|