命令行工具

Obsidian CLI
从终端掌控
你的知识库

一个功能完整的命令行界面,让你在终端中控制 Obsidian。支持脚本自动化、外部工具集成,以及专为开发者设计的调试命令集。

1.12+ 最低版本
100+ 命令数量
TUI 交互界面
~/vault — obsidian
# 打开今日日记
$ obsidian daily
✓ Opened: 2026-03-12.md
# 添加任务到日记
$ obsidian daily:append content="- [ ] 完成项目报告"
✓ Content appended
# 搜索知识库
$ obsidian search query="会议记录"
meetings/2026-03-10.md
meetings/2026-03-05.md
projects/weekly.md
$

为什么选择 Obsidian CLI

将 Obsidian 的全部能力带到终端,为自动化工作流提供完整支持

📄

完整文件操作

创建、读取、编辑、移动、重命名和删除文件。支持模板创建,自动更新内部链接,与 Obsidian 原生功能完全一致。

🔍

强大搜索能力

支持全文搜索和上下文搜索,返回 grep 风格的路径:行号:内容输出。支持大小写敏感、文件夹范围限定和结果数量限制。

👀

交互式 TUI

完整的终端用户界面,支持命令自动补全、历史记录、反向搜索(Ctrl+R)。无需重复输入 obsidian 前缀,提升输入效率。

🛠

开发者工具集

内置 Electron DevTools、Chrome DevTools Protocol、JavaScript 执行、截图、DOM 查询和 CSS 检查。让插件和主题开发更加高效。

🔄

同步与历史版本

完整支持 Obsidian Sync 命令,查看版本历史、比较差异、恢复文件。同时支持本地 File Recovery 版本管理。

脚本与自动化

天然支持 Shell 脚本集成,可与 cron、Make、CI/CD 流水线等工具无缝配合。使用 --copy 标志将输出直接复制到剪贴板。

安装 Obsidian CLI

三步完成配置,开启命令行知识库管理之旅

1

升级 Obsidian 安装程序

升级到最新安装程序版本(1.12.4 或更高),以及最新的 Early Access 版本(1.12.x)。Obsidian CLI 需要此版本才能运行。

2

在 Obsidian 中启用 CLI

打开 设置 → 通用,找到"命令行界面"选项并启用,然后按照提示完成 CLI 注册。

3

重启终端

注册完成后重启终端,使 PATH 环境变量更新生效。随后即可在任意目录使用 obsidian 命令。

⚠️
注意:Obsidian CLI 需要 Obsidian 桌面应用正在运行。如果应用未启动,执行的第一条命令会自动启动 Obsidian。
bash — 验证安装
# 查看版本信息
obsidian version

# 查看所有可用命令
obsidian help

# 进入 TUI 交互模式
obsidian

# 指定目标 vault(vault 名称包含空格时加引号)
obsidian vault="My Notes" daily

# 将搜索结果复制到剪贴板
obsidian search query="TODO" --copy
macOS — 手动配置 PATH
# 检查 ~/.zprofile 是否包含以下行
cat ~/.zprofile

# 如果缺失,手动添加
echo 'export PATH="$PATH:/Applications/Obsidian.app/Contents/MacOS"' >> ~/.zprofile

# Fish shell 用户
fish_add_path /Applications/Obsidian.app/Contents/MacOS
Linux — 创建符号链接
# 系统级安装(需要 sudo)
sudo ln -s /path/to/obsidian /usr/local/bin/obsidian

# 验证符号链接
ls -l /usr/local/bin/obsidian

# Snap 包:设置配置目录
export XDG_CONFIG_HOME="$HOME/snap/obsidian/current/.config"

完整命令列表

按功能分类的全部可用命令,每个参数均有详细说明

