Obsidian 是当下最热门的本地知识管理工具,但习惯了终端的人总觉得在 GUI 里点来点去不够爽。Obsidian CLI 正好填补了这个空白 —— 让你用命令行就能操作知识库。

安装

1
npm install -g obsidian-cli

或者用 npx 直接运行:

1
npx obsidian-cli <command>

配置 Vault

第一次使用前需要指定 Vault 路径:

1
obsidian-cli config set vault /path/to/your/vault

支持多个 Vault,通过 --vault 参数切换:

1
obsidian-cli --vault /another/vault note create "想法"

常用命令

创建笔记

1
2
3
4
5
6
7
8
# 创建新笔记
obsidian-cli note create "待办事项"

# 在指定文件夹创建
obsidian-cli note create "项目/需求文档"

# 直接写入内容
obsidian-cli note create "灵感" --content "这个点子不错..."

搜索笔记

1
2
3
4
5
6
7
8
# 全文搜索
obsidian-cli search "关键词"

# 只搜标题
obsidian-cli search --title-only "会议"

# 输出为 JSON 方便脚本处理
obsidian-cli search "TODO" --json

打开笔记

1
2
3
4
5
# 在 Obsidian 中打开
obsidian-cli open "日记/2026-02-11"

# 用系统默认编辑器打开
obsidian-cli open "draft.md" --external

列出笔记

1
2
3
4
5
6
7
8
# 列出所有笔记
obsidian-cli list

# 列出特定文件夹
obsidian-cli list Daily

# 显示最近修改的
obsidian-cli list --recent 10

实际工作流

我自己常用的几个场景:

快速记录想法

1
2
3
4
5
6
# 绑定 alias 后更方便
alias on="obsidian-cli note create"
on "闪念/$(date +%Y%m%d-%H%M)" --content "$*"

# 使用
on "这个API设计有问题"

每日日记

1
2
3
# 创建今日日记
obsidian-cli note create "Daily/$(date +%Y-%m-%d)" \
--template "日记模板"

配合 fzf 交互式搜索

1
2
3
4
obsidian-cli search "" --json | \
jq -r '.[].path' | \
fzf --preview 'cat {}' | \
xargs -I {} obsidian-cli open {}

与其他工具集成

Alfred/Raycast 快速创建

制作一个脚本:

1
2
3
#!/bin/bash
query=$1
obsidian-cli note create "Inbox/$query" --content "# $query\n\n"

Git 提交后自动记录

1
2
3
4
# post-commit hook
git log -1 --pretty=format:"%h %s" | \
xargs -I {} obsidian-cli note create \
"Git/$(date +%Y%m%d)" --content "- {}"

定时任务抓取网页

1
2
3
4
5
# 每天抓取 HN 热门
curl -s https://news.ycombinator.com/rss | \
obsidian-cli note create \
"Reading/HN-$(date +%Y%m%d)" \
--content "$(cat)"

局限与替代

Obsidian CLI 目前功能还比较基础,如果你需要更强大的操作,可以考虑:

  • obsidian-export:导出笔记为 Markdown
  • obsidian-vault-parser:用 Python 解析 Vault
  • 直接操作文件:Obsidian 本质是本地 Markdown 文件,直接 echo "内容" >> 笔记.md 也行

总结

Obsidian CLI 的价值在于把知识库融入命令行工作流。对于习惯终端的人来说,不用切换窗口就能记录想法,这种流畅感是 GUI 给不了的。

如果你每天在终端和 Obsidian 之间来回切换,试试这个工具,省下的时间够多写几行代码。


参考