cli-anything-obsidian 是一个通过 Obsidian Local REST API 进行知识管理与笔记记录的命令行界面工具,面向 AI 智能体以及需要在无图形界面环境下管理笔记、搜索笔记库和执行命令的高级用户。
用途
该工具让用户和智能体能够以命令行方式操作 Obsidian 笔记库,无需打开 Obsidian 图形界面即可完成笔记的读取、创建、更新、删除、追加、搜索以及执行 Obsidian 命令等操作。
安装与前置条件
该 CLI 作为 cli-anything-obsidian 包的一部分安装:
pip install cli-anything-obsidian
前置条件:
- Python 3.10+
- 必须已安装并运行 Obsidian,且启用 Local REST API 插件
主要能力
工具提供以下命令组:
Vault(笔记库文件管理):
- list:列出笔记库或子目录中的文件
- read:读取笔记内容
- create:创建新笔记
- update:覆盖已有笔记
- delete:从笔记库删除笔记
- append:向已有笔记追加内容
Search(笔记库搜索):
- query:使用 Obsidian 查询语法搜索
- simple:在笔记库中进行纯文本搜索
Note(活动笔记):
- active:获取 Obsidian 中当前活动的笔记
- open:在 Obsidian 编辑器中打开笔记
Command(命令面板):
- list:列出所有可用的 Obsidian 命令
- execute:按 ID 执行命令
Server(服务器状态与信息):
- status:检查 Obsidian Local REST API 是否运行
Session(会话状态):
- status:显示当前会话状态
使用方式
基本命令示例:
显示帮助
cli-anything-obsidian --help
启动交互式 REPL 模式
cli-anything-obsidian
列出笔记库文件
cli-anything-obsidian vault list
以 JSON 输出运行(供智能体使用)
cli-anything-obsidian --json vault list
REPL 模式:不带子命令调用时,CLI 进入交互式 REPL 会话,支持 Tab 补全与历史记录。
笔记库操作示例:
列出所有笔记库文件
cli-anything-obsidian vault list
列出子目录中的文件
cli-anything-obsidian vault list "Daily Notes"
读取笔记
cli-anything-obsidian vault read "Projects/my-project.md"
创建新笔记
cli-anything-obsidian vault create "Projects/new-project.md" --content "# New Project"
更新(覆盖)笔记
cli-anything-obsidian vault update "Projects/new-project.md" --content "# Updated Content"
追加到笔记
cli-anything-obsidian vault append "Projects/new-project.md" --content "\n## New Section"
搜索示例:
纯文本搜索(GET /search/simple/)
cli-anything-obsidian search simple "meeting notes"
Dataview DQL 查询——默认 --type dql,以
application/vnd.olrapi.dataview.dql+txt 发送
cli-anything-obsidian search query 'TABLE file.link FROM "Projects"'
JsonLogic 查询——application/vnd.olrapi.jsonlogic+json
cli-anything-obsidian search query --type jsonlogic
'{"==":[{"var":"frontmatter.status"},"active"]}'
命令示例:
列出可用命令
cli-anything-obsidian command list
按 ID 执行命令
cli-anything-obsidian command execute "editor:toggle-bold"
API 密钥配置:
通过标志
cli-anything-obsidian --api-key YOUR_KEY vault list
通过环境变量(推荐供智能体使用)
export OBSIDIAN_API_KEY=YOUR_KEY cli-anything-obsidian vault list
状态管理
CLI 维护轻量级会话状态:
- API 密钥:可通过 --api-key 或 OBSIDIAN_API_KEY 环境变量配置
- 主机 URL:默认为 https://localhost:27124;可通过 --host 配置
输出格式
所有命令支持两种输出模式:
- 人类可读(默认):表格、颜色、格式化文本
- 机器可读(--json 标志):结构化 JSON,供智能体使用
人类可读输出
cli-anything-obsidian vault list
供智能体使用的 JSON 输出
cli-anything-obsidian --json vault list
面向 AI 智能体的建议
以编程方式使用该 CLI 时:
- 始终使用 --json 标志以获得可解析输出
- 检查返回码——0 表示成功,非零表示错误
- 失败时解析 stderr 获取错误信息
- 设置 OBSIDIAN_API_KEY 环境变量,避免每次调用都传 --api-key
- 在执行其他命令前,先用 server status 验证 Obsidian 正在运行
适用场景
- AI 智能体自动化管理 Obsidian 笔记库
- 高级用户通过命令行批量操作笔记
- 无图形界面环境下的笔记读写与搜索
- 通过脚本或自动化流程执行 Obsidian 命令
限制
- 需要 Obsidian 处于运行状态并启用 Local REST API 插件
- 需要 Python 3.10+
- 需要配置 API 密钥
- 默认主机为 https://localhost:27124
更多信息
- 完整文档:见包内 README.md
- 测试覆盖:见包内 TEST.md
- 方法论:见 cli-anything-plugin 中的 HARNESS.md
版本:1.1.0