会话开始时自动打开 Obsidian 库,让同步插件跑起来
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/12 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/NOOBnoob163/dsh-open-obsidian.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 会话开始自动打开库
- 触发同步插件运行
- 已开库跳过不抢焦点
DSH 插件:会话在 Obsidian 库里工作时自动把库打开——这样你装的同步插件(坚果云同步等)就会开始跑,AI 改的东西才能真正同步出去。已开着的库跳过,新窗口不抢焦点。(是 DSH 插件,不是 Obsidian 插件)
README
由 DeepSeek 最新模型翻译生成dsh-open-obsidian
这是给 DeepSeek Harness(简称 DSH)用的插件,不是 Obsidian 插件。
装进 Obsidian 里没有任何作用,Obsidian 也不会加载它。
English speakers: jump to the English version.
它做什么
当一个 DSH 会话的工作目录位于某个 Obsidian 库文件夹内时,你在那个会话里发出第一条消息 的那一刻,插件会帮你在 Obsidian 里打开这个库——这样你装的同步插件(例如坚果云同步、 Obsidian Sync、Git 插件)就会开始工作,AI 在库里改的东西才能真正同步出去。
这是它解决的实际问题:AI 在库里写了东西,可 Obsidian 没开着,同步就不会跑——等到你哪天自己打开 Obsidian,改动才姗姗来迟。现在库会在对话开始时就打开,同步从那一刻起就在走。
它尽可能不打扰你:
- 库已经开着 → 什么都不做(不新开窗口,也不抢焦点);
- Obsidian 已经在运行 → 新窗口压到后面,焦点立刻还给你;
- Obsidian 没在运行 → 正常启动(这时候窗口弹出来正是你要的)。
全程在 DSH 进程内完成、不经过模型:零 token、零轮询。
这个插件的设置面板是中文界面(本来就是给中文用户做的),所以这份说明也以中文为主。
展开完整文档(README 剩余 1 节)
dsh-open-obsidian
这是给 DeepSeek Harness(简称 DSH)用的插件,不是 Obsidian 插件。
装进 Obsidian 里没有任何作用,Obsidian 也不会加载它。
English speakers: jump to the English version.
它做什么
当一个 DSH 会话的工作目录位于某个 Obsidian 库文件夹内时,你在那个会话里发出第一条消息 的那一刻,插件会帮你在 Obsidian 里打开这个库——这样你装的同步插件(例如坚果云同步、 Obsidian Sync、Git 插件)就会开始工作,AI 在库里改的东西才能真正同步出去。
这是它解决的实际问题:AI 在库里写了东西,可 Obsidian 没开着,同步就不会跑——等到你哪天自己打开 Obsidian,改动才姗姗来迟。现在库会在对话开始时就打开,同步从那一刻起就在走。
它尽可能不打扰你:
- 库已经开着 → 什么都不做(不新开窗口,也不抢焦点);
- Obsidian 已经在运行 → 新窗口压到后面,焦点立刻还给你;
- Obsidian 没在运行 → 正常启动(这时候窗口弹出来正是你要的)。
全程在 DSH 进程内完成、不经过模型:零 token、零轮询。
这个插件的设置面板是中文界面(本来就是给中文用户做的),所以这份说明也以中文为主。
关于作者:本插件的作者没有编程背景,代码是在 DSH 的 AI 助手协助下完成的。
运行要求
| 系统 | 仅支持 Windows。 它依赖 Windows 的进程/窗口接口、%APPDATA%\obsidian 注册表,以及 Obsidian 注册的 URL 协议;在 macOS / Linux 上无法工作。 |
| DSH | 需要暴露了本插件所用内部接口的 DSH 版本(见下面「已知限制」)。 |
| Obsidian | 桌面版 1.x。开发与实测用的是 1.14.4。 |
安装
一条命令装好:
dsh plugin add github:NOOBnoob163/dsh-open-obsidian
本包声明了 dsh.bundle,所以 DSH 装完会自动启用它,不需要手工改任何配置。
装好后冷启动一次 DSH(刷新页面不够),然后到 设置 → Obsidian 助手 里勾选你要管的库。
也可以手工装(不进 bundle 机制)
把仓库放进 profile 的插件目录:
如果你用的不是默认的 "desktop" profile,把 <profile> 换成你自己的
git clone https://github.com/NOOBnoob163/dsh-open-obsidian.git \
"%USERPROFILE%\.dsh\profiles\<profile>\plugins\dsh-open-obsidian"
然后二选一:
- 走标准方式:把 dsh-open-obsidian 加进 profile package.json 的 dsh.profile.bundles 列表,由它自带的 cordis.patch.yml 负责挂载;或者
- 手工挂载:在 %USERPROFILE%\.dsh\profiles\<profile>\cordis.patch.yml 里加一段:
Obsidian 助手(本地插件 plugins/dsh-open-obsidian)
- insert:
- id: obsidian-launch
name: 'dsh-open-obsidian'
(config 段可以省略——实际设置存在 %USERPROFILE%\.dsh\storages\dsh-open-obsidian.json,面板上改的就是它。)
配置
打开 设置 → Obsidian 助手,勾选你想让它管的库。
一个都不勾 = 完全不触发。
长这样
设置面板(浅色)设置面板(深色)
设置项
所有开关改一下就立即保存,没有"保存"按钮。
| 设置项 | 默认 | 作用 |
| 自动打开 Obsidian | 开 | 总开关。关掉 = 插件永远不打开任何东西。 |
| 检测到的知识库(逐个库) | 全不勾 | 勾选要管的库。每个库的「已打开」状态都会拿正在运行的 Obsidian 核实,所以关着的库不会被显示成开着。 |
| 目标库已打开时跳过 | 开 | 已经在屏幕上的库,完全不碰。 |
| 静默打开新窗口 | 开 | 新开的窗口压到后面,而不是让它抢走焦点。 |
| 高级选项 | — | 可选的自定义启动命令。{vault} 会替换成解析出的库文件夹路径。留空 = 用 Obsidian 自己的 obsidian:// 协议。 |
每一次"打开"和"跳过"都会记进 %USERPROFILE%\.dsh\logs\dsh-open-obsidian\decisions.log (有大小上限),所以插件但凡动过手,事后都能查是哪次触发的。面板上有按钮直接打开它。
触发时机
插件只在两种时机打开 Obsidian,且都带去重和节流:
1. 会话的第一条真人消息(工作目录在已启用的库内)。每个会话只判定一次。
2. 写入时兜底 —— 已启用的库里有文件变动,但必须满足"代理(AI)最近确实在这个库里干活" 且"Obsidian 没在运行"。
DSH 的生命周期事件故意不作为触发条件。0.7.0 之前的版本会在 session/created 时也尝试打开,而这个事件在每次会话发布时都会触发(界面加载、断线重连、宿主启动恢复上次工作区),结果就是你什么都没干、Obsidian 自己弹出来了。0.7.0 已移除。无关的文件变动(同步客户端、编辑器、git 维护)同样不会触发。
已知限制
1.「打开一个没开的库、同时完全不打扰你」做不到。 Obsidian 自己没实现这个能力:它新建窗口用的是会抢焦点的 show(),而不是不抢焦点的
showInactive(),并且全程序没有任何跟焦点相关的开关(这是读它自己的 app.asar 确认的,
showInactive 出现 0 次)。
插件的做法是「新窗口压到后面 + 把焦点抢回来」。所以当被打开的库原本没开着时,大约三次里有两次会闪一下,约 0.1 秒。没有第三条路——外部程序拦不住 Obsidian 自己激活窗口,只能事后纠正。
接受不了可以关掉「静默打开」,就变回「正常打开、会跳到前台」。
2. 插件用了 DSH 的内部接口(Web 路由注册、会话事件、设置页插槽、__ModuleLoader__)。
DSH 迭代很快,它一升级,插件有可能失效,需要跟着更新。欢迎提 issue。
目录说明
package.json 插件清单(简介保持一句话,版本历史在 CHANGELOG.md) lib/index.js 宿主半 —— 库识别、触发判定、启动 lib/client.js 浏览器半 —— 设置页的「Obsidian 助手」面板 bin/dsh-open-obsidian-silent.exe 编译好的助手程序:枚举窗口 + 静默打开 src/silent-open-helper.cs 上面那个 exe 的 C# 源码 test/behaviour.mjs 行为回归测试(12 项) test/panel.mjs 设置面板测试(28 项)
bin\.exe 是故意一起提交的——多数人没有 C# 编译器,而「静默打开」和「枚举 Obsidian 窗口」都离不开它。源码一并在库里,方便审计和自行重新编译。
重新编译那个助手程序(Windows,用 .NET Framework 自带的 csc.exe):
& "$env:WINDIR\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /nologo /optimize+ /target:winexe
/out:bin\dsh-open-obsidian-silent.exe src\silent-open-helper.cs
测试
node test/behaviour.mjs # 12 项
node test/panel.mjs # 28 项
两套测试都用假的宿主和假的 Obsidian,不需要真的开 Obsidian,也不联网。但需要先 npm install(宿主那半要 @deepseek-ai/schemastery 来定义配置项)。
许可证
MIT —— 见 LICENSE。
设计上的一点说明:插件的设置面板只有中文界面,没有做多语言支持。这个插件主要是为中文用户做的,说明文档因此也以中文为主。
这是一个 DeepSeek Harness(DSH)插件——不是 Obsidian 插件。
装进 Obsidian 里没有任何作用,Obsidian 也不会加载它。
注意:插件自己的设置面板只有中文(它优先为中文用户而做)。下面的英文文档保持完整,但你安装后看到的界面会是中文。*
它做什么
当 DSH 会话的工作目录位于某个 Obsidian 库文件夹里时,这个插件会替你在 Obsidian 中打开那个库——自动打开,每个会话一次,在你发出第一条消息时。
为什么这很重要: 打开库,你的同步插件(坚果云同步、Obsidian Sync、某个 Git 插件……)才会开始运行,智能体编辑的文件才真正同步出去。没有它,智能体往库里写东西时 Obsidian 是关着的,什么都不会同步,改动只能等你下次碰巧自己打开 Obsidian 时才传出去。
它做这件事时刻意保持安静:
- 如果库已经开着,什么都不做——不开新窗口,不跳焦点。
- 如果 Obsidian 已经在运行,新窗口压到后面,焦点立刻交还给你原本在做的事。
- 如果 Obsidian 没在运行,就正常启动(窗口出现本来就是目的)。
一切都在 DSH 进程内运行,在模型循环之外:零 token,零轮询。
关于作者: 作者没有编程背景;代码是用 DSH 自带 AI 助手的帮助。
环境要求
| 操作系统 | 仅限 Windows。 它依赖 Windows 的进程/窗口 API、%APPDATA%\obsidian,以及 Obsidian 注册的 URL 协议。在 macOS 或 Linux 上无法运行。 |
| DSH | 一个对外暴露本插件所用内部 API 的 DSH 构建版本(见 已知限制)。 |
| Obsidian | 桌面版 1.x。开发和测试基于 1.14.4。 |
安装
一条命令:
dsh plugin add github:NOOBnoob163/dsh-open-obsidian
这个包声明了 dsh.bundle,所以 DSH 会自动激活它 —— 不用手动改配置。装完冷启动 DSH 一次(重载窗口不够),然后在 Settings → Obsidian 助手 里勾选你的知识库。
手动安装(绕过 bundle 机制)
把仓库放进你配置档的 plugins 文件夹:
adjust <profile> if you are not on the default "desktop" profile
git clone https://github.com/NOOBnoob163/dsh-open-obsidian.git \
"%USERPROFILE%\.dsh\profiles\<profile>\plugins\dsh-open-obsidian"
然后二选一:在配置档的 package.json 里把 dsh-open-obsidian 加进 dsh.profile.bundles(它自带的 cordis.patch.yml 会挂载它),或者在 %USERPROFILE%\.dsh\profiles\<profile>\cordis.patch.yml 里手动挂载:
Obsidian launcher (local plugin plugins/dsh-open-obsidian)
- insert:
- id: obsidian-launch
name: 'dsh-open-obsidian'
(config: 块可以省略 —— 真正的设置存在 %USERPROFILE%\.dsh\storages\dsh-open-obsidian.json,面板改的就是这个文件。)
配置
打开 Settings → Obsidian 助手,勾选你想让本插件管理的知识库。在你至少勾选一个知识库之前,插件永远不会触发。
界面长什么样
设置面板(浅色)设置面板(深色)
设置
所有控件都是改完立即保存 —— 没有保存按钮。
| 设置项(中文界面里显示的名称) | 默认值 | 作用 |
| 自动打开 Obsidian | 开 | 总开关。关掉 = 插件什么都不打开。 |
| 检测到的知识库(每个知识库一项) | 全部关闭 | 勾选要管理的知识库。每个知识库的 open 状态都会跟正在运行的 Obsidian 核对,所以已关闭的知识库绝不会显示为已打开。 |
| 目标库已打开时跳过 | 开 | 已经在屏幕上的知识库完全不碰。 |
| 静默打开新窗口 | 开 | 把新建的知识库窗口压到后面,不让它抢焦点。 |
| 高级选项 | — | 可选的自定义启动命令。{vault} 会替换成解析出的知识库文件夹路径。留空 = 用 Obsidian 自己的 obsidian:// URI。 |
每次启动、每次跳过都会追加写入 %USERPROFILE%\.dsh\logs\dsh-open-obsidian\decisions.log(有大小上限),所以意外的启动总能追溯到触发源。面板上有个按钮可以直接打开这个日志。
触发规则
插件只在恰好两种情况下打开 Obsidian,两者都做了限流和去重:
1. 会话的第一条直接人类消息,且会话的工作目录位于已启用的 vault 内。每个会话只判定一次。
2. 写入时确保 —— 已启用的 vault 内发生文件变更,但仅当智能体最近一直在该 vault 内活跃工作,且仅当 Obsidian 未在运行时。
DSH 生命周期事件刻意不作为触发条件。早期版本还会在 session/created 时触发,而该事件在每次会话发布时都会触发 —— GUI 加载、重连、harness 启动恢复上次工作区 —— 于是用户什么都没碰,Obsidian 也会打开。已在 0.7.0 中移除。无关的文件变动(同步客户端、编辑器、git 维护)也绝不会自行打开 Obsidian。
已知限制
1.「打开已关闭的 vault 又不打扰我」无法完全做到。 Obsidian 本身不支持:它创建新 vault 窗口时用的是 Electron 的 show()(会激活窗口),而不是 showInactive(),并且任何地方都没有提供与焦点相关的标志(已通过阅读其自带的 app.asar 验证;showInactive 出现次数为零)。
本插件的做法是把新窗口压到后台,再把前台抢回来。实际使用中,打开一个原本未打开的 vault 时,大约三次里有两次会看到约 0.1 秒的闪烁。没有第三种选择 —— 外部进程无法阻止 Obsidian 自己的窗口激活,只能在事后纠正。
如果你更希望窗口正常来到前台,请关闭 静默打开。
2. 它使用了 DSH 内部 API —— web 服务器路由注册、会话事件、设置槽位,以及 __ModuleLoader__。DSH 迭代很快;一次 DSH 升级就可能让本插件失效,直到它跟进更新。欢迎提 issue。
仓库结构
package.json plugin manifest (short description; history in CHANGELOG.md)
lib/index.js host half — vault detection, triggers, launching lib/client.js browser half — the Settings → Obsidian 助手 panel bin/dsh-open-obsidian-silent.exe compiled helper: window listing + silent open src/silent-open-helper.cs C# source of the helper above test/behaviour.mjs behaviour regression suite (12 assertions) test/panel.mjs settings-panel suite (28 assertions)
bin\*.exe 是刻意提交的 —— 大多数用户没有 C# 编译器,而静默打开 vault 和枚举 Obsidian 窗口都需要这个辅助程序。它的源码与它一起提交,便于审计和重新构建。
重新构建辅助程序(Windows,.NET Framework 的 csc.exe):
& "$env:WINDIR\Microsoft.NET\Framework64\v4.0.30319\csc.exe" /nologo /optimize+ /target:winexe
/out:bin\dsh-open-obsidian-silent.exe src\silent-open-helper.cs
测试
node test/behaviour.mjs # 12 assertions
node test/panel.mjs # 28 assertions
两套测试都跑在模拟的 DSH 主机和模拟的 Obsidian 上,不需要启动 Obsidian,也不需要访问 DSH 网络。但它们需要安装包依赖(npm install),因为主机那一半会导入 @deepseek-ai/schemastery 来定义配置 schema。
许可证
MIT —— 见 LICENSE。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
NOOBnoob163/dsh-open-obsidian
会话开始时自动打开 Obsidian 库,让同步插件跑起来
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。