@our2ndbrain/cli 1.1.3

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.
Files changed (47) hide show
  1. package/.obsidian/.2ndbrain-manifest.json +8 -0
  2. package/.obsidian/app.json +6 -0
  3. package/.obsidian/appearance.json +1 -0
  4. package/.obsidian/community-plugins.json +4 -0
  5. package/.obsidian/core-plugins.json +33 -0
  6. package/.obsidian/graph.json +22 -0
  7. package/.obsidian/plugins/calendar/data.json +10 -0
  8. package/.obsidian/plugins/calendar/main.js +4459 -0
  9. package/.obsidian/plugins/calendar/manifest.json +10 -0
  10. package/.obsidian/plugins/obsidian-custom-attachment-location/data.json +32 -0
  11. package/.obsidian/plugins/obsidian-custom-attachment-location/main.js +575 -0
  12. package/.obsidian/plugins/obsidian-custom-attachment-location/manifest.json +11 -0
  13. package/.obsidian/plugins/obsidian-custom-attachment-location/styles.css +1 -0
  14. package/.obsidian/plugins/obsidian-git/data.json +62 -0
  15. package/.obsidian/plugins/obsidian-git/main.js +426 -0
  16. package/.obsidian/plugins/obsidian-git/manifest.json +10 -0
  17. package/.obsidian/plugins/obsidian-git/obsidian_askpass.sh +23 -0
  18. package/.obsidian/plugins/obsidian-git/styles.css +629 -0
  19. package/.obsidian/plugins/obsidian-tasks-plugin/main.js +504 -0
  20. package/.obsidian/plugins/obsidian-tasks-plugin/manifest.json +12 -0
  21. package/.obsidian/plugins/obsidian-tasks-plugin/styles.css +1 -0
  22. package/.obsidian/types.json +28 -0
  23. package/00_Dashboard/01_All_Tasks.md +118 -0
  24. package/00_Dashboard/09_All_Done.md +42 -0
  25. package/10_Inbox/Agents/Journal.md +1 -0
  26. package/99_System/Scripts/init_member.sh +108 -0
  27. package/99_System/Templates/tpl_daily_note.md +13 -0
  28. package/99_System/Templates/tpl_member_done.md +32 -0
  29. package/99_System/Templates/tpl_member_tasks.md +97 -0
  30. package/AGENTS.md +193 -0
  31. package/CHANGELOG.md +67 -0
  32. package/CLAUDE.md +153 -0
  33. package/LICENSE +201 -0
  34. package/README.md +636 -0
  35. package/bin/2ndbrain.js +117 -0
  36. package/package.json +56 -0
  37. package/src/commands/completion.js +198 -0
  38. package/src/commands/init.js +308 -0
  39. package/src/commands/member.js +123 -0
  40. package/src/commands/remove.js +88 -0
  41. package/src/commands/update.js +507 -0
  42. package/src/index.js +17 -0
  43. package/src/lib/config.js +112 -0
  44. package/src/lib/diff.js +222 -0
  45. package/src/lib/files.js +340 -0
  46. package/src/lib/obsidian.js +366 -0
  47. package/src/lib/prompt.js +182 -0
