前言¶
用 DeepSeek Harness(DSH)跑 Web UI 时,本地 dsh web 进程往往要手动在终端里结束,或在任务管理器里强杀。强杀容易丢未刷新的会话与设置。若希望下次启动时以「独立应用窗口」或「普通浏览器标签页」打开,通常还要自己改快捷方式或启动参数。下面介绍的 dsh-power-switch 由社区维护者 SanYe-SanJiu 发布,在 DSH 客户端侧提供侧边栏一键关闭进程,并在设置页的插件卡片里切换下次启动方式;仅支持 Windows。
这是什么¶
dsh-power-switch 是 DSH 的客户端插件(分类:Web UI / 进程相关能力)。它做两件事:通过 DSH 自带的优雅退出路径关闭本地 dsh web 进程;在 Settings → Plugins 对应卡片上选择下次启动是应用窗口还是普通标签页,保存后会更新桌面快捷方式并重启 DSH。插件以当前 DSH 进程权限运行,安装前建议在 GitHub 查看源码与 MIT 许可证。
维护者与仓库:SanYe-SanJiu/dsh-power-switch。社区目录页:SkillHub 插件条目。DSH 生态强调「一切皆插件」;SkillHub 等为独立社区站点,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
进程关闭(侧边栏)¶
在 Web UI 侧边栏底部会出现 ⏻ 按钮。点击后会确认,确认后通过 DSH 的 ctx.appExit 等官方优雅退出通道结束本地进程,而不是调用 shell 强杀,以便会话与设置先落盘。
启动模式切换(设置 → 插件)¶
在同名插件卡片上可在「应用窗口」与「普通标签页」之间切换。按一次即保存,插件会更新 Windows 桌面快捷方式(依赖 Windows Script Host 与 .lnk),并按宿主记录的启动方式重启 DSH。若当前环境无法安全重启,插件会明确拒绝并保持服务仍可用。
应用窗口模式依赖桌面快捷方式;在 macOS / Linux 上尚无等价实现。package.json 声明 "os": ["win32"],非 Windows 平台无法安装本包,避免主功能静默失效。
环境与版本要求¶
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10 或更高 |
| DSH | >=0.1.6-alpha.2 <0.1.7-0 \|\| >=0.1.7-0 <0.2.0-0 \|\| >=0.2.0-0 <0.3.0-0(见包内 engines.dsh) |
| Node.js | >=20 |
| Windows Script Host | 桌面快捷方式层需要 cscript.exe / wscript.exe;若被组策略或杀软禁用,卡片会用文案说明,关闭按钮、设置区与模式开关不受影响 |
README 记载已在 0.1.6-alpha.2、0.1.7 线与 0.2.0-rc.2 等版本上验证。
安装与启用¶
安装前请先 cd 到 DeepSeek Harness 所在目录。下列三条命令等价,仅 DSH 调用方式不同(全局 dsh、源码构建后的 node apps\cli\lib\bin.js、或未构建时用 pnpm dsh):
dsh plugin --profile web add github:SanYe-SanJiu/dsh-power-switch#v1.1.9
--profile web 必填(与 dsh web / dsh --profile web 对应)。包声明 dsh.bundle.patch,安装后会自动写入 profile 的 dsh.profile.bundles,无需手改 JSON。
安装失败时的两种常见情况:
- 出现
ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION时,对该次命令放宽 pnpm 发布龄策略(须用 kebab-case):
dsh plugin --profile web add github:SanYe-SanJiu/dsh-power-switch --config.minimum-release-age=0
- 网络较慢、
github:拉取超时,可一并加大 fetch 超时(示例与上一行组合使用):
dsh plugin --profile web add github:SanYe-SanJiu/dsh-power-switch --config.minimum-release-age=0 --config.fetchTimeout=600000
安装完成后重启 DSH 一次,打开 Settings → Plugins:列表中应出现 DSH power button 卡片,侧边栏底部出现 ⏻ 按钮。
跟踪 main 分支而不钉版本时(与钉 v1.1.9 不同):
dsh plugin --profile web add github:SanYe-SanJiu/dsh-power-switch
本地开发可用 link:<本仓库绝对路径> 形式安装,详见仓库 README。
典型用法¶
- 日常退出:在 Web UI 侧边栏底部点 ⏻,在确认对话框中确认,等待 DSH 走优雅退出并结束进程。
- 改启动方式:进入 Settings → Plugins,找到 DSH power button 卡片,在应用窗口 / 普通标签页之间切换;保存后快捷方式更新并自动重启。
- 卸载前:若当前为应用窗口模式且希望立刻恢复原来的启动方式,可在卡片上先切回普通标签页再卸载;否则下次双击快捷方式时,宿主侧逻辑也可恢复原始快捷方式。卸载命令:
dsh plugin --profile web remove dsh-power-switch
验证是否装妥:profile 的 dsh.profile.bundles 含该插件,且 node_modules\dsh-power-switch 为普通目录(link: 安装则为符号链接或 junction)。
适用场景与注意¶
- 适合:主要在 Windows 上用 DSH Web UI,希望从界面内安全退出
dsh web,并偶尔在「像桌面应用一样开窗口」与「浏览器标签页」之间切换的用户。 - 不适合:macOS / Linux 用户(包声明不支持);无法使用 Windows Script Host 的受限环境——此时模式切换与快捷方式相关能力会受限,但侧边栏关闭与插件设置区仍可用。
- 安全习惯:插件与 DSH 同权限;只从上述 GitHub 仓库或你信任的 ref 安装,安装前阅读
cordis.patch.yml与客户端注入逻辑。 - 与简介的差异说明:社区简介里「应用模式关闭进程会自动关当前页面、标签页模式则不行」与 README 强调的「优雅退出整条
dsh web进程」一致——退出的是宿主进程,不是仅关浏览器某一标签;具体 UI 行为以你使用的 DSH 版本为准。
结尾¶
dsh-power-switch 把「安全退出本地 DSH」和「Windows 下下次怎么启动」收进侧边栏与插件设置卡片,减少终端与快捷方式的手工操作。当前发行版本为 v1.1.9(MIT)。
- 目录页:https://www.skillhub.cn/plugins/SanYe-SanJiu/dsh-power-switch
- 源码与完整说明:https://github.com/SanYe-SanJiu/dsh-power-switch