文件操作
create
创建或覆盖文件。
name=<name> path=<path> content=<text> template=<name>
标志:overwrite open newtab
read
读取文件内容(默认为当前活动文件)。
file=<name> path=<path>
append
追加内容到文件末尾。
content=<text> file=<name> path=<path>
标志:inline(不加换行)
prepend
在 frontmatter 后插入内容。
content=<text> file=<name> path=<path>
标志:inline
move
移动文件,自动更新内部链接。
to=<path> file=<name> path=<path>
rename
重命名文件,自动保留扩展名和更新链接。
name=<name> file=<name> path=<path>
delete
删除文件(默认移至回收站)。
file=<name> path=<path>
标志:permanent(永久删除)
open
在 Obsidian 中打开文件。
file=<name> path=<path>
标志:newtab
文件夹与链接
files
列出 vault 中的文件。
folder=<path> ext=<extension>
标志:total
folders
列出 vault 中的文件夹。
folder=<path> 标志:total
backlinks
列出指向某文件的反向链接。
file=<name> path=<path>
标志:counts total format=json|tsv|csv
links
列出文件的出站链接。
file=<name> path=<path> 标志:total
orphans
列出没有任何入站链接的孤立文件。标志:total
deadends
列出没有任何出站链接的死胡同文件。标志:total
unresolved
列出 vault 中所有未解析链接。
标志:total counts verbose
日记命令
daily
打开今日日记(不存在则自动创建)。
paneType=tab|split|window
daily:path
获取今日日记路径(即使文件不存在也会返回预期路径)。
daily:read
读取今日日记内容。
daily:append
追加内容到今日日记。
content=<text> paneType=tab|split|window
标志:inline open
daily:prepend
在今日日记开头插入内容。
content=<text> paneType=tab|split|window
标志:inline open
插件管理
plugins
列出已安装的插件。
filter=core|community 标志:versions format=json|tsv|csv
plugins:enabled
列出已启用的插件。
filter=core|community 标志:versions
plugin:enable
启用插件。
id=<plugin-id> filter=core|community
plugin:disable
禁用插件。
id=<plugin-id>
plugin:install
安装社区插件。
id=<plugin-id> 标志:enable(安装后立即启用)
plugin:uninstall
卸载社区插件。
id=<plugin-id>
plugin:reload
重载插件(供开发者调试使用)。
id=<plugin-id>
主题与样式
themes
列出已安装主题。标志:versions
theme:set
设置活动主题。name=<name>(空值恢复默认)
theme:install
安装社区主题。name=<name> 标志:enable
snippet:enable
启用 CSS 代码片段。name=<name>
snippet:disable
禁用 CSS 代码片段。name=<name>
Obsidian Sync
sync
暂停或恢复同步。标志:on off
sync:status
显示同步状态和存储用量。
sync:history
列出文件的 Sync 版本历史。
file=<name> path=<path> 标志:total
sync:read
读取指定 Sync 版本内容。
version=<n> file=<name>
sync:restore
恢复到指定 Sync 版本。
version=<n> file=<name>
sync:deleted
列出 Sync 中已删除的文件。标志:total
本地文件历史(File Recovery)
diff
列出或比较版本(版本号从新到旧排序)。
file=<name> from=<n> to=<n> filter=local|sync
history:read
读取本地历史某版本内容。
file=<name> version=<n>(默认 1)
history:restore
恢复本地历史版本。
version=<n> file=<name>
任务管理
tasks
列出 vault 中的任务。
file=<name> path=<path> status="<char>"
标志:total done todo verbose active daily
format=json|tsv|csv
task
查看或更新单个任务状态。
ref=<path:line>file=<name> + line=<n>
status="<char>" 标志:toggle done todo daily
💡
任务状态字符说明:空格 [ ] 表示待办,x 表示完成,- 表示取消,? 表示疑问。使用引号包裹特殊字符:tasks 'status=?'
开发者调试命令
devtools
切换 Electron 开发者工具(DevTools)面板。
eval
在 Obsidian 应用控制台执行 JavaScript 并返回结果。
code=<javascript>
dev:screenshot
截取应用截图(返回 base64 PNG)。
path=<filename>(保存到文件)
dev:console
显示已捕获的控制台消息。
limit=<n>(默认 50)
level=log|warn|error|info|debug 标志:clear
dev:errors
显示捕获到的 JavaScript 错误。标志:clear(清空缓冲区)
dev:css
检查带源位置的 CSS 规则。
selector=<css> prop=<name>(过滤属性)
dev:dom
查询 DOM 元素。
selector=<css> attr=<name> css=<prop>
标志:total text inner all
dev:cdp
执行 Chrome DevTools Protocol 命令。
method=<CDP.method> params=<json>
dev:mobile
切换移动端模拟。标志:on off
dev:debug
附加/分离 Chrome DevTools Protocol 调试器。标志:on off
通用命令
help
显示所有可用命令列表,或指定命令的详细帮助。<command>
version
显示 Obsidian 当前版本号。
reload
重新加载 Obsidian 应用窗口。
restart
重启 Obsidian 应用程序。
工作区与标签页
workspace
显示当前工作区树形结构。标志:ids(包含元素 ID)
workspaces
列出所有已保存的工作区。标志:total
workspace:save
保存当前布局为工作区。name=<name>
workspace:load
加载已保存的工作区。name=<name>
tabs
列出当前所有打开的标签页。标志:ids
recents
列出最近打开的文件。标志:total
vault
显示当前 vault 信息。info=name|path|files|folders|size
vaults
列出所有已知 vault。标志:total verbose(包含路径)

实战场景演示

从日常笔记到插件开发,覆盖典型使用场景

📋
日常笔记工作流
# 打开今日日记
obsidian daily
 
