把 dsh 连接到本地 Obsidian vault:通过 `obsidian_*` 工具搜索、读取、写入、移动与回收笔记。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:mingzeng21/dsh-obsidian
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
把 DeepSeek Harness(dsh)连接到本地 Obsidian vault。因为一个 Obsidian vault 本质上就是磁盘上的一堆 Markdown 文件,所以你的 dsh agent 可以直接搜索、读取、写入、移动和删除(移入回收站)笔记——不需要 MCP server,也不需要 OAuth。
中文 | English
它能帮你做什么
装上 dsh-obsidian 后,你的 dsh agent 就能直接读写本地 Obsidian vault。插件会在启动时自动探测你的 vault(或读取你显式配置的路径),然后把 9 个 obsidian_* 工具挂载给 agent,覆盖搜索、读取、写入、追加、移动、删除和反链查询等日常操作。
特性
- 零依赖服务器 —— 直接读写 vault 文件系统,无需 Local REST API 社区插件,也无需常驻 MCP server。
- 可选 Obsidian 原生能力 —— 当
obsidianCLI 可用时,反链查询与移动会自动委托给它(移动时同步更新[[链接]]);否则全部回退到纯文件系统实现。 - 默认安全 —— 删除只把笔记移入
.trash/(可逆)、路径无法越出 vault 根目录、绝不触碰.obsidian/。
工作原理
dsh agent 调用 obsidian_* 工具
│
▼
VaultAccess 接口
├─ FsAccess —— node:fs + 自研 frontmatter/wikilink 解析(永远可用)
└─ CliAccess —— 检测到 obsidian CLI 时,反链/移动委托给它(其余走 fs)
启动时插件按「显式 vaultPath 优先,否则从 obsidian.json 自动探测」解析 vault 根目录;useCli 开启且检测到 CLI 时启用 CliAccess,任何 CLI 失败都会静默回退到 FsAccess。
安装
dsh plugin --profile web add dsh-obsidian
把 web 换成你运行 agent 所用的 profile(web、headless、tui 等)。
卸载
dsh plugin --profile web remove dsh-obsidian
配置
| 键 | 默认值 | 说明 |
|---|---|---|
vaultPath |
(自动探测) | vault 的绝对路径;留空则按平台从 obsidian.json 自动探测当前打开的 vault |
useCli |
true |
obsidian CLI 可用时,反链/移动委托给它 |
excludeDirs |
[".obsidian", ".git", ".trash"] |
搜索/列出时排除的目录 |
工具
| 工具 | 作用 |
|---|---|
obsidian_list |
列出 vault 里的笔记(可按子目录过滤、限制条数) |
obsidian_search |
全文检索,返回匹配行 + 上下文(大小写不敏感、只搜 .md) |
obsidian_read |
读取一篇笔记(正文 + 解析后的 frontmatter) |
obsidian_frontmatter |
只读笔记的 YAML 属性 |
obsidian_backlinks |
找出链接到某篇笔记的笔记([[wikilink]]) |
obsidian_write |
新建或覆盖一篇笔记(父目录不存在时自动创建) |
obsidian_append |
向笔记末尾追加内容 |
obsidian_move |
移动/重命名笔记(CLI 可用时同步更新链接) |
obsidian_delete |
把笔记移入 .trash/(可逆,绝不永久删除) |
所有工具的路径参数都相对于 vault 根目录(例如 TradeArena/部署流程.md)。
安全性
- 路径越界防护 —— 所有路径参数都会解析并校验必须落在 vault 根目录内,越界(
../或绝对路径逃逸)一律拒绝。 - 删除可逆 ——
obsidian_delete只把笔记移入 vault 的.trash/,绝不永久删除。 - 不碰
.obsidian/—— 搜索与列出默认排除.obsidian/、.git/、.trash/。 - 保护 frontmatter 与 wikilink —— 读取/写入不会破坏 YAML 属性和
[[链接]](除非任务明确要求改)。
环境要求
- DeepSeek Harness(
dsh) - Node.js ≥ 22.12.0
- Obsidian CLI(可选,用于链接感知移动与 CLI 反链查询)
开发
npm install
npm run build # tsdown → lib/
npm run typecheck # tsc --noEmit
npm test # vitest
许可证
MIT © 2026 MingZeng
链接
同类插件
liustack/modlens★ 2073
为纯文本模型架起视觉桥梁:粘贴图片,输出结构化 JSON 证据(OCR、版面、语义)。
Anionex/dsh-vision-toolkit★ 467
让纯文本模型更好地做视觉任务:带意图的图片问答、长截图 OCR、UI 还原等。
superdesigndev/treg★ 423
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
ysr666/dsh-vision-router★ 240
为纯文本 Agent 提供视觉能力:内置免 Key 视觉链 + 像素级视觉工具(看图问答、定位、裁剪、像素对比、取色、OCR、矢量化、抠图、截图);粘贴图片即可用。
Lum1104/dsh-browser★ 177
Chrome 侧边栏扩展,让 DSH 直接操控你的浏览器,无需视觉能力。
zhaoolee/notes★ 141
将 DSH 对话导出为锤子便签风格 PNG,或在配置的账号工作区中新建和更新 Markdown 便签。