mcpField
W
wiki-cli

wiki-cli

github.com/agricidaniel生产力15.9k296 次安装6 天前更新
代码仓库

关于 wiki-cli

wiki-cli 是用于 Obsidian 知识库的只读传输技能,可检测官方 Obsidian CLI 是否可用,并支持读取和搜索;CLI 不可用时可改用文件系统。

主要功能

  1. 01检测 CLI 可用性
  2. 02通过 Obsidian CLI 读取笔记
  3. 03搜索知识库内容
  4. 04文件系统与 rg 回退
  5. 05限制知识库路径范围

适用场景

  1. 01读取前检查 CLI 是否就绪
  2. 02读取所选知识库中的笔记
  3. 03CLI 可用时搜索内容
  4. 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 未就绪时接受使用文件系统作为备用方案。

评论

支持 Markdown