本文介绍 Obsidian CLI 命令行工具的安装与核心功能,包括原生搜索、反向链接查询、属性修改、日记管理及知识库健康度检查。适合 Obsidian 进阶用户、希望将 AI 与笔记深度整合的实践者,以及寻求自动化工作流的效率工具爱好者。文章详细说明了 CLI 的开启步骤、常用命令示例,并探讨了其如何让 AI 工具(如 Claude Code)更直接地操作笔记数据。
Tags:
本文字数 2368,阅读大约需 5 分钟
之前写过一篇文章,聊到一个观点:笔记即程序(笔记即程序:上下文的正确打开方式)。
大意是说,你的 Markdown 文件不只是内容,还可以是指令。
写好一个 Skill、SOP,AI 读取之后,就会按照里面的规则去执行任务。
这套玩法我自己用了一段时间,确实好用。
但有一个问题,一直卡着我。
AI 操作的是「文件」,不是「Obsidian」。
什么意思呢?
不管是 Claude Code 还是 Gemini CLI,它们在 Obsidian 里干活的方式,本质上就是读写文件。
搜索靠 grep,修改属性靠解析 YAML,找日记靠自己拼路径。
它不知道什么是反向链接,不知道你的 daily note 放在哪,不知道哪些笔记是孤儿笔记。
这些信息,只有 Obsidian 自己知道。
文件系统里,压根就没有这些东西。
直到最近,Obsidian 官方做了一件事——推出 Obsidian CLI,命令行工具。
简单说就是,你可以在终端里,直接操作 Obsidian 了。
以前做不到的事,现在一条命令就行
先说说,这个 CLI 到底改变了什么。
举几个我实际遇到过的场景。
1、搜索
以前让 AI 在 vault 里搜东西,它用的是文本匹配。
能搜到文件内容里的关键词,但搜不到别名,搜不到属性字段。
现在一条命令:
obsidian search query="第二大脑"走的是 Obsidian 原生的搜索引擎,跟你在 app 里按 Command+Shift+F 搜出来的结果一样。
甚至还能加上 search:context,把匹配到的那一行上下文一起返回。
2、反向链接
这个以前是真做不到。
backlink 是 Obsidian 运行时动态计算的,文件系统里不存在这个信息。
你让 AI 去找「哪些笔记引用了当前这篇」,它只能自己遍历所有文件去做正则匹配,费时费力,还容易漏。
现在:
obsidian backlinks file=Obsidian直接返回所有引用了这篇笔记的文件列表,干净利落。
3、修改属性
以前让 AI 改一个 frontmatter 字段,它得自己解析 YAML,小心翼翼地做字符串替换。
稍有不慎,缩进错了、多了个空格,整个 frontmatter 就坏了。
现在(默认会修改当前打开笔记):
obsidian property:set name=status value=done一条命令搞定,不用碰文件本身。
4、Daily Note
以前让 AI 帮你往今天的日记里追加一条待办,它得先知道你的日记路径格式,再拼出今天的日期,再判断文件存不存在,不存在的话还得先创建。
一个简单的需求,背后是一长串逻辑。
现在:
obsidian daily:append content="- [ ] 写公众号文章"一条命令,完事。
说白了,以前 AI 是在 Obsidian 外面操作文件,现在是在 Obsidian 里面操作笔记。
怎么用上 Obsidian CLI
目前 CLI 还在 Early Access 阶段,需要 Obsidian 1.12 的安装器版本。
注意:是安装器版本,不是当前版本。
开启步骤很简单:
1、打开 Obsidian,进入「设置」→「通用」。
2、找到「命令行界面」,打开开关。
3、按照提示点击「注册」按钮。
注册完成后,重启一下终端,输入 obsidian。
如果能看到以下输出,则表示安装成功了。
需要注意一点:CLI 需要 Obsidian 在后台运行。
它本质上是在跟正在运行的 Obsidian 通信,而不是独立工作的。
如果你的终端当前目录就在 vault 文件夹里,CLI 会自动识别。如果不在,可以用 vault=<名称> 来指定操作哪个库。
装好之后,可以先从几个简单的命令试起。
一行命令管日记
这是最容易上手的场景。
obsidian daily打开今天的日记。如果还没创建,它会自动帮你建一个。
obsidian daily:append content="- [ ] 整理本周笔记"往日记末尾追加一行内容。
obsidian daily:read读取今天日记的全部内容。
obsidian tasks daily todo列出今天日记里所有还没完成的待办。
更多命令可前往官网查看:https://help.obsidian.md/cli#General+commands
给你的知识库做一次体检
这是我觉得最有意思的一个用法。
之前写双链那篇文章时,我聊过一个观点:图谱应该是自然生长的,不要为了链接而链接。
但说实话,我自己的 vault 到底「健不健康」,心里其实也没底。
有了 CLI 之后,我跑了几条命令:
obsidian files total看看 vault 里一共有多少文件。
obsidian orphans total有多少篇笔记,没有被任何其他笔记引用过——也就是「孤儿笔记」。
obsidian deadends total有多少篇笔记,自己没有链向任何其他笔记。
obsidian unresolved total有多少断链,也就是你创建了 [[链接]],但对应的笔记根本不存在。
obsidian tags counts sort=count所有标签按使用频次排序,看看自己最常打的标签是什么。
跑完之后,我发现我的 vault 里有不少孤儿笔记。
有些是很早之前随手记的想法,写完就没管过,跟库里其他笔记没有任何连接。
这一次「知识库自检」,也让我知道哪些笔记需要重新审视了。
你也可以试试,跑一遍这几条命令,看看自己的 vault 健康状况如何。
让 AI 用上 CLI
前面那些,都是人在终端里手动敲命令。
但 CLI 真正的想象空间,在于让 AI 来调用。
如果你在用 Claude Code 或者 Claudian,现在可以让 AI 做到一些以前做不到的事。
比如我之前试过,让 AI「找出 vault 里所有孤儿笔记,读取每篇的内容,判断它们分别属于什么主题,然后给我一个整理建议」。
以前,「找孤儿笔记」这一步就卡住了。
因为这个信息只有 Obsidian 知道,文件系统里没有。
现在,obsidian orphans 一条命令就能拿到列表,剩下的事情交给 AI 去分析就行了。
还有一个命令值得一提:eval。
obsidian eval code="app.vault.getFiles().length"它可以直接在 Obsidian 内部执行 JavaScript。
这意味着,Obsidian 的整个内部 API,理论上都可以通过这条命令被外部工具调用。
对于插件开发者来说,这也是个好消息。
以前调试插件,改一行代码就得手动 reload,现在可以用 plugin:reload 命令自动完成,配合 AI 的自动化测试,开发效率能提升不少。
不过这些偏进阶了,普通用户不用太关注,知道有这个能力就行。
这件事为什么值得关注
最后说两点我自己的观察。
第一,Obsidian 不再只是一个笔记工具了。
回头看最近一年 Obsidian 做的事情:Bases(数据库)、Web Viewer、Publish、现在的 CLI,以及 Obsidian Headless——可以不开桌面端,直接在命令行里同步 vault。
这些功能单独看,各自解决各自的问题。
但串起来看,方向很明确:Obsidian 在把自己从一个笔记工具,变成一个「可以被其他工具接入」的系统。
这条路径,跟 Notion 出 API 之后生态爆发的逻辑有点像。
但 Obsidian 走的方式完全不同:数据在你本地,格式是开放的,你的笔记永远是你的。
第二,AI 和 Obsidian 的结合,正在从「第三方插件」变成「官方支持」。
之前想让 AI 操作 Obsidian,得靠各种第三方插件——Copilot、Claudian、Smart Connections。
每个插件各管一摊,各有各的限制。
CLI 是 Obsidian 官方提供的、统一的外部接口。
不管你用的是 Claude Code、Gemini CLI、还是未来出现的什么新工具,只要它能执行命令行,就能操作你的 Obsidian。
你不再需要等某个插件作者更新适配,也不用担心某个插件哪天停止维护了。
官方亲自下场,把这件事给做了。
写在最后
写这篇文章的时候,我就是用 obsidian daily:append 往今天的日记里记下了「写公众号文章」这个待办。
写完之后,又跑了一遍 obsidian tasks daily todo,确认今天的事情差不多清完了。
如果你也在用 Obsidian,可以升级到最新版去体验一下,也许会发现一些新的可能。
以上,就是本文全部内容,如果觉得这篇文章对你有启发,点赞、比心、分享三连就是对我最大的支持,谢谢~
• 用 Gemini 解锁 YouTube 新用法,信息获取效率提升 10 倍
• 有了 NotebookLM 后,还需要 Obsidian 吗?
• 我试了 NotebookLM 学习法后,彻底抛弃传统学习方式
• 我用 NotebookLM 解锁 PPT 的 5 种玩法,实现了 PPT 自由
没有评论:
发表评论