package/README.md ADDED
@@ -0,0 +1,636 @@
1
+ # 🧠 2ndBrain
2
+
3
+ > 一套融合 [PARA](#para)、[C-O-R-D](#cord) 工作流与 [Append-and-Review](#append-and-review) 笔记法的个人知识管理方法论。
4
+
5
+ [简体中文](README.md) | [English](README_en.md)
6
+
7
+ [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
8
+ [![npm version](https://img.shields.io/npm/v/@our2ndbrain/cli.svg)](https://www.npmjs.com/package/@our2ndbrain/cli)
9
+
10
+ ## ✨ 这是什么?
11
+
12
+ **2ndBrain** 是一套个人知识管理方法论,融合了 **[PARA](#para)** 组织架构、**[C-O-R-D](#cord)** 工作流与 **Karpathy 的 [Append-and-Review](#append-and-review)** 笔记法——**先记下来,回顾时再整理**,让系统自动汇总任务到看板,你只需专注记录和执行。
13
+
14
+ > 🛠️ **关于工具**:方法论与工具分离。本仓库提供基于 [Obsidian](https://obsidian.md/) 的开箱即用模板——它本地优先、插件生态丰富,是当前性价比很高的选择。所有数据都是纯文本 Markdown,随时可迁移到任何你喜欢的工具。
15
+
16
+ 核心思路很简单:
17
+
18
+ - 📥 **先记下来再说**——所有输入先进收集箱,别打断你的心流
19
+ - 🏷️ **打个标签就行**——让任务能被系统"抓住",不会石沉大海
20
+ - 📋 **看板帮你选**——回顾时一目了然,不用靠脑子记
21
+ - ✅ **只做下一步**——避免选择瘫痪,做完一件是一件
22
+
23
+ ## 📖 目录
24
+
25
+ - [快速开始](#-快速开始)
26
+ - [团队协作](#-团队协作)
27
+ - [工作流程](#-工作流程-c-o-r-d)
28
+ - [任务约定](#-任务约定)
29
+ - [目录结构](#-目录结构-para)
30
+ - [核心入口](#-核心入口)
31
+ - [Obsidian 插件配置](#-obsidian-插件配置)
32
+ - [CLI 命令参考](#-cli-命令参考)
33
+ - [延伸阅读](#-延伸阅读)
34
+ - [贡献指南](#-贡献指南)
35
+
36
+ ## 🚀 快速开始
37
+
38
+ ### 安装
39
+
40
+ 推荐使用 **npx**(无需安装):
41
+
42
+ ```bash
43
+ npx @our2ndbrain/cli@latest init my-brain
44
+ cd my-brain
45
+ ```
46
+
47
+ 或全局安装:
48
+
49
+ ```bash
50
+ npm install -g @our2ndbrain/cli
51
+ 2ndbrain init my-brain
52
+ ```
53
+
54
+ ### 初始化你的知识库
55
+
56
+ ```bash
57
+ # 1. 创建项目(如已全局安装,直接用 2ndbrain 命令)
58
+ npx @our2ndbrain/cli@latest init my-brain
59
+ cd my-brain
60
+
61
+ # 2. 添加你的成员目录
62
+ npx @our2ndbrain/cli@latest member yourname
63
+
64
+ # 3. 用 Obsidian 打开 my-brain 目录,开始使用
65
+ ```
66
+
67
+ <details>
68
+ <summary><strong>🤖 让 AI 助手帮你设置</strong></summary>
69
+
70
+ 把下面这段话粘贴给任何 AI 助手(Claude、ChatGPT、Cursor 等):
71
+
72
+ ```
73
+ 帮我设置 2ndBrain 知识管理系统,按照这个文档操作:
74
+ https://raw.githubusercontent.com/Our2ndBrain/2ndBrain-Template/main/README.md
75
+ ```
76
+
77
+ </details>
78
+
79
+ <details>
80
+ <summary><strong>📋 已有知识库?一键集成 2ndBrain</strong></summary>
81
+
82
+ 如果你已有 Obsidian 知识库,可以直接运行:
83
+
84
+ ```bash
85
+ # 进入你的现有知识库目录
86
+ cd my-existing-vault
87
+
88
+ # 运行 init 命令,它会智能合并框架文件
89
+ npx @our2ndbrain/cli@latest init
90
+ ```
91
+
92
+ **集成模式特性**:
93
+ - ✅ 只创建缺失的框架文件和目录
94
+ - ✅ 智能合并 `.obsidian/` 配置,保留你的插件设置
95
+ - ✅ 从不修改你的个人数据(20_Areas、30_Projects 等)
96
+ - ✅ 自动检测并跳过已存在的内容
97
+
98
+ </details>
99
+
100
+ <details>
101
+ <summary><strong>🔧 For LLM Agents(AI 助手详细指南)</strong></summary>
102
+
103
+ 如果你是帮助用户设置 2ndBrain 的 AI 助手,请按以下步骤操作:
104
+
105
+ #### 第一步:确认并安装前置条件
106
+
107
+ **1. 检查 Node.js**
108
+
109
+ ```bash
110
+ # 检查 Node.js 是否可用(需要 v16+)
111
+ node --version
112
+
113
+ # 如果未安装,引导用户安装:
114
+ # macOS: brew install node
115
+ # Windows: 从 https://nodejs.org/ 下载 LTS 版本
116
+ # Linux: sudo apt install nodejs npm # Debian/Ubuntu
117
+ ```
118
+
119
+ **2. 检查并安装 Obsidian**
120
+
121
+ ```bash
122
+ # 检测用户操作系统
123
+ case "$(uname -s)" in
124
+ Darwin)
125
+ # macOS
126
+ if [ ! -d "/Applications/Obsidian.app" ]; then
127
+ echo "未检测到 Obsidian,正在引导安装..."
128
+ echo "请访问 https://obsidian.md/ 下载 macOS 版本"
129
+ echo "或使用 Homebrew Cask: brew install --cask obsidian"
130
+ fi
131
+ ;;
132
+ Linux*)
133
+ # Linux
134
+ if ! command -v obsidian &> /dev/null; then
135
+ echo "未检测到 Obsidian,正在引导安装..."
136
+ echo "请访问 https://obsidian.md/ 下载 AppImage 版本"
137
+ echo "或使用包管理器:"
138
+ echo " Arch: sudo pacman -S obsidian"
139
+ echo " Fedora: sudo dnf install obsidian"
140
+ fi
141
+ ;;
142
+ MINGW*|MSYS*|CYGWIN*)
143
+ # Windows
144
+ if ! powershell -Command "Get-AppxPackage -Name 'Obsidian.MD'" &> /dev/null; then
145
+ echo "未检测到 Obsidian,正在引导安装..."
146
+ echo "请访问 https://obsidian.md/ 下载 Windows 版本"
147
+ echo "或使用 winget: winget install Obsidian.MD.Obsidian"
148
+ fi
149
+ ;;
150
+ esac
151
+ ```
152
+
153
+ **为 AI 助手提供的 Obsidian 安装命令参考**:
154
+
155
+ | 操作系统 | 安装方法 | 命令 |
156
+ |---------|---------|------|
157
+ | macOS | Homebrew | `brew install --cask obsidian` |
158
+ | macOS | 手动下载 | 访问 https://obsidian.md/ |
159
+ | Windows | winget | `winget install Obsidian.MD.Obsidian` |
160
+ | Windows | 手动下载 | 访问 https://obsidian.md/ |
161
+ | Arch Linux | pacman | `sudo pacman -S obsidian` |
162
+ | Fedora | dnf | `sudo dnf install obsidian` |
163
+ | Debian/Ubuntu | AppImage | 从官网下载 AppImage |
164
+ | 其他 Linux | AppImage | 访问 https://obsidian.md/ |
165
+
166
+ **检测和安装脚本**:
167
+ ```bash
168
+ # macOS 检测
169
+ if [ ! -d "/Applications/Obsidian.app" ]; then
170
+ echo "安装 Obsidian: brew install --cask obsidian"
171
+ fi
172
+
173
+ # Windows 检测
174
+ winget list | findstr Obsidian || echo "安装 Obsidian: winget install Obsidian.MD.Obsidian"
175
+
176
+ # Linux 检测
177
+ command -v obsidian || echo "请从 https://obsidian.md/ 下载 AppImage"
178
+ ```
179
+
180
+ #### 第二步:初始化项目
181
+
182
+ ```bash
183
+ # 使用 CLI 初始化项目
184
+ npx @our2ndbrain/cli@latest init my-brain
185
+ cd my-brain
186
+ ```
187
+
188
+ #### 第三步:初始化用户成员目录
189
+
190
+ ```bash
191
+ # 询问用户的名字(用于创建个人收集箱)
192
+ # 假设用户名为 "Alex"
193
+ npx @our2ndbrain/cli@latest member Alex
194
+ ```
195
+
196
+ 这会创建:
197
+ - `10_Inbox/Alex/01_Tasks.md` - 个人任务看板
198
+ - `10_Inbox/Alex/09_Done.md` - 个人完成记录
199
+ - `.obsidian/daily-notes.json` - 配置日记保存到该成员目录
200
+
201
+ #### 第四步:验证设置
202
+
203
+ 检查以下文件存在:
204
+
205
+ ```bash
206
+ ls -la 00_Dashboard/01_All_Tasks.md
207
+ ls -la 10_Inbox/*/01_Tasks.md
208
+ ls -la 99_System/Templates/tpl_daily_note.md
209
+ ```
210
+
211
+ #### 第五步:引导用户使用 Obsidian 打开
212
+
213
+ 告诉用户:
214
+ 1. 打开 Obsidian 应用
215
+ 2. 选择「打开本地仓库」(Open folder as vault)
216
+ 3. 选择刚才创建的 `my-brain` 目录
217
+ 4. 点击「信任作者并启用插件」(Trust author and enable plugins)
218
+ > 插件已预装,只需信任即可,无需手动安装
219
+
220
+ #### 第六步:创建第一篇日记
221
+
222
+ 引导用户:
223
+ 1. 按 `Cmd/Ctrl + P` 打开命令面板
224
+ 2. 搜索「Daily notes: Open today's daily note」
225
+ 3. 写下第一条待办:`- [ ] 探索 2ndBrain 系统 #next`
226
+
227
+ #### 完成确认
228
+
229
+ 向用户展示:
230
+ - 打开 `00_Dashboard/01_All_Tasks.md` 看看任务看板效果
231
+ - 打开 `10_Inbox/{用户名}/01_Tasks.md` 看看个人看板
232
+
233
+ #### 注意事项
234
+
235
+ - 阅读 [AGENTS.md](AGENTS.md) 了解项目的 AI 助手指南
236
+ - 所有任务使用格式:`- [ ] 任务描述 #标签 📅 日期`
237
+ - 日记使用模板 `99_System/Templates/tpl_daily_note.md`
238
+
239
+ </details>
240
+
241
+ ### 首次使用清单
242
+
243
+ - 用 Obsidian 打开模板
244
+ - 确认插件已启用(Settings → Community plugins)
245
+ - 创建第一篇日记
246
+ - 打开 `00_Dashboard/01_All_Tasks.md` 看看效果
247
+
248
+ ## 👥 团队协作
249
+
250
+ 多人共用一个 2ndBrain 仓库?用 Git 同步:
251
+
252
+ ### 初始化 Git 仓库
253
+
254
+ ```bash
255
+ cd my-brain
256
+ git init
257
+ git add .
258
+ git commit -m "🎉 init: 从 2ndBrain Template 开始"
259
+
260
+ # 推送到远程仓库(GitHub/GitLab 等)
261
+ git remote add origin <your-repo-url>
262
+ git push -u origin main
263
+ ```
264
+
265
+ ### 添加新成员
266
+
267
+ 每个成员需要创建自己的目录:
268
+
269
+ ```bash
270
+ # 成员 Alice 加入
271
+ npx @our2ndbrain/cli@latest member Alice --no-config
272
+
273
+ # 成员 Bob 加入
274
+ npx @our2ndbrain/cli@latest member Bob --no-config
275
+ ```
276
+
277
+ > 💡 `--no-config` 选项不会修改 `.obsidian/daily-notes.json`,避免覆盖其他成员的配置。每个成员在本地手动配置自己的日记目录。
278
+
279
+ ### 自动同步
280
+
281
+ 安装 [Obsidian Git](https://github.com/denolehov/obsidian-git) 插件,自动备份和同步:
282
+
283
+ - 自动保存间隔:60 秒
284
+ - 启动时自动拉取:开启
285
+ - 文件变更后自动备份:开启
286
+
287
+ ### 本地配置(不同步)
288
+
289
+ 每个成员的 `.obsidian/daily-notes.json` 配置可能不同,建议将 `.obsidian/` 目录加入 `.gitignore`,或者只同步插件配置而不同步个人设置。
290
+
291
+ ## 🔄 工作流程 (C-O-R-D)
292
+
293
+ 四个字:**收集 → 整理 → 回顾 → 执行**。像流水线一样,让想法变成行动。
294
+
295
+ C-O-R-D 是 [GTD (Getting Things Done)](#gtd) 的现代轻量演进——保留核心精髓,去掉繁琐仪式。GTD 的「收集-处理-组织-回顾-执行」五步被简化为更符合直觉的四步:两分钟能解决的事立刻做,解决不了就扔进收集箱;利用碎片时间分类处理——马上做、交给别人、或过段时间再说。**每天把收集箱清零**,就像睡觉清空腺苷,第二天轻装上阵。
296
+
297
+ > 💬 *我不忙,我只是时间不够。*
298
+
299
+ ### 1️⃣ 收集 (Collect)
300
+
301
+ 有什么想法、待办、灵感?先扔进今天的日记(`10_Inbox/{你的名字}/`),别管分类,先记下来。
302
+
303
+ 这是 **[Append-and-Review](#append-and-review)** 的核心实践:**所有内容先追加到单一收集点,不打断思考流程**。就像 Karpathy 说的,先记下来,分类和整理留到回顾时再做。
304
+
305
+ > 💡 **两分钟法则**:能立刻做完的就别记了,直接做掉。
306
+ >
307
+ > 💡 **小技巧**:打开日记后,先写"今天最想推进的一件事",启动成本一下就降下来了。
308
+
309
+ ### 2️⃣ 整理 (Organize)
310
+
311
+ 定期回顾日记时,让任务能被"找到":
312
+
313
+ - 打个标签:`#next`(马上做)/ `#waiting`(等别人)/ `#someday`(以后再说)
314
+ - 有截止日期的,加上 `📅 2026-01-15`
315
+ - 事情复杂?单独建个笔记放到 `30_Projects/`
316
+ - 长期关注的话题?移到 `20_Areas/` 对应领域
317
+ - 参考资料?放到 `40_Resources/` 相关分类
318
+
319
+ **实际例子**:
320
+ - 日记中写了"重构公司官网",回顾时发现需要深入研究 → 创建 `30_Projects/网站重构/` 项目文件夹
321
+ - 日记中记录了"基金定投策略",这是理财领域的知识 → 移到 `20_Areas/理财/基金定投.md`
322
+ - 日记中收藏了"番茄工作法"的笔记 → 整理到 `40_Resources/效率工具/番茄工作法.md`
323
+
324
+ > 💡 **养成习惯**:新任务至少打个标签或日期,不然就会变成"未分类黑洞"。
325
+ >
326
+ > 💡 **每周翻翻** `#someday`,捞 1-2 个变成 `#next`,别让手头事太多。
327
+
328
+ ### 3️⃣ 回顾 (Review)
329
+
330
+ 靠系统做选择,别靠脑子记:
331
+
332
+ 打开你的个人看板 `10_Inbox/{你的名字}/01_Tasks.md`,扫一眼各个区块:
333
+ - **立即行动**:没分类的任务,赶紧处理或打标签
334
+ - **今日必达**:今天到期的,优先搞定
335
+ - **等待跟进**:在等别人的 `#waiting` 任务
336
+ - **下一步行动**:标了 `#next` 的,随时可以开干
337
+ - **未来计划**:还没到期的任务,以及所有 `#someday` 标签的任务(无论是否有截止日期)
338
+ - **阅读清单**:想看的文章、书籍
339
+
340
+ > 💡 **每天**至少扫一眼"今日必达"和"下一步行动"。
341
+ >
342
+ > 💡 **每周**看看个人 `09_Done.md` 回顾成就感;顺便清理一下项目,不活跃的挪到 `90_Archives/`。
343
+
344
+ ### 4️⃣ 执行 (Do)
345
+
346
+ 只做 `#next` 或到期的任务,做完就勾掉。
347
+
348
+ > 🎯 **核心心法**:不是所有事都要做完,只做"下一步"就够了。
349
+
350
+ ## 📝 任务约定
351
+
352
+ ### 怎么写任务?
353
+
354
+ ```markdown
355
+ - [ ] 任务描述 #标签 📅 2026-01-08
356
+ ```
357
+
358
+ 完成后 Tasks 插件会自动加上 `✅ 2026-01-08`,方便回顾。
359
+
360
+ ### 标签速查
361
+
362
+ | 标签 | 意思 | 什么时候用 |
363
+ |------|------|------------|
364
+ | `#next` | 下一步要做 | 随时可以开工的任务 |
365
+ | `#waiting` | 等别人 | 球在别人那儿 |
366
+ | `#someday` | 以后再说 | 想做但不急 |
367
+ | `#read` | 要读的 | 文章、书籍等文字内容 |
368
+ | `#watch` | 要看的 | 视频、课程等视觉内容 |
369
+ | `#listen` | 要听的 | 播客、音频等听觉内容 |
370
+ | `📅 YYYY-MM-DD` | 截止日期 | 必须在某天前完成 |
371
+
372
+ ### 特殊标题
373
+
374
+ 日记里用这些标题,看板会自动识别:
375
+
376
+ - `## 💼 Works`:工作任务(外部输入、需交付的事项)
377
+ - `## 💡 Thoughts`:想法(自驱探索、灵感,也可以带任务)
378
+ - `## 📚 Readings`:阅读清单
379
+
380
+ ## 📁 目录结构 (PARA)
381
+
382
+ ```
383
+ 2ndBrain/
384
+ ├── 00_Dashboard/ # 看板:任务聚合、进度回顾
385
+ │ ├── 01_All_Tasks.md # 全局任务看板
386
+ │ └── 09_All_Done.md # 全局完成记录
387
+ ├── 10_Inbox/ # 收集箱:日记落这儿(单一收集点)
388
+ │ ├── Agents/ # AI 助手共享工作区
389
+ │ │ └── Journal.md # Agent 工作日志(append-and-review)
390
+ │ └── {成员名}/ # 每个人类成员一个子目录
391
+ │ ├── 01_Tasks.md # 个人任务看板
392
+ │ ├── 09_Done.md # 个人完成记录
393
+ │ └── 2026-01-14.md # 日记(按日期命名)
394
+ ├── 20_Areas/ # 领域:长期关注的事(健康、财务…)
395
+ ├── 30_Projects/ # 项目:有明确目标的事
396
+ ├── 40_Resources/ # 资源:参考资料、方法论
397
+ ├── 90_Archives/ # 归档:完成或不再活跃的
398
+ └── 99_System/ # 系统:模板、脚本和配置
399
+ ├── Scripts/ # 自动化脚本
400
+ └── Templates/ # 笔记模板
401
+ ```
402
+
403
+ ### 东西往哪放?
404
+
405
+ **决策流程**:所有内容先放 `10_Inbox/`(日记),回顾时再决定归属。
406
+
407
+ | 分类 | 放这里 | 实际例子 | 别放这儿 |
408
+ |------|--------|----------|----------|
409
+ | **项目** | `30_Projects/项目名/` | `30_Projects/网站重构/` - 有明确目标<br>`30_Projects/年度报告/` - 有截止日期 | 零散想法、临时待办(先放日记) |
410
+ | **领域** | `20_Areas/领域名/` | `20_Areas/理财/基金定投.md` - 长期关注<br>`20_Areas/健康/运动记录.md` - 持续维护 | 已经完成的项目(应归档) |
411
+ | **资源** | `40_Resources/分类/` | `40_Resources/效率工具/番茄工作法.md` - 方法论<br>`40_Resources/书单.md` - 参考资料 | 需要持续维护的事(应放领域或项目) |
412
+ | **归档** | `90_Archives/` | 完成的项目、不再关注的领域 | 还在进行中的任务 |
413
+ | **收集箱** | `10_Inbox/{成员}/` | `10_Inbox/G/2026-01-14.md` - 所有新内容先放这里 | 已整理好的内容(应移到对应目录) |
414
+
415
+ **判断标准**:
416
+ - **有明确目标和截止日期** → `30_Projects/`
417
+ - **需要长期维护但没有截止日期** → `20_Areas/`
418
+ - **参考资料、工具、方法论** → `40_Resources/`
419
+ - **不确定放哪** → 先放 `10_Inbox/`,回顾时再决定
420
+
421
+ ## 🎯 核心入口
422
+
423
+ | 文件 | 干嘛用 |
424
+ |------|--------|
425
+ | `00_Dashboard/01_All_Tasks.md` | 全局任务看板,汇总所有成员的待办 |
426
+ | `00_Dashboard/09_All_Done.md` | 全局完成记录,回顾团队成就 |
427
+ | `10_Inbox/{成员}/01_Tasks.md` | 个人任务看板,每天看这个 |
428
+ | `10_Inbox/{成员}/09_Done.md` | 个人完成记录,回顾成就感 |
429
+ | `10_Inbox/Agents/Journal.md` | Agent 工作日志,记录 AI 助手的工作 |
430
+ | `99_System/Templates/tpl_daily_note.md` | 日记模板 |
431
+
432
+ ## 🔌 Obsidian 插件配置
433
+
434
+ 本模板已预装以下插件,初始化时自动包含在 `.obsidian/plugins/` 目录中,打开项目后信任作者即可启用:
435
+
436
+ ### 预装插件
437
+
438
+ | 插件 | 用途 | 仓库 |
439
+ |------|------|------|
440
+ | **Tasks** | 任务过滤和聚合,支持标签、日期、循环任务等 | [obsidian-tasks-plugin](https://github.com/obsidian-tasks-group/obsidian-tasks) |
441
+ | **Calendar** | 日历视图,点击日期快速跳转到对应日记 | [obsidian-calendar-plugin](https://github.com/liamcain/obsidian-calendar-plugin) |
442
+ | **Git** | 自动备份到 Git 仓库,支持自动提交和拉取 | [obsidian-git](https://github.com/denolehov/obsidian-git) |
443
+ | **Custom Attachment Location** | 自动将附件整理到笔记同名目录 | [obsidian-custom-attachment-location](https://github.com/RainCat1998/obsidian-custom-attachment-location) |
444
+
445
+ ### 手动安装插件
446
+
447
+ 模板预装插件已足够使用,如需额外功能可手动安装:
448
+
449
+ ```bash
450
+ # 社区插件需要在 Obsidian 设置中先启用「社区插件」浏览功能
451
+ # 设置 → Community plugins → Turn on community plugins
452
+ ```
453
+
454
+ 推荐的额外插件:
455
+ - [Dataview](https://github.com/blacksmithgu/obsidian-dataview) - 高级数据查询,可创建动态看板
456
+ - [Advanced Tables](https://github.com/tgrosinger/advanced-tables-obsidian) - 增强 Markdown 表格编辑
457
+
458
+ ### 插件配置参考
459
+
460
+ <details>
461
+ <summary>点击展开配置详情</summary>
462
+
463
+ **Git 插件**
464
+ - 自动保存间隔:60 秒
465
+ - 启动时自动拉取:开启
466
+ - 文件变更后自动备份:开启
467
+ - 提交信息格式:`vault backup: {{date}}`
468
+
469
+ **Calendar 插件**
470
+ - 每周起始日:跟随系统
471
+ - 每点代表字数:250
472
+
473
+ **Custom Attachment Location 插件**
474
+ - 附件路径:`./assets/${noteFileName}`
475
+ - 附件命名:`file-${date:YYYYMMDDHHmmssSSS}`
476
+
477
+ **Tasks 插件**
478
+ - 全局任务过滤器:可在设置中自定义默认过滤条件
479
+
480
+ </details>
481
+
482
+ ## 🔧 CLI 命令参考
483
+
484
+ 2ndBrain 提供命令行工具来管理项目:
485
+
486
+ ```bash
487
+ # 全局安装(可选)
488
+ npm install -g @our2ndbrain/cli
489
+
490
+ # 或使用 npx 直接运行
491
+ npx @our2ndbrain/cli@latest <command>
492
+ ```
493
+
494
+ ### 命令列表
495
+
496
+ | 命令 | 说明 |
497
+ |------|------|
498
+ | `2ndbrain init [path]` | 初始化新项目(或集成到已有知识库) |
499
+ | `2ndbrain member <name> [path]` | 添加成员目录 |
500
+ | `2ndbrain update [path]` | 更新框架文件(看板、模板等) |
501
+ | `2ndbrain remove [path]` | 移除框架文件 |
502
+ | `2ndbrain completion <shell>` | 生成 shell 补全脚本 |
503
+
504
+ ### 更新框架文件
505
+
506
+ 当模板有新版本时,可以使用 `update` 命令更新框架文件(看板、模板、脚本、文档等),同时保留你的个人数据不变。
507
+
508
+ **框架文件包括**:
509
+ - 文档:`AGENTS.md`、`README.md`、`CHANGELOG.md`、`CLAUDE.md`
510
+ - 看板:`00_Dashboard/01_All_Tasks.md`、`00_Dashboard/09_All_Done.md`
511
+ - 模板:`99_System/Templates/` 下的所有模板
512
+ - 脚本:`99_System/Scripts/` 下的所有脚本
513
+ - 配置:`.obsidian/` 目录(插件配置,智能合并)
514
+
515
+ ```bash
516
+ # 1. 先预览将要更新的文件
517
+ npx @our2ndbrain/cli@latest update --dry-run
518
+
519
+ # 2. 确认无误后执行更新
520
+ npx @our2ndbrain/cli@latest update
521
+ ```
522
+
523
+ 更新过程中会显示差异预览,你可以选择:
524
+ - **全部更新**:一次性更新所有框架文件
525
+ - **逐个审查**:每个文件单独确认是否更新
526
+ - **跳过**:取消本次更新
527
+
528
+ > 💡 **重要说明**:`update` 命令只会更新框架文件(看板、模板、脚本等),**不会修改**你的个人数据目录(20_Areas、30_Projects、40_Resources、90_Archives)和成员日记。
529
+
530
+ ### 常用选项
531
+
532
+ **init**
533
+ - `-f, --force`:强制覆盖已存在的项目
534
+ - `--reset-obsidian, --reset-obs`:完全重置 .obsidian 目录(覆盖所有配置)
535
+ - `-t, --template <path>`:使用自定义模板目录
536
+
537
+ ### init 命令模式
538
+
539
+ `init` 命令支持两种模式:
540
+
541
+ 1. **全新初始化**:在空目录创建完整项目
542
+ 2. **集成模式**:在已有知识库中智能合并框架文件
543
+
544
+ ```bash
545
+ # 全新初始化
546
+ mkdir my-brain && cd my-brain
547
+ npx @our2ndbrain/cli@latest init
548
+
549
+ # 集成到已有知识库
550
+ cd my-existing-vault
551
+ npx @our2ndbrain/cli@latest init
552
+ ```
553
+
554
+ **集成模式会**:
555
+ - 只创建缺失的框架目录(00_Dashboard、10_Inbox、99_System)
556
+ - 跳过已存在的用户数据目录(20_Areas、30_Projects 等)
557
+ - 智能合并 .obsidian/ 配置,保留你的插件设置
558
+ - 添加缺失的框架文件(看板、模板、文档)
559
+
560
+ **member**
561
+ - `-f, --force`:强制覆盖已存在的成员目录
562
+ - `--no-config`:不更新 Obsidian daily-notes 配置(团队协作时使用)
563
+
564
+ **update**
565
+ - `-d, --dry-run`:预览将要更新的文件,不实际执行
566
+ - `-t, --template <path>`:使用自定义模板目录
567
+ - `-y, --yes`:自动确认所有更新,跳过交互式确认
568
+
569
+ **remove**
570
+ - `-d, --dry-run`:预览将要移除的文件,不实际执行
571
+ - `-f, --force`:跳过确认直接移除
572
+
573
+ ### 命令补全
574
+
575
+ 启用 Tab 补全,让命令输入更便捷:
576
+
577
+ ```bash
578
+ # Bash
579
+ echo 'source <(2ndbrain completion bash)' >> ~/.bashrc
580
+
581
+ # Bash (macOS 使用文件方式,因为 bash 3.x 不支持 source <(...))
582
+ 2ndbrain completion bash > ~/.2ndbrain-completion.bash
583
+ echo 'source ~/.2ndbrain-completion.bash' >> ~/.bash_profile
584
+ source ~/.bash_profile
585
+
586
+ # Zsh
587
+ echo 'source <(2ndbrain completion zsh)' >> ~/.zshrc
588
+ source ~/.zshrc
589
+
590
+ # Fish
591
+ 2ndbrain completion fish > ~/.config/fish/completions/2ndbrain.fish
592
+ ```
593
+
594
+ 重新打开终端或执行 `source ~/.bashrc`(或对应 shell 配置文件)即可生效。
595
+
596
+ ## 📚 延伸阅读
597
+
598
+ 想深入了解背后的方法论?
599
+
600
+ - <span id="gtd"></span>**[GTD (Getting Things Done)](https://gettingthingsdone.com/)** - David Allen 的经典时间管理方法
601
+ - C-O-R-D 是 GTD 的现代轻量演进,保留核心精髓,简化为四步
602
+
603
+ - <span id="para"></span>**[PARA 方法论](https://fortelabs.com/blog/para/)** - Tiago Forte 的知识管理框架
604
+ - 本系统的目录结构(Projects、Areas、Resources、Archives)基于此框架
605
+
606
+ - <span id="append-and-review"></span>**[The Append-and-Review Note](https://karpathy.bearblog.dev/the-append-and-review-note/)** - Karpathy 的极简笔记法
607
+ - **核心思想**:维护单一笔记,所有新内容追加到顶部,定期回顾时提升重要内容
608
+ - **在本系统的实践**:
609
+ - `10_Inbox/` 目录就是"单一收集点"(所有日记都在这里)
610
+ - 收集阶段:所有想法、待办先追加到日记,不打断思考
611
+ - 整理阶段:定期回顾日记,将重要内容提升到对应目录(Projects/Areas/Resources)
612
+ - 这样既保持了记录的低门槛,又通过回顾实现了内容的自然筛选和整理
613
+
614
+ - <span id="cord"></span>**[C-O-R-D 工作流](https://fortelabs.com/blog/cord/)** - PARA 方法论的实践框架
615
+ - Collect(收集)、Organize(整理)、Review(回顾)、Do(执行)
616
+ - 本系统将这四步与 GTD 精髓结合,形成适合个人和团队的知识管理实践
617
+
618
+ - <span id="obsidian"></span>**[Obsidian](https://obsidian.md/)** - 当前推荐的实现工具,本地优先、插件生态丰富
619
+
620
+ ## 🤝 贡献指南
621
+
622
+ 欢迎提交 Issue 和 Pull Request!
623
+
624
+ - 🐛 发现问题?[提交 Issue](https://github.com/Our2ndBrain/2ndBrain-Template/issues)
625
+ - 💡 有改进建议?欢迎 PR
626
+ - ⭐ 觉得有用?给个 Star 支持一下
627
+
628
+ ## 📄 开源协议
629
+
630
+ 本项目采用 [Apache License 2.0](LICENSE) 开源协议。
631
+
632
+ ---
633
+
634
+ <p align="center">
635
+ <i>方法论是内核,工具只是载体。<br/>用系统承载混乱,让大脑专注思考。</i>
636
+ </p>