# 添加待办事项
obsidian daily:append content="- [ ] 买菜"
 
# 查看今日所有任务
obsidian tasks daily
 
# 标记第3行任务完成
obsidian task daily line=3 done
 
# 从模板创建新笔记
obsidian create name="巴黎之旅" template=Travel
🔎
搜索与整理
# 搜索会议记录
obsidian search query="会议记录"
 
# 带上下文的精确搜索,结果复制到剪贴板
obsidian search:context query="TODO" --copy
 
# 列出所有带数量的标签
obsidian tags counts
 
# 查找所有孤立笔记
obsidian orphans
 
# 比较文件的两个历史版本
obsidian diff file=README from=2 to=1
🛠
插件与主题开发
# 打开开发者工具
obsidian devtools
 
# 重载正在开发的插件
obsidian plugin:reload id=my-plugin
 
# 执行 JavaScript,查询 vault 文件数
obsidian eval code="app.vault.getFiles().length"
 
# 截图保存为文件
obsidian dev:screenshot path=screenshot.png
 
# 检查 CSS 样式来源
obsidian dev:css selector=".workspace-leaf"
脚本自动化
#!/bin/bash
# 每日工作流自动化脚本
 
# 创建多行内容的笔记
obsidian create name=Note content="# 标题\n\n正文内容"
 
# 指定 vault 执行命令
obsidian vault="工作笔记" daily:append content="- 已完成每日报告"
 
# 获取未完成任务数
obsidian tasks todo total
 
# 随机打开一篇笔记复习
obsidian random:read folder=Archives

终端界面键盘操作

在交互式终端界面(TUI)中,使用这些快捷键提升操作效率

→ 光标移动
向左移动
/Ctrl+B
向右移动(行末接受补全)
/Ctrl+F
跳至行首
Ctrl+A
跳至行尾
Ctrl+E
向后跳一个单词
Alt+B
向前跳一个单词
Alt+F
✎ 编辑操作
删除至行首
Ctrl+U
删除至行尾
Ctrl+K
删除前一个单词
Ctrl+W/Alt+BS
💡 自动补全
进入补全模式 / 接受选中项
Tab
退出补全模式
Shift+Tab
进入补全模式(空输入)
接受第一个补全建议
🕐 历史记录
上一条历史
/Ctrl+P
下一条历史
/Ctrl+N
反向搜索历史(再按循环)
Ctrl+R
⚙ 其他操作
执行命令 / 接受建议
Enter
撤销补全 / 退出模式 / 清空输入
Esc
清屏
Ctrl+L
退出 TUI
Ctrl+C/Ctrl+D

常见问题解决

针对不同操作系统的常见安装和配置问题

🔎
通用检查清单: 确保安装程序版本为 1.12.4 或更高;注册 CLI 后重启终端;确保 Obsidian 应用正在运行;CLI 会自动连接到正在运行的 Obsidian 实例。
🎭
Windows
需要 Obsidian 1.12.4+ 安装程序。Windows 使用终端重定向器将 Obsidian 连接到 stdin/stdout,因为 Obsidian 作为 GUI 应用默认与终端输出不兼容。
安装 1.12.4+ 后,Obsidian.com 终端重定向器会自动添加到 Obsidian.exe 所在目录。
macOS
CLI 注册通过修改 ~/.zprofile 来添加 PATH。如果配置缺失,手动添加:
export PATH="$PATH:/Applications/Obsidian.app/Contents/MacOS"
使用非默认 Shell?zsh 之外的 Shell 需手动配置:Bash 用户编辑 ~/.bash_profile,Fish 用户执行 fish_add_path /Applications/Obsidian.app/Contents/MacOS
🐧
Linux (AppImage)
注册时会在 /usr/local/bin/obsidian 创建符号链接(需要 sudo)。如果 sudo 失败,退而在 ~/.local/bin/obsidian 创建。
检查符号链接:ls -l /usr/local/bin/obsidian。手动创建:sudo ln -s /path/to/obsidian /usr/local/bin/obsidian
如果链接在 ~/.local/bin/,确保该目录在 PATH 中。在 ~/.bashrc~/.zshrc 添加:export PATH="$PATH:$HOME/.local/bin"
🐧
Linux (Snap / Flatpak)
Snap 包:~/.bashrc~/.zshrc 中设置:export XDG_CONFIG_HOME="$HOME/snap/obsidian/current/.config"
Flatpak 系统安装:
ln -s /var/lib/flatpak/exports/bin/md.obsidian.Obsidian ~/.local/bin/obsidian
Flatpak 用户安装:
ln -s ~/.local/share/flatpak/exports/bin/md.obsidian.Obsidian ~/.local/bin/obsidian