快速了解
它能做什么
让 DeepSeek Harness agent 通过文件系统操作本地 Obsidian vault。
本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。
Web Profile, Headless Profile, tui Profile
Verified by the author for dsh v0.1.0-rc.8 through v0.1.5-alpha.1
证据已验证
核对日期 2026/9/9 UTC 14:27
有代码证据的贡献
它为 DSH 增加什么
提供 12 个工具,用于在本地 Obsidian vault 中搜索、读取、写入、移动、移入回收站及管理 Markdown 笔记。
机制证据 ↗选择前先看
此 DSH bundle 挂载 12 个 obsidian_* 工具,可搜索、读取、写入、追加、移动笔记,查询反向链接,编辑 frontmatter、列出标签,并将笔记移入回收站。它直接使用 vault 文件系统,不需要 MCP server 或 OAuth。
适合谁
希望用 DeepSeek Harness agent 整理或更新本地 Obsidian vault 笔记的用户。
常见任务
- 搜索 vault 并读取匹配的 Markdown 笔记。
- 新建、追加、重命名或移动笔记,并更新 wikilink。
- 查看反向链接、标签和 YAML frontmatter 属性。
- 将不需要的笔记移入 vault 中可恢复的 .trash 目录。
权限与数据
直接处理所选本地 Obsidian vault 中的文件。
权限- 读取 vault 中的 Markdown 笔记及其 frontmatter。
- 新建、覆盖、追加、移动和重命名笔记。
- 将笔记移入 vault 的 .trash 目录。
- 启用且可用时,可使用 Obsidian CLI 修改属性。
- vault 路径来自显式 vaultPath,或从 obsidian.json 自动探测。
- 工具路径会被限制在 vault 根目录内。
- 搜索和列表默认排除 .obsidian、.git 和 .trash。
- 不需要 MCP server 或 OAuth。
- Obsidian CLI 仅用于可选的属性操作。
- 提供的证据未说明需要凭据。
局限
- 需要 DeepSeek Harness 和 Node.js 22.12.0 或更高版本。
- 提供的证据未实际执行安装或 vault 访问。
- 未审计 npm tarball 内容。
- 默认只搜索 Markdown 文件。
DSHub 已核对
- 已验证固定提交的 DSH bundle 结构。
- manifest 声明 Node.js >=22.12.0 及 DSH peer dependencies。
- README 声称作者已验证 dsh v0.1.0-rc.8 至 v0.1.5-alpha.1 的兼容性。
DSHub 未核对
- 未独立执行安装、运行行为或文件系统影响。
- 未审计 npm tarball 内容。
固定版本安装
安装 dsh-obsidian
这个Plugin Bundle没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。
维护者原文
项目 README
dsh-obsidian
把 DeepSeek Harness(dsh)连接到本地 Obsidian vault。因为一个 Obsidian vault 本质上就是磁盘上的一堆 Markdown 文件,所以你的 dsh agent 可以直接搜索、读取、写入、移动和删除(移入回收站)笔记——不需要 MCP server,也不需要 OAuth。
中文 | English
它能帮你做什么
装上 dsh-obsidian 后,你的 dsh agent 就能直接读写本地 Obsidian vault。插件会在启动时自动探测你的 vault(或读取你显式配置的路径),然后把 12 个 obsidian_* 工具挂载给 agent,覆盖搜索、读取、写入、追加、移动、删除和反链查询等日常操作。
特性
- 零依赖服务器 —— 直接读写 vault 文件系统,无需 Local REST API 社区插件,也无需常驻 MCP server。
- 默认安全 —— 删除只把笔记移入
.trash/(可逆)、路径无法越出 vault 根目录、绝不触碰.obsidian/。
工作原理
dsh agent 调用 obsidian_* 工具
│
▼
VaultAccess 接口
└─ FsAccess —— node:fs + 自研 frontmatter/wikilink 解析(默认,纯文件系统)
启动时插件按「显式 vaultPath 优先,否则从 obsidian.json 自动探测」解析 vault 根目录;useCli 开启且检测到 CLI 时,property:set/property:remove 委托给 CLI,其余操作始终走 FsAccess,任何 CLI 失败都会静默回退到 FsAccess。
安装
dsh plugin --profile web add dsh-obsidian
把 web 换成你运行 agent 所用的 profile(web、headless、tui 等)。
更新
重跑 add 即会拉取最新版(latest):
dsh plugin --profile web add dsh-obsidian
或锁定具体版本:
dsh plugin --profile web add dsh-obsidian@0.2.3
更新后重启 harness(dsh web)或刷新 Web UI;用 dsh plugin --profile web list 确认版本。
卸载
dsh plugin --profile web remove dsh-obsidian
配置
| 键 | 默认值 | 说明 |
|---|---|---|
vaultPath |
(自动探测) | vault 的绝对路径;留空则按平台从 obsidian.json 自动探测当前打开的 vault |
useCli |
false |
可用时把 property:set/property:remove 委托给 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 |
移动/重命名笔记(纯文件系统同步更新 [[链接]]) |
obsidian_delete |
把笔记移入 .trash/(可逆,绝不永久删除) |
obsidian_set_property |
设置或更新笔记的单个 frontmatter 属性(YAML) |
obsidian_delete_property |
删除笔记的某个 frontmatter 属性 |
obsidian_tags |
列出 vault 中所有标签及使用次数 |
所有工具的路径参数都相对于 vault 根目录(例如 Folder/Note.md)。
安全性
- 路径越界防护 —— 所有路径参数都会解析并校验必须落在 vault 根目录内,越界(
../或绝对路径逃逸)一律拒绝。 - 删除可逆 ——
obsidian_delete只把笔记移入 vault 的.trash/,绝不永久删除。 - 不碰
.obsidian/—— 搜索与列出默认排除.obsidian/、.git/、.trash/。 - 保护 frontmatter 与 wikilink —— 读取/写入不会破坏 YAML 属性和
[[链接]](除非任务明确要求改)。
环境要求
- DeepSeek Harness(
dsh) - Node.js ≥ 22.12.0
已完成对 dsh v0.1.5-alpha.1 的兼容验证(含 v0.1.3-alpha.2、v0.1.3-alpha.1、v0.1.2-rc.1、v0.1.2-alpha.5、v0.1.2-alpha.4、v0.1.2-alpha.3、v0.1.2-alpha.2、v0.1.2-alpha.1、v0.1.1-rc.2 与 v0.1.0-rc.8)。
开发
npm install
npm run build # tsdown → lib/
npm run typecheck # tsc --noEmit
npm test # vitest
更新日志
0.2.3
- 修复
dshv0.1.2-alpha.2/alpha.3 移除@deepseek-ai/dsh-tools的JsonValue转出后,插件源码无法 typecheck/build 的兼容性问题;保留对旧版 dsh 的兼容。
0.2.2
obsidian_tags与内联#标签提取支持中文等 Unicode 字符。obsidian_backlinks/obsidian_move按 Obsidian 规则唯一解析[[链接]]:同名笔记不再被误判,歧义链接不再被误改。obsidian_set_property/obsidian_delete_property编辑属性时保留原有 YAML 注释、锚点/别名与多行格式,不再整块重写。- 稳定性:
obsidian_move链接更新改为原子写;跨文件系统移动/删除自动回退;搜索在有/无 ripgrep 时结果一致。
许可证
MIT © 2026 MingZeng
有意识地管理
安装与管理
前置条件与目标 Profile
目标: Web Profile, Headless Profile, tui Profile
交付方式: Git Bundle — mingzeng21/dsh-obsidian#265d6d65f9508d691e177b6a19b3dd4f887c8eb8。
验证、更新与移除
显示生命周期命令
dsh plugin --profile web list兼容性与访问范围
DSH plugin; requires Node.js 22.12.0 or later: Verified by the author for dsh v0.1.0-rc.8 through v0.1.5-alpha.1。
风险事实
证据与编辑审查Manifest、Bundle patch、分发与新鲜度
不可变证据
审查状态与源码活动
MIT 许可的 DSH 插件 bundle,具有固定 Git 来源和已文档化的本地 vault 功能。
AI 审查于 2026/9/10 UTC 11:36。GitHub 事实核对日期: 2026/9/10 UTC 11:36。
自当前证据基线以来,没有记录到重要源码变化。