Obsidian CLI 是一个通过命令行操作 Obsidian 笔记库的官方工具(需要 Obsidian 1.12 以上版本)。它的核心功能是为 AI 智能体(如 Gemini CLI、Claude Code、OpenClaw)和自动化工作流(如 n8n)提供原生交互接口,解决 AI 扫描整个笔记库产生高额 Token 消耗的问题。
架构机制对比#
| 对比维度 | 传统直接读写文件系统 | 官方 CLI 调用 |
|---|---|---|
| 交互目标 | 本地磁盘 Markdown 文件 | 正在运行的 Obsidian 进程 |
| Token 消耗 | 极高(需扫描数百万字符建立上下文) | 极低(约 100 Token 即可完成内置索引查询) |
| 状态感知度 | 极弱(只能读取纯文本内容) | 极强(能读取图谱关系、反向链接、插件运行状态) |
| 元数据更新 | 整体覆写(必须加载全量文件以修改 YAML) | 原子化更新(发送单条指令仅修改目标属性) |
| 数据一致性 | 差(移动文件极易导致双向链接断链) | 极佳(自动更新所有相关引用的内部链接) |
开启与基础配置#
- 确认系统环境,保证 Obsidian 客户端版本在 1.12 以上。
- 进入 Obsidian 界面,打开“设置 -> 常规 (General)”。
- 找到“命令行界面 (Command line interface)”开关并打开。
- 在弹出的窗口中确认注册到系统 Path。
- 保证 Obsidian 客户端处于运行状态(如果在未运行状态下执行命令,系统会自动启动客户端)。
验证配置成功的方法是打开操作系统的终端工具(Mac 使用 Terminal,Windows 使用 PowerShell),输入下面这个基础命令:
obsidian dailybash如果配置正确,Obsidian 会直接自动应用日记模版并在界面中生成今天的日记文件。
AI 智能体集成方案#
为了让智能体工具掌握使用命令行的能力,我们需要为它们配置专门的 Agent Skill。这里以 Obsidian CEO (Steph Ango) 开发的官方 Skill 仓库为例。
配置 Agent Skill 目录#
工具链需要严格的目录层级支持。针对不同的智能体工具,配置路径有严格的区别,必须保证 SKILL.md 文件在规定的层级内:
| 智能体工具 | Skill 存放路径 | 目录结构要求 |
|---|---|---|
| OpenCode | ~/.opencode/skills/ | skills/<skill-name>/SKILL.md |
| Claude Code | 项目根目录的 .claude/ 文件夹 | 同上 |
| Codex CLI | ~/.codex/skills/ | 同上 |
完成目录配置后,智能体就具备了直接向 Obsidian 进程发送指令的能力。
场景案例与代码实现#
案例一:让 Gemini CLI 抓取文献并生成笔记#
在这个场景里,我们让智能体抓取外部数据,再用 Obsidian CLI 把数据写入笔记。
执行提示词:
任务:获取 arXiv 最新 AI 论文并写入 Obsidian 今日日记。
请按以下步骤执行:
1. 获取论文数据
从以下 RSS feed 获取论文列表:
https://export.arxiv.org/rss/cs.AI
解析 RSS 内容,并 **按发布时间排序,选取最新发布的 10 篇论文**。
2. 提取并处理字段
对每篇论文保留以下字段:
* title
* abstract
* link
* published date
然后执行以下处理:
* 将 **title 翻译为中文**
* 将 **abstract 翻译为中文**
* 保留原始 link
* 保留 published date
3. 整理为 Markdown 表格
生成如下格式的 Markdown 表格:
| 标题(中文) | 摘要(中文) | 原文链接 | 发布日期 |
| ------ | ------ | ---- | ---- |
| ... | ... | ... | ... |
要求:
* 每篇论文一行
* 摘要不要截断
4. 写入 Obsidian 日记
使用 **obsidian-cli skill** 完成以下操作:
* 创建或打开 **今天的日记**
* 在日记末尾追加以下内容:
## 今日AI论文
(在这里插入生成的 Markdown 表格)
5. 写入规则
* 必须使用 `obsidian-cli` skill 完成 Obsidian 操作,不要直接操作文件系统。
markdown案例二:通过 Python 脚本调用#
使用代码调用 CLI 命令适合每日定时触发的确定性任务。让 AI 编写代码时,要把 Obsidian CLI 的官方文档发送给 AI 提供上下文。
生成代码的提示词:
**角色设定**:你是一位精通 Python 和自动化办公的专家,为我编写一个 Python 自动化脚本。
**任务目标**:我需要从 [输入源,例如:ArXiv API] 获取最新的 [内容类型,例如:AI 相关论文],并将这些内容整理后通过Obsidian-CLI发送到我的Obsidian。
**详细需求**:
1. **数据获取**:从这个接口 [粘贴 URL] 获取前 10 条数据。我需要提取论文的“标题”、“发布日期”、“摘要(限制 200 字)”和“原文链接”。
2. **数据格式化**:将这些数据整理成 Markdown 表格形式,表头为:序号 | 论文名称 | 发布日期 | 简介 | 链接。
3. **与软件交互**:使用命令行方式调用Obsidian-CLI来创建并写入这些内容。
- 使用模版 [模版名] 创建名为 [笔记名] 的笔记。
- 然后将表格内容逐行追加到笔记中。
- 最后自动在软件中打开这个笔记。
4. **稳定性要求**:
- 考虑 Windows 系统的兼容性,确保代码在输出中文或特殊符号时不会报错(强制使用 UTF-8 编码)。
- 因为是自动化脚本,如果操作失败(比如软件没响应或命令执行错误),务必在终端里清晰地打印出错误原因,不要静默崩溃。
- 代码结构要清晰,方便我修改里面的配置参数(如笔记名称、搜索关键词等)。markdown案例三:在N8N工作流中调用#
- 需要在本地部署N8N,以便于N8N能够直接访问本地文件系统。在Docker中部署的N8N无法做到这一点。
- 启动N8N的时候,设置参数来保证所有节点都可用:
set NODES_EXCLUDE=[] && n8n start。(n8n 2.x 为了安全,默认禁用了涉及本地文件系统操作和 Shell 命令的节点。) - 添加Execute Command节点,设置执行命令:
python C:\Users\jason/obsidian-cli-diary-code.py。 - 点击Execute Step按钮测试。
- 注意事项:如果遇到utf-8编码问题,启动n8n的时候添加参数:
set PYTHONIOENCODING=utf-8 && n8n start。
注意事项#
- Obsidian CLI 的所有命令执行都依赖 Obsidian 桌面端程序的运行状态。
- 在本地运行 OpenClaw 这类高频自主智能体时,需要严格监控 Token 消耗。确定的日常操作建议全部转交给 n8n 或 Python 脚本。
- 浏览器内容抓取可以配合
defuddle这个 Skill 工具,把网页内容清洗成干净的 Markdown 格式后直接写入笔记库。
官方理念与隐私边界#
Obsidian 联合创始人是 Erica Xu 和 Shida Li。现任 CEO 是 Steph Ango(网络 ID 是 kepano)。
官方坚守本地优先和数据隐私底线。官方决不在软件内部强制集成任何云端 AI 模块。CLI 工具充当了一个开放的外部操作手脚。用户全权决定把笔记库接入哪种 AI 框架。
有极高隐私要求的用户可以使用 NAS 进行多端数据同步。配合本地部署的大语言模型处理数据。根据2026年的前沿模型能力测试,70B 级别的本地开源模型在执行多步骤、重度依赖工具调用的智能体任务时,表现一般。长周期任务规划能力明显弱于前沿闭源模型。智能体操作具有不可控风险。必须通过 Git 定时提交做好知识库版本备份。