🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Obsidian 笔记读写 therain2020/dsh-obsidian-sync

DeepSeek Harness
therain202075 天前有提交已提供中文文档扫描:高危

让 agent 安全读写你的 Obsidian 仓库笔记

27.3/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add therain2020/dsh-obsidian-sync
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · tool
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
数据截至 2026/09/27·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 75 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0
🔴 扫描:高危尚无人工评估

静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。

安装时即执行脚本可执行外部命令读写/删除本地文件
查看扫描证据(共 5 处,展示前 5 条)
  • 执行外部命令固定命令
    scripts/install-lefthook.mjs:11
    const inGitRepository = spawnSync('git', ['rev-parse', '--git-dir'], { stdio: 'ignore' }).status === 0
  • 执行外部命令固定命令
    scripts/install-lefthook.mjs:17
    const result = spawnSync('lefthook', ['install'], { stdio: 'inherit', shell: process.platform === 'win32' })
  • 读取本地文件
    scripts/trace.ts:63
    if (!existsSync(typesDir)) return []
  • 读取本地文件
    scripts/trace.ts:64
    return readdirSync(typesDir)
  • 读取本地文件
    scripts/trace.ts:88
    const manifest = JSON.parse(readFileSync(manifestPath, 'utf8')) as {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-attachment@deepseek-ai/dsh-brand@deepseek-ai/dsh-timeout@deepseek-ai/dsh-typert-protocol
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 读写markdown笔记
  • 路径穿越防护

给 DeepSeek Harness 用的 Obsidian 仓库工具:读写 markdown 笔记,带路径穿越防护

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-obsidian-sync 一个 DeepSeek Harness 插件,为 dsh agent 提供对本地 Obsidian 仓库的读写访问能力。 包含两个包: | 包 | 作用 | | packages/plugin/obsidian-sync | 插件本体——注册 obsidian_write_note 和 obsidian_read_note 工具,并添加一段系统提示词 | | packages/bundle/obsidian-sync-bundle | profile 包——一个补丁层,将插件挂载到 dsh 组合中 | 功能说明 - obsidian_write_note —— 将 markdown 笔记写入配置的仓库。标题会成为文件名(经过清理);可选的 directory 会将其放到仓库相对路径的子文件夹下;除非 overwrite: true,否则拒绝替换已存在的笔记。 - obsidian_read_note —— 通过仓库相对路径读回笔记。 安全特性(全部强制执行,全部经过测试): - 路径限制 —— 绝对路径和 .. 片段会被拒绝,且每个解析后的路径都会再次对照仓库根目录进行检查。即使 agent 尝试,也无法写入仓库之外。
展开完整文档(README 剩余 1 节)
dsh-plugin-obsidian-sync

一个 DeepSeek Harness 插件,为 dsh agent 提供对本地 Obsidian 仓库的读写访问能力。

包含两个包:

| 包 | 作用 |
| packages/plugin/obsidian-sync | 插件本体——注册 obsidian_write_note 和 obsidian_read_note 工具,并添加一段系统提示词 |
| packages/bundle/obsidian-sync-bundle | profile 包——一个补丁层,将插件挂载到 dsh 组合中 |

功能说明

- obsidian_write_note —— 将 markdown 笔记写入配置的仓库。标题会成为文件名(经过清理);可选的 directory 会将其放到仓库相对路径的子文件夹下;除非 overwrite: true,否则拒绝替换已存在的笔记。
- obsidian_read_note —— 通过仓库相对路径读回笔记。

安全特性(全部强制执行,全部经过测试):

- 路径限制 —— 绝对路径和 .. 片段会被拒绝,且每个解析后的路径都会再次对照仓库根目录进行检查。即使 agent 尝试,也无法写入仓库之外。
- 大小上限 —— 可配置的 maxNoteBytes(默认 1 MiB)同时适用于读取和写入,因此杂散的二进制文件不会淹没上下文窗口。
- 无静默覆盖 —— 除非 overwrite: true,否则已存在的笔记会报错,这样模型会明白该参数很重要,而不会覆盖你的笔记。

使用场景:agent 将会话摘要、研究发现和持久决策直接写入你的知识库——无需复制粘贴。

环境要求

- Node ^22.19.0 || >=24.0.0
- pnpm(仅用于 dsh plugin 安装)
- dsh 0.1.1-rc.2(@deepseek-ai/dsh- 包作为一套一起发布;本插件固定使用该版本)

快速开始

pnpm install
pnpm run check # typecheck + lint + test + build

pnpm run check 通过意味着:插件能在 dsh 自身的编译器设置下编译,其工具 schema 有效,能在真实的 dsh 工具注册表上挂载,并在销毁时干净地撤销。

安装到 dsh

从 npm 安装:

dsh plugin --profile web add dsh-bundle-obsidian-sync

从本地检出安装:

pnpm run pack:bundle
dsh plugin --profile web add ./dsh-bundle-obsidian-sync-0.1.0.tgz

配置 —— 插件在没有 vaultPath 时拒绝挂载,因此请在补丁层中设置它:

$DSH_HOME/cordis.patch.yml (defaults to ~/.dsh/cordis.patch.yml; hot-reloaded)
- insert:
- id: plugin-obsidian-sync
name: 'dsh-plugin-obsidian-sync'
config:
vaultPath: 'D:/GitHub/MyVault' # absolute path to your vault — required notesDir: agent # default directory when a call omits one maxNoteBytes: 1048576 # read/write size cap

然后验证该行已出现在组合后的树中,并开始使用:

dsh --profile web --dump-config # the row should appear with your config
dsh web
让 agent 保存一些东西——例如“把这次会话的结论存成笔记”——它就会调用 obsidian_write_note。

层级顺序、不使用 pnpm 的路径以及热重载行为记录在 docs/loading-into-dsh.md 中。

布局

packages/plugin/obsidian-sync/src/index.ts 是接线部分;文件系统逻辑就在它旁边的 notes.ts 中(纯函数,不依赖 Cordis),因此无需启动 Context 也能保持可单元测试。测试在真实的 dsh 工具注册表上挂载插件,并断言模型实际看到的内容,以及卸载时的释放。

dsh 版本

本项目针对一个 dsh 发行版,并在每个 @deepseek-ai/dsh- 依赖中固定该版本。它们作为一组一起发布,彼此并不独立兼容,因此请一起升级。pnpm run trace @deepseek-ai/dsh-tools 会打印已安装的版本以及在哪里阅读其契约。

许可证

MIT
预览分享卡片长什么样 ↓therain2020/dsh-obsidian-sync
分享 · DeepSeek Harness Hub
therain2020/dsh-obsidian-sync

让 agent 安全读写你的 Obsidian 仓库笔记

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部