### Obsidian 官方 CLI 命令全景速查表 (版本要求: v1.12+) **核心执行逻辑说明:** - 基础格式:`obsidian <命令> 参数名=参数值 标记参数` - 含有空格的值必须加双引号,例如:`content="Hello world"`。 - **标记参数**(如 `open`, `inline`, `total`)不需要赋值,写上就代表启用。 - 以下表格中 `file=Recipe` 代表对库中名为 Recipe 的文件执行操作,实际使用时需要替换为你库中真实存在的文件名。 | 所属模块 | 命令 | 功能解释 | 完整样例 (直接在终端运行) | | :-------- | :----------------------------- | :-------------------------------- | :-------------------------------------------------------------------- | | **基础操作** | `help` | 显示帮助。加上具体命令就是查看这个命令的帮助。 | `obsidian help search` | | | `version` | 显示当前 Obsidian 软件版本号。 | `obsidian version` | | | `reload` | 重新加载应用窗口。 | `obsidian reload` | | | `restart` | 重启整个 Obsidian 应用程序。 | `obsidian restart` | | **数据库** | `bases` | 列出仓库中所有的 `.base` 数据库文件。 | `obsidian bases` | | | `base:views` | 列出当前活动数据库文件中的视图。 | `obsidian base:views file=Contacts` | | | `base:create` | 在数据库中创建新记录,支持指定字段内容。 | `obsidian base:create file=Contacts name="John Doe"` | | | `base:query` | 查询数据库并返回 JSON 或 CSV 结果。 | `obsidian base:query file=Contacts view=Active format=json` | | **书签** | `bookmarks` | 列出书签。 | `obsidian bookmarks format=json` | | | `bookmark` | 将指定文件或查询条件保存为书签。 | `obsidian bookmark file="Project A" title="当前项目"` | | **命令面板** | `commands` | 获取所有内置或插件命令的 ID。 | `obsidian commands filter=workspace` | | | `command` | 强制执行一个内部命令。 | `obsidian command id=workspace:close` | | | `hotkeys` | 列出所有快捷键映射。 | `obsidian hotkeys verbose` | | | `hotkey` | 获取单个命令的具体快捷键。 | `obsidian hotkey id=workspace:close` | | **日记** | `daily` | 打开当天的每日笔记。 | `obsidian daily paneType=tab` | | | `daily:path` | 输出每日笔记的物理路径。 | `obsidian daily:path` | | | `daily:read` | 打印当天每日笔记的文本内容。 | `obsidian daily:read` | | | `daily:append` | 向每日笔记末尾追加文本,适合快速记录。 | `obsidian daily:append content="- [ ] 记得回复邮件"` | | | `daily:prepend` | 向每日笔记开头插入文本。 | `obsidian daily:prepend content="# 今日重点"` | | **文件历史** | `diff` | 对比不同历史版本。 | `obsidian diff file=Recipe from=2 to=1` | | | `history` / `history:list` | 显示有本地历史记录的文件列表。 | `obsidian history file=Recipe` | | | `history:read` | 读取某个历史版本的内容。 | `obsidian history:read file=Recipe version=1` | | | `history:restore` | 将文件回滚到指定历史版本。 | `obsidian history:restore file=Recipe version=2` | | | `history:open` | 在界面中打开文件恢复面板。 | `obsidian history:open file=Recipe` | | **文件与目录** | `file` / `folder` | 显示文件或文件夹的元数据(大小、时间)。 | `obsidian file path="Notes/Recipe.md"` | | | `files` / `folders` | 遍历列表,支持后缀过滤并返回总数。 | `obsidian files ext=md total` | | | `open` | 打开文件。 | `obsidian open file=Recipe newtab` | | | `create` | 静默创建文件,支持预设内容或应用模板。 | `obsidian create name=Meeting content="# 会议记录" overwrite` | | | `read` | 打印文件内容,Agent 接入必用命令。 | `obsidian read file=Recipe` | | | `append` / `prepend` | 在文件末尾或头部插入内容。 | `obsidian append file=Recipe content="追加的文本"` | | | `move` / `rename` | 移动或重命名文件(自动更新双链)。 | `obsidian rename file=Recipe name=NewRecipe` | | | `delete` | 删除文件,可附加 `permanent` 彻底删除。 | `obsidian delete file=Recipe permanent` | | **链接网络** | `backlinks` | 列出指向这个文件的反向链接。 | `obsidian backlinks file=Index format=json` | | | `links` | 列出这个文件包含的出站链接。 | `obsidian links file=Index total` | | | `unresolved` | 提取未创建实体文件的死链接节点。 | `obsidian unresolved format=json` | | | `orphans` | 列出没有被引用的孤立文件。 | `obsidian orphans total` | | | `deadends` | 列出没有向外发出引用的死胡同笔记。 | `obsidian deadends total` | | **大纲** | `outline` | 提取文件的标题树状结构。 | `obsidian outline file=Recipe format=tree` | | **插件管理** | `plugins` / `enabled` | 列出所有插件或已开启的插件。 | `obsidian plugins filter=community` | | | `plugins:restrict` | 开关安全模式。 | `obsidian plugins:restrict off` | | | `plugin` / `plugin:enable` | 查询插件信息或开启插件。 | `obsidian plugin:enable id=dataview` | | | `plugin:disable` | 禁用插件。 | `obsidian plugin:disable id=dataview` | | | `plugin:install` / `uninstall` | 静默安装或卸载社区插件。 | `obsidian plugin:install id=dataview enable` | | | `plugin:reload` | 热重载插件(适合开发调试)。 | `obsidian plugin:reload id=my-plugin` | | **属性元数据** | `aliases` | 提取别名列表。 | `obsidian aliases active` | | | `properties` | 提取 YAML 属性,支持排序。 | `obsidian properties sort=count` | | | `property:set` | 修改属性值,规范化文本、日期等类型。 | `obsidian property:set name=status value=draft type=text file=Recipe` | | | `property:remove` / `read` | 删除属性或提取特定属性值。 | `obsidian property:read name=status file=Recipe` | | **发布** | `publish:site` / `list` | 获取 Publish 站点信息或已发布清单。 | `obsidian publish:list` | | | `publish:status` / `add` | 检查变更或推送到云端。 | `obsidian publish:add changed` | | | `publish:remove` / `open` | 撤销发布或在浏览器中查看线上页面。 | `obsidian publish:open file=Recipe` | | **随机笔记** | `random` / `random:read` | 打开随机笔记或直接打印其内容。 | `obsidian random folder="Zettelkasten" newtab` | | **全局搜索** | `search` | 全文检索,返回文件路径列表。 | `obsidian search query="TODO" format=json` | | | `search:context` | 提供包含上下文的检索结果。 | `obsidian search:context query="重要" limit=5` | | | `search:open` | 在图形界面中唤出搜索面板。 | `obsidian search:open query="会议记录"` | | **官方同步** | `sync` / `sync:status` | 控制同步进程开关,查看状态。 | `obsidian sync on` | | | `sync:history` / `read` | 查阅云端版本历史记录或读取内容。 | `obsidian sync:read file=Recipe version=1` | | | `sync:restore` | 强制回滚到云端版本。 | `obsidian sync:restore file=Recipe version=2` | | | `sync:open` / `deleted` | 打开界面查看历史或已删除文件。 | `obsidian sync:deleted` | | **标签** | `tags` | 提取标签网络,统计频次。 | `obsidian tags sort=count format=json` | | | `tag` | 查询单个标签的分布和出现次数。 | `obsidian tag name="#important" verbose` | | **任务管理** | `tasks` | 检索全库或指定日记的任务状态。 | `obsidian tasks todo daily` | | | `task` | 终端直连修改具体任务的勾选状态。 | `obsidian task ref="Recipe.md:8" toggle` | | **模板** | `templates` / `template:read` | 查看模板库,或解析带变量的模板内容。 | `obsidian template:read name=Meeting resolve` | | | `template:insert` | 将模板注入到活动笔记中。 | `obsidian template:insert name=Meeting` | | **外观与样式** | `themes` / `theme` | 查看安装的主题或查看当前主题详情。 | `obsidian themes versions` | | | `theme:set` / `install` | 切换主题,或从终端安装并启用新主题。 | `obsidian theme:install name="Minimal" enable` | | | `theme:uninstall` | 卸载主题。 | `obsidian theme:uninstall name="Minimal"` | | | `snippets` 相关命令 | 开关 CSS 片段。 | `obsidian snippet:enable name=custom-font` | | **卡片盒模式** | `unique` | 按照 Zettelkasten 时间戳生成唯一笔记。 | `obsidian unique name="Idea" open` | | **仓库管理** | `vault` / `vaults` | 获取当前仓库信息或列出所有本地仓库。 | `obsidian vaults verbose` | | | `vault:open` | 强制软件跳转打开另一个仓库。 | `obsidian vault:open name="My Vault"` | | **内置浏览器** | `web` | 在 Obsidian 内直接打开网页。 | `obsidian web url="https://google.com" newtab` | | **字数统计** | `wordcount` | 统计字数或字符数。 | `obsidian wordcount file=Recipe words` | | **工作区布局** | `workspace` 系列命令 | 保存、载入、删除窗口布局配置。 | `obsidian workspace:load name=Writing` | | | `tabs` / `tab:open` | 管理标签页组,或者在新标签打开文件。 | `obsidian tab:open file=Recipe` | | | `recents` | 返回最近打开文件的记录。 | `obsidian recents total` | | **开发者模式** | `devtools` / `dev:debug` | 调出底层控制台或挂载 Chrome 调试器。 | `obsidian dev:debug on` | | | `dev:cdp` | 顶级权限,调用 Chrome DevTools Protocol。 | `obsidian dev:cdp method="Network.enable"` | | | `dev:screenshot` | 生成软件当前界面的 base64 图片数据流。 | `obsidian dev:screenshot path=screenshot.png` | | | `dev:console` / `css` | 读取控制台日志,或抓取 CSS 渲染数据。 | `obsidian dev:console level=error` | | | `dev:dom` | 用 CSS 选择器直接抓取界面 DOM 元素。 | `obsidian dev:dom selector=".cm-content" text` | | | `dev:mobile` | 开启移动端布局模拟。 | `obsidian dev:mobile on` | | | `eval` | 注入 JavaScript 代码到底层执行并返回结果。 | `obsidian eval code="app.vault.getFiles().length"` | # Obsidian CLI 典型自动化应用场景与工作流 | 工作流名称 | 功能简介 | 涉及的 CLI 命令 | | :---------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | | **1. 全局极速闪记 ** | **痛点**:记录一闪而过的灵感时,打开软件、等插件加载、找文件太慢。
**方案**:在 Raycast、Alfred 甚至手机捷径中绑定一段终端脚本。输入文字后,脚本在后台直接调用 CLI,将文字无感追加到今天的日记末尾。完全不需要唤醒 Obsidian 界面。 | `obsidian daily:append content="灵感内容"` | | **2. 播客/视频沉浸式知识榨取** | **痛点**:看完 YouTube 视频后,手动整理笔记并建立待办事项费时费力。
**方案**:把链接丢给 OpenClaw 或 Telegram 机器人。AI 提取字幕并总结后,调用 CLI 直接使用你的“媒体笔记模板”创建新文件,并把提取出的行动项自动打上标签,插入到当天的日记中。 | `obsidian create name="视频名" template="Media"`
`obsidian daily:append content="- [ ] 待办项"` | | **3. AI 收件箱自动分拣员 ** | **痛点**:平时用 Web Clipper 随手剪藏的网页堆积在 Inbox 文件夹,变成“赛博垃圾场”。
**方案**:利用 n8n 建立定时任务,让大模型批量阅读 Inbox 里的文件。理解内容后,通过 CLI 规范化注入 YAML 属性(如作者、分类),最后安全地将文件重命名并移动到对应的归档文件夹。CLI 会自动更新全库的双链,绝不断链。 | `obsidian files folder="Inbox"`
`obsidian read file="未命名"`
`obsidian property:set name="category" value="AI"`
`obsidian move file="旧名" to="新路径"` | | **4. 绝对隐私的本地 RAG 对话助理** | **痛点**:搭建向量数据库(Chroma/Milvus)太繁琐,且每次笔记更新都要重新 Embedding(向量化)。
**方案**:在本地运行 Claude Code 或本地大模型,赋予其 CLI 执行权限。AI 会根据你的提问,自主使用带有上下文的全局搜索指令,并通过提取反向链接顺藤摸瓜,构建准确的背景知识库后再回答,完全零配置。 | `obsidian search:context query="关键词"`
`obsidian backlinks file="检索到的文件"`
`obsidian read file="目标笔记"` | | **5. 跨平台数据库级联录入** | **痛点**:外部数据(如记账、习惯打卡)很难干净地录入到 Obsidian 的表格或 Dataview 中。
**方案**:结合 Obsidian 1.12 最新的 Bases(数据库)功能。通过 n8n 接收外部 Webhook(比如银行消费短信),直接让 CLI 在指定的 Base 文件中创建一条新记录,并严格按数据类型(数字、日期)注入字段。 | `obsidian base:create file="财务库" name="打车"`
`obsidian property:set type="number" value="30"` | | **6. 历史知识自动唤醒与破冰** | **痛点**:记录了大量笔记但从不回顾,知识变成死水。
**方案**:每天早晨执行一个自动化脚本,利用 CLI 提取一篇早于 1 年前的随机笔记,交给 AI 提炼核心观点,并与你最近一周关注的标签(如 `#Agent`)进行强行跨界联想,将联想结果作为“每日思考”追加到今天日记中。 | `obsidian random:read folder="卡片盒"`
`obsidian tags sort=count limit=5`
`obsidian daily:prepend content="AI的跨界联想"` | | **7. 批量元数据重构与清洗** | **痛点**:笔记库用久了,属性极其混乱(比如状态标签混用了 `doing`、`in-progress`、`进行中`),导致 Dataview 列表报错。
**方案**:让 AI 脚本遍历你的核心文件夹,读取现有的属性值,统一转换为标准格式,然后用 CLI 进行批量覆写。这种方式强制符合 YAML 语法,绝不会多一个空格或少一个引号。 | `obsidian properties`
`obsidian property:read name="status"`
`obsidian property:set name="status" value="标准值"` |