前言¶
在 DSH(DeepSeek Harness)里安装或修改插件、切换 profile patch、更换 MCP 配置后,都需要重启宿主才能生效。以往的做法是关闭 DSH Desktop,重新打开,再找回刚才的会话窗口。这个过程重复出现,既打断思路又浪费时间。
dsh-reset-button 在对话框工具栏「完全权限」所在行的右侧增加一个「重启」按钮。点击后 DSH 自身完成重启,无需手动关闭窗口再重新打开。
这是什么¶
这是一个给 DSH Desktop 加上「一键重启」功能的客户端插件,由 IDKURLOVE 维护,使用 MIT 协议开源。
它解决的是「装完插件要重启」这个高频动作的繁琐问题:在工具行从左到右的布局中,重启按钮位于「完全权限」的右侧、dsh-purge 的回退按钮左边。
核心功能¶
重启按钮挂载在工具栏右侧的紧凑控件区,槽位为 conversation.input.right,排序为 order: 10。工具行从左到右的顺序为:
| 位置 | 内容 | 来源 |
|---|---|---|
| 最左 | + · ⚠ 完全权限 ∨ |
宿主自带 |
| 右侧紧凑控件区 | ↻ 重启 | 本插件,槽位 conversation.input.right,order: 10 |
| 再往右 | ↩ 回退 |
dsh-purge 的 rewind,order: 20 |
| 最右 | 模型选择器 | 宿主自带 |
点击按钮后,DSH 会尝试通过两条通道完成重启:
- 桌面端原生桥(首选):调用
globalThis.dshDesktop.restartHarness(),底层为ipcRenderer.invoke('harness:restart'),由 Desktop 主进程负责重启。 - Host 兜底(浏览器打开 DSH Web 时):向
POST /dsh-reset-button/restart发起请求(只接受回环地址),Host 端写入一个一次性.cmd文件到临时目录,使用 detached 模式执行taskkill /IM "DSH Desktop.exe" /T /F,随后启动同一个 exe 文件。
两条通道都失败时,按钮只上报错误(红色),不做任何破坏性动作。Host 兜底仅在 process.execPath 确实是 DSH 桌面应用时生效;在 Node/Electron 开发运行时下返回 501 not-a-dsh-desktop-runtime,避免误杀其他进程。
安装与启用¶
推荐使用方式 A,通过本地插件目录安装。
方式 A:本地插件目录(DSH Desktop)¶
$plugins = "$env:APPDATA\dsh-desktop\harness\plugins"
$profile = "$env:APPDATA\dsh-desktop\harness\profiles\web"
# 1) 放包(这里用 junction 指到源码仓库,改完即生效)
New-Item -ItemType Directory -Force -Path "$plugins\dsh-reset-button" | Out-Null
Copy-Item -Recurse -Force .\* "$plugins\dsh-reset-button\"
# 2) 接到 profile 的 node_modules
New-Item -ItemType Junction -Force -Path "$profile\node_modules\dsh-reset-button" `
-Target "$plugins\dsh-reset-button" | Out-Null
在 $profile\cordis.patch.yml 末尾添加:
# dsh-reset-button: 一键重启
- insert:
- id: dsh-reset-button
name: 'dsh-reset-button'
重启一次 DSH(此时还未显示按钮,手动重启;之后按钮会一直出现)。
方式 B:从 GitHub¶
git clone https://github.com/IDKURLOVE/dsh-reset-button.git
cd dsh-reset-button
# 然后照方式 A 的第 1~4 步;或把它作为 bundle 装进 profile
典型用法¶
重启按钮无需额外配置。安装后,在 DSH Desktop 的对话框工具栏「完全权限」右侧即可看到「↻ 重启」按钮。
点击按钮后等待几秒,DSH 完成重启,页面自动刷新回到当前会话,继续之前的操作。
适用场景与注意¶
- 适合经常安装或修改 DSH 插件的用户,减少重启操作。
- 插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。
结语¶
dsh-reset-button 把「装完插件要重启」这个高频操作从手动关闭再打开,简化为点击工具栏上的按钮。对于需要频繁折腾 DSH 插件的用户,这个改动可以节省大量时间。
- 插件目录页:https://www.skillhub.cn/plugins/IDKURLOVE/dsh-reset-button
- GitHub 仓库:https://github.com/IDKURLOVE/dsh-reset-button