Agent Skills
返回列表
Obsidian 笔记库管理工具

Obsidian 笔记库管理工具

知识管理 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @zcwl/obsidian-1-0-0。

技能介绍

Obsidian 的库(vault)本质上是磁盘上的一个普通文件夹,笔记是纯文本 Markdown,这是它的优点也是麻烦的根源。当你用脚本批量维护笔记时,直接操作文件会遇到两个具体问题:一是多库场景下笔记到底在哪并不明确(iCloud 同步库、工作库、个人库并存,mv 一条命令写死了路径就再也换不回来);二是 Obsidian 的 [[wikilinks]] 和 Markdown 链接分散在整个库中,文件改名后这些引用不会自动更新,留下的全是断链。

它如何解决

核心思路是不要猜路径,而是读 Obsidian 自己维护的配置文件。

  • 定位活动库:Obsidian 桌面端把已打开的库记录在 ~/Library/Application Support/obsidian/obsidian.json,这是唯一可信来源(source of truth)。
  • 解析库名:每个条目的库名通常是文件夹路径的后缀部分。
  • 默认库:执行一次 obsidian-cli set-default 后,就可以用 print-default --path-only 直接拿到路径,适合脚本调用。

拿到路径之后,剩下的操作都围绕笔记生命周期展开:

  • 查找:search 搜文件名,search-content 搜笔记正文并返回命中片段和行号。
  • 创建:create "Folder/New note" --content "..." --open,会通过 Obsidian URI(obsidian://...)打开新笔记。
  • 改名:move "old/path/note" "new/path/note",重点在于它会同步更新整个库中的 [[wikilinks]] 和常见 Markdown 链接。这是它相比裸 mv 最实际的价值。
  • 删除:delete 按路径删除笔记。

至于更细碎的编辑,直接打开 .md 文件修改即可,Obsidian 下次刷新时会读到变更,没必要每次都走命令行。

适用边界与注意点

  • 多库是常态:不要把路径硬编码进脚本,优先读配置或使用 print-default。否则库迁移、机器切换时脚本会直接失效。
  • 创建笔记依赖 URI handler:create --open 要求 Obsidian 已安装且 obsidian:// 协议可用,命令行环境下失败通常意味着 Obsidian 没在运行或没注册协议。
  • 不要往隐藏目录写:通过 URI 创建隐藏 dot-folder(例如 .something/...)下的笔记,Obsidian 可能会拒绝,这类文件放在库外更稳妥。
  • 别碰 .obsidian/:这个目录存放工作区和插件配置,脚本一般不需要写入,改坏了会导致插件或布局异常。
  • Canvas 不是 Markdown:*.canvas 是 JSON 文件,附件(图片、PDF)位置由设置决定。本工具操作的是笔记本身,不理解 canvas 结构,批量改 canvas 需要另行处理。

一句话总结:它把「打开 Obsidian → 手动改名 → 手动修链接」这套流程压缩成一条命令,代价是需要接受它的路径解析逻辑,而不是自建一套。

使用场景

  • 拥有多个 Obsidian 库,脚本需要先读 obsidian.json 才能定位笔记路径
  • 重命名笔记并自动更新全库 wikilinks 和 Markdown 链接
  • 通过 obsidian-cli search-content 按关键词搜索笔记正文并获取行号
  • 在脚本中执行 create 创建笔记并打开,需确保 URI handler 可用

适合人员

  • 使用 Obsidian 管理个人知识库、需要批量迁移或整理笔记的开发者
  • 编写脚本自动化笔记流程、希望避免硬编码 vault 路径的工程师
  • 维护大量 wikilinks、需要安全重命名笔记而不破坏链接的技术作者
  • 希望在终端搜索笔记正文并定位到具体行号的极客用户