Install
openclaw skills install @thcjp/obsidian-toolkit-freeopenclaw skills install @thcjp/obsidian-toolkit-free不是教你入门Obsidian,而是提供一套综合工具箱。vault发现、笔记管理、模板入门、插件认知,一站式服务。
Obsidian的强大在于其灵活的笔记管理与丰富的插件生态。但如何自动发现多个vault?如何在移动笔记时自动更新wikilink?如何设计可复用的模板?如何选择合适的插件?本技能聚焦综合工具箱能力,帮助Agent成为Obsidian用户的得力助手。
┌─────────────────────────────────────────────────────────┐
│ Obsidian工具箱 (免费版) │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌────────────────────────────────────────────┐ │
│ │ vault发现层 │ │
│ │ 读取 obsidian.json → 识别活跃vault │ │
│ │ 多vault支持(iCloud/Documents/work) │ │
│ └────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────┐ │
│ │ 笔记管理层 │ │
│ │ 搜索 │ 创建 │ 移动 │ 重命名 │ 删除 │ │
│ │ wikilink自动重构 │ │
│ └────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────┐ │
│ │ 模板系统层(入门) │ │
│ │ frontmatter │ 标签 │ wikilink │ │
│ │ 基础模板变量 │ │
│ └────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────┐ │
│ │ 插件生态层(认知) │ │
│ │ 核心插件 │ 启用建议 │ 配置入门 │ │
│ └────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
自动发现当前活跃的Obsidian vault:
obsidian-cli print-default --path-only
cat ~/Library/Application\ Support/obsidian/obsidian.json
配置文件结构:
{
"vaults": {
"abc123def456": {
"path": "/Users/username/Documents/MyVault",
"open": true
},
"xyz789ghi012": {
"path": "/Users/username/iCloud/WorkVault",
"open": false
}
}
}
解析逻辑:
open: true 的vault为当前活跃vaultpath 字段为vault的文件系统路径MyVault)配置obsidian-cli并执行基础笔记操作:
obsidian-cli set-default "MyVault"
obsidian-cli print-default
obsidian-cli search "项目"
obsidian-cli search-content "架构设计"
obsidian-cli create "Projects/新项目" --content "# 新项目
[项目描述]
4. [ ] 决策1
5. [ ] 决策2
" --open
obsidian-cli move "old/path/note" "new/path/note"
obsidian-cli delete "path/to/note"
配置基础模板并应用:
mkdir -p ~/Documents/MyVault/Templates
cat > ~/Documents/MyVault/Templates/meeting.md << 'EOF'
type: meeting
date: {{date}}
time: {{time}}
attendees: []
tags: [meeting]
6. -
7. [ ]
8. [ ] @负责人 任务描述(截止:日期)
EOF
cat > ~/Documents/MyVault/Templates/project.md << 'EOF'
type: project
created: {{date}}
status: active
tags: [project]
[项目描述]
9. [ ] 目标1
10. [ ] 目标2
11. [ ] 决策1
12. [[项目主页]]
13. [[会议记录]]
EOF
cat > ~/Documents/MyVault/Templates/daily.md << 'EOF'
type: daily
date: {{date}}
tags: [daily]
14. [ ]
15. -
EOF
结果处理: 执行完成后,查看输出结果确认操作状态。成功时输出包含处理摘要和结果数据;失败时根据错误信息排查问题,查阅错误处理章节获取恢复步骤。
自动发现流程:
1. 读取 ~/Library/Application Support/obsidian/obsidian.json
2. 解析 vaults 对象
3. 找到 open: true 的vault(活跃vault)
4. 提取 path 字段作为vault路径
5. vault名称 = path的最后一段
多vault场景:
| 场景 | vault配置 | 使用建议 |
|---|---|---|
| 个人+工作分离 | iCloud个人vault + Documents工作vault | 用set-default切换 |
| 多设备同步 | iCloud同步的vault | 确保路径在iCloud目录 |
| 项目独立vault | 每个项目独立vault | 用@vault前缀指定 |
注意事项:
print-default输入: 用户提供vault发现所需的指令和必要参数。 处理: 按照skill规范执行vault发现操作,遵循单一意图原则。 输出: 返回vault发现的执行结果,包含操作状态和输出数据。
创建(create) → 搜索(search) → 编辑(edit) → 移动(move) → 删除(delete)
↓
wikilink自动重构
obsidian-cli search "关键词"
obsidian-cli search-content "关键词"
obsidian-cli create "Folder/NoteName" --content "内容" --open
TEMPLATE=$(cat ~/Documents/MyVault/Templates/meeting.md)
obsidian-cli create "Meetings/2026-07-18评审会" --content "$TEMPLATE" --open
创建注意事项:
obsidian://)正常工作.something/...),Obsidian可能拒绝obsidian-cli move "old/path/note" "new/path/note"
obsidian-cli move "path/old-name" "path/new-name"
wikilink自动重构原理:
移动前:
note-a.md 包含 [[note-b]]
note-b.md 位于 old/path/
执行 move "old/path/note-b" "new/path/note-b"
移动后:
note-a.md 自动更新为 [[new/path/note-b]] 或保持 [[note-b]](取决于配置)
note-b.md 移动到 new/path/
这是obsidian-cli move相比mv命令的核心优势:自动更新所有引用了该笔记的wikilink,避免链接失效。
obsidian-cli delete "path/note"
安全建议:
obsidian-cli search-content "[[note-name]]"输入: 用户提供笔记全生命周期管理所需的指令和必要参数。 处理: 按照skill规范执行笔记全生命周期管理操作,遵循单一意图原则。 输出: 返回笔记全生命周期管理的执行结果,包含操作状态和输出数据。
基础模板变量:
| 变量 | 说明 | 示例 |
|---|---|---|
{{date}} | 当前日期 | 2026-07-18 |
{{time}} | 当前时间 | 10:30 |
{{title}} | 笔记标题 | 会议记录 |
模板应用方式:
TEMPLATE=$(cat Templates/meeting.md)
TEMPLATE=${TEMPLATE//\{\{date\}\}/$(date +%Y-%m-%d)}
TEMPLATE=${TEMPLATE//\{\{time\}\}/$(date +%H:%M)}
obsidian-cli create "Meetings/新会议" --content "$TEMPLATE" --open
frontmatter规范:
type: meeting # 笔记类型
date: 2026-07-18 # 创建日期
time: 10:30 # 创建时间
attendees: # 参与者列表
- 张三
- 李四
tags: # 标签
- meeting
- project-a
status: active # 状态
输入: 用户提供模板系统入门所需的指令和必要参数。 处理: 按照skill规范执行模板系统入门操作,遵循单一意图原则。 输出: 返回模板系统入门的执行结果,包含操作状态和输出数据。
核心插件启用建议(免费版入门):
| 插件 | 功能 | 启用建议 |
|---|---|---|
| 文件列表 | 显示vault文件树 | 必须启用(默认) |
| 搜索 | 全文搜索 | 必须启用(默认) |
| 标签面板 | 按标签浏览 | 推荐启用 |
| 模板 | 应用模板 | 推荐启用 |
| 日记 | 快速创建日记 | 推荐启用 |
| 大纲 | 显示标题大纲 | 推荐启用 |
| 页面预览 | 悬停预览wikilink | 推荐启用 |
| 星标 | 收藏常用笔记 | 推荐启用 |
配置入口:设置 → 第三方插件 → 启用核心插件
输入: 用户提供插件生态认知所需的指令和必要参数。 处理: 按照skill规范执行插件生态认知操作,遵循单一意图原则。 输出: 返回插件生态认知的执行结果,包含操作状态和输出数据。 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:综合工具箱免费版、笔记管理、基础模板与插件生、态入门指南、工具箱免费版是面、Agent、综合管理工具、不同于基础入门指、本技能聚焦、综合工具箱、用户的得力助手、Use、when、模型调用、智能对话、LLM、应用时使用、不适用于需要、确定性的关键决策等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持。
角色:知识管理爱好者
场景描述:将散乱的笔记按主题重新组织,移动时自动更新wikilink。
obsidian-cli search-content "架构"
obsidian-cli create "Architecture/index" --content "# 架构主题索引
- [[架构原则]]
- [[架构模式]]
- [[架构决策]]
"
obsidian-cli move "notes/架构原则" "Architecture/架构原则"
obsidian-cli move "notes/架构模式" "Architecture/架构模式"
obsidian-cli move "random/架构决策" "Architecture/架构决策"
obsidian-cli search-content "[[架构"
角色:职场人士
场景描述:使用模板快速创建结构化会议笔记。
TEMPLATE=$(cat Templates/meeting.md)
TEMPLATE=${TEMPLATE//\{\{date\}\}/$(date +%Y-%m-%d)}
TEMPLATE=${TEMPLATE//\{\{time\}\}/$(date +%H:%M)}
TEMPLATE=${TEMPLATE//\{\{title\}\}/"Q3规划评审会"}
obsidian-cli create "Meetings/2026-07-18-Q3规划评审会" --content "$TEMPLATE" --open
obsidian-cli search "2026-07"
角色:工作生活分离的用户
场景描述:在工作vault和个人vault间切换。
obsidian-cli print-default
obsidian-cli set-default "PersonalVault"
obsidian-cli create "Personal/读书笔记" --content "# 读书笔记
[书名]
[摘要]
-
"
obsidian-cli set-default "WorkVault"
角色:项目经理
场景描述:为新项目批量创建结构化笔记。
obsidian-cli create "Projects/ProjectA/index" --content "# 项目A
[项目描述]
- [[Projects/ProjectA/需求]]
- [[Projects/ProjectA/设计]]
- [[Projects/ProjectA/会议]]
"
obsidian-cli create "Projects/ProjectA/需求" --content "# 需求文档
- [ ] 功能1
- [ ] 功能2
"
obsidian-cli create "Projects/ProjectA/设计" --content "# 设计文档
[内容]
"
obsidian-cli create "Projects/ProjectA/会议" --content "# 会议记录
- 参与者:
- 讨论内容:
- 决策:
"
读取Obsidian的配置文件(~/Library/Application Support/obsidian/obsidian.json),找到open: true的vault条目,其path字段即为vault路径。也可使用obsidian-cli print-default --path-only快速获取。不要硬编码vault路径,优先读取配置。
使用obsidian-cli move命令移动笔记时,会自动扫描vault中所有引用了该笔记的[[wikilink]]和Markdown链接,并更新为新路径。这是obsidian-cli move相比mv命令的核心优势,避免链接失效。直接使用mv不会更新wikilink。
免费版需手动替换:读取模板文件,用字符串替换将{{date}}替换为当前日期、{{time}}替换为当前时间、{{title}}替换为笔记标题。专业版支持在Obsidian中启用"模板"核心插件或"Templater"社区插件,实现自动变量替换与更复杂的模板逻辑。
支持。Obsidian原生支持多vault,配置文件中记录所有vault。使用obsidian-cli set-default切换默认vault,使用obsidian-cli print-default查看当前默认。多vault常见于工作/个人分离、多设备同步、项目独立vault等场景。
(1) 需要Obsidian URI处理器(obsidian://)正常工作,确保Obsidian已安装;(2) 避免在隐藏dot-folder下创建(如.something/...),Obsidian可能拒绝;(3) 路径中的文件夹不存在时会自动创建;(4) 笔记名称避免包含特殊字符(/、\、:、*、?、"、<、>、|)。
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| Obsidian | 应用 | 必需 | 从obsidian.md下载安装 |
| obsidian-cli | 工具 | 必需 | npm install -g obsidian-cli |
| Node.js | 运行时 | 必需 | 从nodejs.org安装 |
| LLM API | API | 必需 | 由Agent平台内置LLM提供 |
本技能基于原始开源Obsidian管理作品改进,保留原始版权声明:
本改进作品在原始作品基础上进行了深度差异化改造,包括但不限于:
原始MIT license允许使用、复制、修改和分发,需保留版权声明。本改进作品在保留原始版权声明的基础上添加自有署名,完全符合MIT license要求。
本免费体验版限制以下高级功能:
解锁全部功能请使用专业版:obsidian-toolkit-pro
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
输入:用户提供操作指令和必要参数
输出:返回执行结果,包含操作状态和输出数据
用户: 执行核心功能
Skill: 正在执行核心功能...
Skill: 执行完成,结果如下: 操作成功