Files
nexus/Clippings/Obsidian 官方 CLI 命令全景速查表.md
2026-04-16 20:03:53 +08:00

107 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 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. 全局极速闪记 ** | **痛点**:记录一闪而过的灵感时,打开软件、等插件加载、找文件太慢。<br>**方案**:在 Raycast、Alfred 甚至手机捷径中绑定一段终端脚本。输入文字后,脚本在后台直接调用 CLI将文字无感追加到今天的日记末尾。完全不需要唤醒 Obsidian 界面。 | `obsidian daily:append content="灵感内容"` |
| **2. 播客/视频沉浸式知识榨取** | **痛点**:看完 YouTube 视频后,手动整理笔记并建立待办事项费时费力。<br>**方案**:把链接丢给 OpenClaw 或 Telegram 机器人。AI 提取字幕并总结后,调用 CLI 直接使用你的“媒体笔记模板”创建新文件,并把提取出的行动项自动打上标签,插入到当天的日记中。 | `obsidian create name="视频名" template="Media"`<br>`obsidian daily:append content="- [ ] 待办项"` |
| **3. AI 收件箱自动分拣员 ** | **痛点**:平时用 Web Clipper 随手剪藏的网页堆积在 Inbox 文件夹,变成“赛博垃圾场”。<br>**方案**:利用 n8n 建立定时任务,让大模型批量阅读 Inbox 里的文件。理解内容后,通过 CLI 规范化注入 YAML 属性如作者、分类最后安全地将文件重命名并移动到对应的归档文件夹。CLI 会自动更新全库的双链,绝不断链。 | `obsidian files folder="Inbox"`<br>`obsidian read file="未命名"`<br>`obsidian property:set name="category" value="AI"`<br>`obsidian move file="旧名" to="新路径"` |
| **4. 绝对隐私的本地 RAG 对话助理** | **痛点**搭建向量数据库Chroma/Milvus太繁琐且每次笔记更新都要重新 Embedding向量化。<br>**方案**:在本地运行 Claude Code 或本地大模型,赋予其 CLI 执行权限。AI 会根据你的提问,自主使用带有上下文的全局搜索指令,并通过提取反向链接顺藤摸瓜,构建准确的背景知识库后再回答,完全零配置。 | `obsidian search:context query="关键词"`<br>`obsidian backlinks file="检索到的文件"`<br>`obsidian read file="目标笔记"` |
| **5. 跨平台数据库级联录入** | **痛点**:外部数据(如记账、习惯打卡)很难干净地录入到 Obsidian 的表格或 Dataview 中。<br>**方案**:结合 Obsidian 1.12 最新的 Bases数据库功能。通过 n8n 接收外部 Webhook比如银行消费短信直接让 CLI 在指定的 Base 文件中创建一条新记录,并严格按数据类型(数字、日期)注入字段。 | `obsidian base:create file="财务库" name="打车"`<br>`obsidian property:set type="number" value="30"` |
| **6. 历史知识自动唤醒与破冰** | **痛点**:记录了大量笔记但从不回顾,知识变成死水。<br>**方案**:每天早晨执行一个自动化脚本,利用 CLI 提取一篇早于 1 年前的随机笔记,交给 AI 提炼核心观点,并与你最近一周关注的标签(如 `#Agent`)进行强行跨界联想,将联想结果作为“每日思考”追加到今天日记中。 | `obsidian random:read folder="卡片盒"`<br>`obsidian tags sort=count limit=5`<br>`obsidian daily:prepend content="AI的跨界联想"` |
| **7. 批量元数据重构与清洗** | **痛点**:笔记库用久了,属性极其混乱(比如状态标签混用了 `doing``in-progress``进行中`),导致 Dataview 列表报错。<br>**方案**:让 AI 脚本遍历你的核心文件夹,读取现有的属性值,统一转换为标准格式,然后用 CLI 进行批量覆写。这种方式强制符合 YAML 语法,绝不会多一个空格或少一个引号。 | `obsidian properties`<br>`obsidian property:read name="status"`<br>`obsidian property:set name="status" value="标准值"` |