Obsidian CLI Skill:用命令行读写 vault 与调试插件主题

前言

管理 Obsidian vault 时,很多动作是重复的:建一篇笔记、往日记里追加一行任务、按状态改属性、查某篇笔记的反向链接。这些动作都能在图形界面里点出来,但点一遍和敲一条命令的成本不一样,批量做的时候差距更大。插件和主题开发更是如此:改完代码要重载、看报错、截图、查 DOM,来回在编辑器和 Obsidian 之间切换。

这个 Skill 把这类操作统一到命令行。它不自己造一套接口,而是调用 Obsidian 自带的 obsidian CLI,并把参数写法、文件定位规则、插件调试流程写成 Agent 能直接照做的说明。

这是什么

一句话定位:把 Obsidian 官方 CLI 的操作方式整理成 Agent Skill,让 Agent 能读写和管理 vault 内容,也能开发调试插件与主题。

出品方:kepano(Obsidian 官方团队)维护的开源仓库 kepano/obsidian-skills,本 Skill 是仓库里的 obsidian-cli,版本 1.0.0。SkillHub 上发布者是 user_2bd73b3a,坐标 @user_2bd73b3a/obsidian-cli-kepano-user-2bd73b3a,分类 knowledge-management,来源 community,无需 API Key。

解决什么问题:Agent 想要操作 vault 时,默认只能读写文件,不知道 obsidian 这个命令存在、不知道参数怎么写、不知道哪些操作需要 Obsidian 处于运行状态。

核心能力

分两类,都来自 Skill 的 description 与 SKILL.md 正文。

vault 内容操作:

  • 读取、创建、追加笔记
  • 搜索 vault 内容
  • 管理任务(todo / done,按日记维度)
  • 读写笔记属性(properties)
  • 列标签并按使用次数排序
  • 查反向链接
  • 读写每日笔记

插件与主题开发:

  • 重载插件以加载改动
  • 运行 JavaScript(在应用上下文里 eval)
  • 捕获运行期错误
  • 截图
  • 检查 DOM 与 CSS 值
  • 切换移动端模拟
  • CDP 与 debugger 相关控制

命令约定

这部分是动手前必须知道的,否则参数会写错。

参数用 = 传值,带空格的值要加引号:

obsidian create name="My Note" content="Hello world"

开关(flag)不带值:

obsidian create name="My Note" silent overwrite

多行内容用 \n 表示换行,\t 表示制表符。

文件定位有两种方式:file=<name> 按 wikilink 规则解析,只写名字,不用路径和扩展名;path=<path> 写从 vault 根目录起的精确路径,例如 folder/note.md。两条都不给时,命令作用于当前活动文件。

vault 定位:默认作用于最近聚焦的那个 vault,用 vault=<name> 作为第一个参数可指定:

obsidian vault="My Vault" search query="test"

常用修饰:任意命令加 --copy 把输出复制到剪贴板;加 silent 防止文件被打开;列表类命令加 total 只拿计数。

完整命令列表以 obsidian help 为准,它会随版本更新,官方文档在 https://help.obsidian.md/cli 。

安装与启用

这个 Skill 遵循通用 Agent Skills 规范,Claude Code、Codex、Open Code 都能加载,但安装路径不一样。

Claude Code

三种方式,任选一种。

走 Claude Code 插件市场:

/plugin marketplace add kepano/obsidian-skills
/plugin install obsidian@obsidian-skills

走 npx skills:

npx skills add git@github.com:kepano/obsidian-skills.git

偏好 https 的话用:

npx skills add https://github.com/kepano/obsidian-skills

手动安装:把仓库内容放进 Obsidian vault(或你正在配合 Claude Code 使用的目录)下的 .claude 文件夹。参考 Claude 官方 Agent Skills 文档。

Codex

把仓库里的 skills/ 目录复制到 Codex 的 skills 路径,通常是 ~/.codex/skills。规范格式见 https://agentskills.io/specification 。

OpenCode

这里有个坑:必须整仓克隆,不能只复制内层 skills/ 文件夹,否则目录结构不对。

