DSH 插件 plugin-switch:在插件清单里直接启停插件

前言

对需要频繁调整插件组合的 DSH 用户来说,手工改配置和重启服务并不方便。plugin-switch 把“启用 / 停用插件”做成页面上的滑块操作。

它给 DeepSeek Harness (DSH) 的插件清单页加上滑块开关:点一下即可启用/停用任何插件,立即生效、不用重启服务端,重启后状态保持。

这是什么

plugin-switch 由 cynch18 维护,包名为 dsh-profile-plugin-switch,包版本为 0.5.1,许可证为 MIT

它是 DSH 的一个本地 web profile 插件,主要入口是设置里的“插件清单”页。

核心功能

  • 实时启停:通过主动重放通道生效,绕开平台 watcher 死锁,确定性生效。
  • 列表管理:支持按系统 / 第三方 / 本地分组,并提供状态筛选、排序、搜索。
  • 批量操作:支持批量启用/停用;批量动作按单事务处理,一次备份,撤销一步全回。
  • 撤销与备份:提供“↺ 撤销”按钮;每次开关前自动备份,保留最近 20 份。
  • 风险提示:关键条目强确认、被依赖提示、停用确认警告、停用来源分层、config 预览、失败诊断。
  • 其他能力:多标签页实时同步、CLI 恢复工具、双语界面与动画。

安装与启用

前提

需要以 web profile 运行 DSH,并且 Node ≥ 22。以 web profile 运行可用:

npx @deepseek-ai/dsh web

推荐安装方式

使用 dsh plugin 命令安装:

dsh plugin --profile web add github:cynch18/plugin-switch

安装后重启 dsh web,按 Ctrl+Shift+R 强制刷新浏览器,然后打开:

设置 → 插件 → 插件清单

插件右侧会出现滑块开关。

其他安装方式

如果使用 PowerShell 环境,也可以使用下面的方式。三种安装方式任选其一,不要重复安装;同一 profile 装两次会产生重复条目,重启会报错。

直接下载 plugin-switch.zip 后运行:

powershell -ExecutionPolicy Bypass -File .\install.ps1

或通过 git clone 后运行:

git clone https://github.com/cynch18/plugin-switch.git
cd plugin-switch
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1

方式二和方式三的 PowerShell 脚本支持以下参数:

  • -KeepOriginal:保留原只读清单,仅启用 HTTP API。
  • -Dev:建立 junction 指向源码,改代码直接生效。

典型用法

临时启用或停用插件

进入:

设置 → 插件 → 插件清单

找到目标插件,点击右侧滑块即可启用或停用。状态立即生效,不需要重启 dsh web

批量调整

可以批量启用或停用多个插件。批量动作使用单事务:一次备份,撤销时一步全回。

误操作后撤销

如果点错,可以使用页面上的“↺ 撤销”按钮,恢复到上一次开关前的配置。每次开关前都会自动备份,保留最近 20 份。

开关页消失后的恢复

如果关闭“插件开关”自身,开关页会消失。可以打开:

%USERPROFILE%\.dsh\profiles\web\cordis.patch.yml

找到 plugin-switch 条目,把 disabled: true 改回 false,保存后恢复开关页。

用 CLI 恢复

如果 GUI 无法打开,可以运行 CLI 恢复工具:

node scripts/dsh-plugin-fix.mjs list
node scripts/dsh-plugin-fix.mjs enable <id>
node scripts/dsh-plugin-fix.mjs disable <id>
node scripts/dsh-plugin-fix.mjs undo
node scripts/dsh-plugin-fix.mjs backups

恢复原只读清单

如果希望回到 DSH 原来的只读插件清单,把 %USERPROFILE%\.dsh\profiles\web\cordis.patch.ymlui-settings-plugin-inventoryplugin-inventorydisabled: true 改回 false,同时删除 plugin-switch 条目。

彻底卸载

删除插件目录:

%USERPROFILE%\.dsh\profiles\web\node_modules\dsh-profile-plugin-switch

并移除:

%USERPROFILE%\.dsh\profiles\web\cordis.patch.yml

中的相关条目。

适用场景与注意

适合在本机使用 DSH web profile、需要频繁调整插件组合、希望减少重启和手工改配置的人。

使用前注意:

  • plugin-switch 会作为本地 web profile 插件运行。
  • /plugin-switch 是无鉴权的本地 HTTP 路由,与 DSH 自带 /plugins/... 同级信任,仅限个人本机使用。
  • 插件会以当前 dsh 进程权限运行,安装前建议检查源码与 MIT 许可证。
  • 三种安装方式不要重复执行。
  • 如果改包内 index.js,需要重启 dsh;如果只改 client.js,刷新页面即可。
  • 批量操作和关键条目会有确认或风险提示,启用/停用前可先看 config 预览。

获取

GitHub 仓库:https://github.com/cynch18/plugin-switch

目录页:请以你使用的 DSH 社区目录检索结果为准。DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