插件清单页滑块开关:在设置 → 插件 → 插件清单实时启用/停用任意插件,无需重启;支持分组/筛选、批量开关、撤销与自动备份。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:cynch18/plugin-switch
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
给 DeepSeek Harness (DSH) 的插件清单页加上滑块开关:点一下即可启用/停用任何插件,立即生效、不用重启服务端,重启后状态保持。
功能
- 实时启停(主动重放通道,绕开平台 watcher 死锁,确定性生效)
- 分组(系统/第三方/本地)、状态筛选、排序、搜索
- 批量启用/停用(单事务:一次备份,撤销一步全回)
- 撤销 + 自动备份(保留最近 20 份)
- 关键条目强确认、被依赖提示 + 停用确认警告、停用来源分层、config 预览、失败诊断
- 多标签页实时同步、CLI 恢复工具、双语界面与动画
快速开始
方式一:dsh plugin add(推荐)
dsh plugin --profile web add github:cynch18/plugin-switch
方式二:直接下载(不用 git)
在 Releases 下载 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
然后重启 dsh web,按 Ctrl+Shift+R 刷新 → 设置 → 插件 → 插件清单,每个插件右侧就是滑块开关。
⚠️ 三种方式任选其一:
dsh plugin add、zip、install.ps1 不要重复安装(同一 profile 装两次会产生重复条目,重启报错)。方式二/三的
-KeepOriginal参数保留原只读清单(仅启用 HTTP API);-Dev参数建 junction 指向源码,改代码直接生效。
常见问题(FAQ)
Q:我把"插件开关"自己关了,页面消失了,怎么恢复?
打开 %USERPROFILE%\.dsh\profiles\web\cordis.patch.yml,找到 plugin-switch 条目,把 disabled: true 改回 false(或删掉这一行),保存后约 3 秒自动生效,无需重启。
Q:开关点了没反应?
重启 dsh web 再试;若仍无效,见下方故障排查。
Q:误操作了想回退?
页面上的"↺ 撤销"按钮恢复到上一次开关前的配置(每次开关前自动备份,保留最近 20 份)。
故障排查
| 症状 | 处理 |
|---|---|
| 开关页没出现 | 确认只用了一种安装方式、已重启 dsh、已强制刷新(Ctrl+Shift+R);检查 cordis.patch.yml 里 ui-settings-plugin-inventory 与 plugin-inventory 两行是 disabled: true |
| 开关后状态没变 | 重启 dsh web 再试 |
| 服务端报错 | 看 dsh 启动窗口日志(loader apply/error 行) |
| 无法打开 GUI | 用 CLI 恢复工具:node scripts/dsh-plugin-fix.mjs list / enable <id> / disable <id> / undo / backups(在仓库目录运行) |
| 配置文件损坏 | 备份在 %USERPROFILE%\.dsh\profiles\web\backups\,把最新一份复制回 cordis.patch.yml 即可 |
卸载 / 恢复原版
- 恢复原只读清单:把
%USERPROFILE%\.dsh\profiles\web\cordis.patch.yml里ui-settings-plugin-inventory、plugin-inventory的disabled: true改回false,同时删除plugin-switch条目。 - 彻底卸载:删除
%USERPROFILE%\.dsh\profiles\web\node_modules\dsh-profile-plugin-switch,并移除cordis.patch.yml中的相关条目。
注意事项
- 需要以
webprofile 运行 DSH(npx @deepseek-ai/dsh web),Node ≥ 22。 - 关闭"插件开关"自身会让开关页消失,恢复需手动把
cordis.patch.yml里plugin-switch的disabled: true改回false(页面上会弹确认)。 /plugin-switch是无鉴权的本地 HTTP 路由(与 DSH 自带/plugins/...同级信任),仅限个人本机使用。- 改包内
index.js需重启 dsh;改client.js刷新页面即可。
开发
npm install
npm test # 单元测试(applyPatchEdit / 备份轮换 / 来源判定 / baked-disabled scrub)
License
MIT © 2026 CYNCH18
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-plugin-manager★ 8121
设置 → 插件 分区里的插件管理 Tab:从 npm/git 安装带进度、下次启动生效的启停开关、安装冲突对账可撤销、失败一键转交修复会话。
dsh-market/dsh-market★ 4818
在 DeepSeek Harness 设置页内浏览、搜索并安装社区插件,支持分类筛选、一键更新与停用,以及主题切换与配置备份。
bradeGithub/DSH-Plugins-Marketplace★ 169
面向 GitHub dsh-plugin 话题的插件与技能市场:设置页内逛自动收录的全量索引(CI 每 2 小时刷新),一键安装带类型识别、安装脚本与宿主依赖遮蔽安全检查、环境变量密钥管理,并附 STANDARD.md 识别层规范。
kingOfSoySauce/dsh-skin-market★ 165
原生皮肤市场与生命周期管理器,发现社区皮肤、展示预览与兼容状态,并提供已验证的一键安装或手动安装入口。
awesome-dsh-plugin/dsh-find-plugin★ 154
会话内直接找插件:按关键词/分类搜索本精选 registry,返回描述与可直接执行的安装命令。
Sanqi-normal/dsh-webui-market-plugin★ 103
dsh Web GUI 内的社区插件市场:浏览 awesome-dsh-plugin.com 目录,从 设置 → 插件 → 插件市场 安装/卸载插件到 profile。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。