关于 wiki-cli
wiki-cli 是用于 Obsidian 知识库的只读传输技能,可检测官方 Obsidian CLI 是否可用,并支持读取和搜索;CLI 不可用时可改用文件系统。
主要功能
- 01检测 CLI 可用性
- 02通过 Obsidian CLI 读取笔记
- 03搜索知识库内容
- 04文件系统与 rg 回退
- 05限制知识库路径范围
适用场景
- 01读取前检查 CLI 是否就绪
- 02读取所选知识库中的笔记
- 03CLI 可用时搜索内容
- 04回退到文件读取和 rg 搜索
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ agricidaniel/ claude-obsidian --skill wiki-cli安装后在 Claude Code 中输入/wiki-cli确认已加载。
详细介绍
Obsidian CLI 读取传输方式
仅在检测传输方式以及读取或搜索选定的库时使用此技能。
官方可执行文件为 obsidian;仅凭二进制文件存在并不能证明它可用。
根据此技能自身的位置解析已安装产品的根目录,而不是根据库或当前工作目录解析:
PRODUCT_ROOT=/absolute/path/to/installed/claude-obsidian
DETECT_TRANSPORT="$PRODUCT_ROOT/scripts/detect-transport.sh"
test -f "$DETECT_TRANSPORT"
此文件中的每个 ../wiki/references/ 链接都以相同方式解析:相对于 $PRODUCT_ROOT 下此技能自身所在的目录,而绝不相对于所选库的 wiki/ 目录。
安全检测
在不持久化主机状态的情况下进行探测:
bash "$DETECT_TRANSPORT" --peek --vault "$VAULT"
以 available.cli.usable 为准,而不仅仅是 present 或退出状态。即使 CLI 受支持,也可能不可用,因为 Obsidian 应用未运行、命令行访问已禁用,或其响应出错。可移植的备用方案是读取文件系统。
仅当用户或设置工作流要求生成传输快照时,才持久化更新后的 .vault-meta/transport.json:
bash "$DETECT_TRANSPORT" --force --vault "$VAULT"
该文件属于派生的运行时配置,而非知识内容。保留检测器记录的有效 manual_override。
读取与搜索
从所选库中运行官方 CLI 命令,以便 Obsidian 解析正确的工作区。依赖可选命令前,先用已安装的 CLI 确认其支持的语法。典型的只读形式如下:
(cd "$VAULT" && obsidian read path="$NOTE")
(cd "$VAULT" && obsidian search query="$QUERY")
仅当检测器报告 CLI 已就绪时,才使用只读命令获取反向链接、标签或 Bases 结果。否则,直接读取 $VAULT 下的文件,并使用 rg 搜索。拒绝绝对路径的笔记参数、路径遍历、符号链接,或解析后落在所选库之外的路径。
修改边界
不要使用 CLI 的 create、write、append、property-set、daily-append、move、rename 或 delete 命令。不要用直接写入文件系统替代这些命令。任何知识或配置变更都必须通过可移植核心,以一个经过审核的事务来表达;请参阅操作事务。
传输方式的选择绝不会改变修改语义。CLI 是可选的读取接口,不是锁管理器、事务引擎或 Git 检查点机制。
检查点
确认实际能力,考虑最简单的读取传输方式,验证每个解析后的路径都位于库内,并在 CLI 未就绪时接受使用文件系统作为备用方案。