git clone https://github.com/kepano/obsidian-skills.git ~/.opencode/skills/obsidian-skills

目标是 ~/.opencode/skills/obsidian-skills/skills/<skill-name>/SKILL.md。OpenCode 会自动发现 ~/.opencode/skills/ 下所有 SKILL.md,不需要改 opencode.json 或任何配置文件,重启后生效。

Cursor

仓库 README 未给出 Cursor 的安装路径或配置方式,这里不做推测。按 Agent Skills 规范,把 SKILL.md 放到 Cursor 能识别的 skills 目录是常规做法,但具体路径需要自己查证。

典型用法

下面这些命令可以直接在 shell 里跑,也适合直接交给 Agent 执行。

读一篇笔记:

obsidian read file="My Note"

按模板新建笔记,不打开窗口:

obsidian create name="New Note" content="# Hello" template="Template" silent

往已有笔记追加内容:

obsidian append file="My Note" content="New line"

搜索 vault,只取前 10 条:

obsidian search query="search term" limit=10

每日笔记读写:

obsidian daily:read
obsidian daily:append content="- [ ] New task"

属性与任务:

obsidian property:set name="status" value="done" file="My Note"
obsidian tasks daily todo
obsidian tags sort=count counts
obsidian backlinks file="My Note"

插件与主题调试流程

改完插件或主题代码后,按这个顺序走,能少绕路。

第一步,重载插件让改动生效:

obsidian plugin:reload id=my-plugin

第二步,查运行期错误。有报错就修完回到第一步:

obsidian dev:errors

第三步,视觉确认。截图或直接看 DOM:

obsidian dev:screenshot path=screenshot.png
obsidian dev:dom selector=".workspace-leaf" text

第四步,翻控制台输出,排查 warning 和异常日志:

obsidian dev:console level=error

另外几个开发期常用命令:在应用上下文里跑 JavaScript:

obsidian eval code="app.vault.getFiles().length"

查某个元素的 CSS 值:

obsidian dev:css selector=".workspace-leaf" prop=background-color

开启移动端模拟:

obsidian dev:mobile on

更多开发命令(含 CDP 和 debugger 控制)用 obsidian help 查看。

适用场景与注意

适合这几类人:

  • vault 里笔记、任务、属性数量已经多到手动点不划算,希望用脚本或 Agent 批量处理的人
  • 需要在 CI 或本地脚本里对 vault 做检索、统计、批量改写的人
  • 正在写 Obsidian 插件或主题,想要一条可复现的重载—查错—验证流程的人

几个限制和坑:

  • 依赖 Obsidian 处于运行状态。Skill 明确写了 requires Obsidian to be open,CLI 是和已打开的实例通信,不是直接读写 vault 目录。
  • 默认作用于最近聚焦的 vault。多 vault 环境下不写 vault=<name> 容易操作错对象。
  • file= 走 wikilink 解析规则,同名笔记或同名附件场景下行为需要自己确认,要求精确命中时用 path=。
  • 命令列表以 obsidian help 和官方文档为准,Skill 只覆盖常用命令,不保证列出全部。
  • 写类命令有副作用(会改 vault 里的文件),跑批量前建议先在小范围验证,并确认加上了 silent,避免弹出窗口打断流程。

结尾

这个 Skill 的价值不在发明新能力,而在把 Obsidian 官方 CLI 的参数约定和插件调试流程固化下来,让 Agent 不再靠猜。命令本身是稳定的,会变动的是命令全集,所以遇到没见过的子命令时回 obsidian help 查。

SkillHub 地址:https://www.skillhub.cn/skills/user_2bd73b3a/obsidian-cli-kepano-user-2bd73b3a (接口地址 https://api.skillhub.cn/user_2bd73b3a/obsidian-cli-kepano-user-2bd73b3a )。上游仓库:https://github.com/kepano/obsidian-skills ,其中本 Skill 在 skills/obsidian-cli/SKILL.md。

截至抓取时,SkillHub 页面显示评分 100000,下载 1468,安装 0。评分和下载数会变动,以页面实时数据为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye