前言¶
DSH 的理念是「一切皆插件」,插件装多了之后,管理工作就变得具体起来:哪些插件被 Cordis Loader 识别了、哪些处于启用状态、哪几个来自第三方,这些信息平时散落在配置文件里。想停用一个插件,要手动改 cordis.patch.yml;想保留几套插件组合来回切换,只能靠手工编辑和备份。
dsh-plugin-toggle-manager 把这些操作搬进了 DSH Web 的界面。下面介绍它的功能、安装方式和安全边界。
这是什么¶
dsh-plugin-toggle-manager 是 DSH Web 的可视化插件管理器,由 Loopiplusplus 维护,当前版本 1.0.0,许可证为 MIT。它解决的问题很集中:不需要手动修改 DSH 的配置文件,就能在 Web 界面查看、启用、停用插件,管理多套插件搭配,并在确认后清理符合条件的第三方插件。
核心功能¶
查看插件状态¶
- 显示 Cordis Loader 当前识别到的插件,支持按插件名称或 Loader ID 搜索;
- 分开显示插件总数、当前已启用数量与非官方插件总数;
- 对可安全管理的非官方插件提供启用/停用操作。
管理插件搭配¶
- 可从当前状态创建搭配,也可从原始配置创建:后者不预先选择可选的非官方插件,但始终保留 DSH 必需组件和管理器;
- 可编辑、保存并应用多套插件组合;
- 删除搭配只会删除搭配记录,不会删除插件,也不会直接改变当前状态。
删除第三方插件¶
对当前 Web profile 直接安装、且被明确识别为非官方的插件,提供带二次确认的删除入口。删除会清理相关的 profile 依赖、已知启动配置、搭配引用、锁文件记录与该 profile 的安装链接。
DSH Harness / DSH Web 核心组件、插件管理器自身和插件分组均受保护,不能从这个界面停用或删除。
安装与启用¶
推荐通过 npm + npx 安装,在 PowerShell 中执行:
npx --yes --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-toggle-manager
这条命令的含义:
npx --yes --package @deepseek-ai/dsh临时获取 DSH 命令;dsh plugin --profile web add在正确的 Web profile 中执行安装;- 包名不带版本号,npm 会安装
latest标签指向的最新稳定版; - DSH 自动把声明了
dsh.bundle.patch的插件加入 profile bundle 列表。
如果电脑上已经安装了 dsh 命令,可以用等价的简短写法:
dsh plugin --profile web add dsh-plugin-toggle-manager
安装成功后,打开或刷新 DSH Web,进入 设置 → 插件 → 插件管理 查看页面。
更新¶
安装命令不写版本号,不代表已安装的插件会自动更新。需要更新时,重新执行一次相同的安装命令即可,它等价于显式写 @latest:
npx --yes --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-toggle-manager@latest
只有需要固定到某个历史版本、复现问题时才写版本号,例如 dsh-plugin-toggle-manager@1.0.0。
镜像源未同步时¶
如果你的 npm / pnpm 被配置为第三方镜像,且刚发布的版本尚未同步到镜像,可在包名后追加 npm 官方 registry 参数:
npx --yes --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-toggle-manager --registry=https://registry.npmjs.org/
从旧本地包迁移¶
早期本地包使用的名称是 @deepseek-ai/dsh-plugin-toggle(内部/本地名称),公开 npm 版的包名为 dsh-plugin-toggle-manager,功能和版本号仍是 1.0.0。同一个 Web profile 不应同时保留两个包,否则会注册相同的 plugin-toggle 服务条目。首次迁移按顺序执行:
# 1. 移除旧的本地/内部包
npx --yes --package @deepseek-ai/dsh dsh plugin --profile web remove @deepseek-ai/dsh-plugin-toggle
# 2. 安装 npm 上的公开包
npx --yes --package @deepseek-ai/dsh dsh plugin --profile web add dsh-plugin-toggle-manager
执行第一步后管理页会暂时消失,第二步安装成功后刷新或重新打开 DSH Web 即可恢复。
配置写入位置与安全边界¶
- 插件启用/停用写入当前 Web profile 的用户
cordis.patch.yml; - 插件搭配写入当前 Web profile 的
dsh-plugin-toggle.presets.json; - 关键配置写入前会创建
.bak恢复点;被用户确认删除的第三方插件代码目录不会自动归档; - 插件只操作当前 DSH Web profile,不扫描或删除任意磁盘目录;
- 第三方插件的热插拔支持程度不同,个别前端资源在停用或删除后可能需要手动刷新或重新打开 DSH Web。
兼容性方面,本版本在 DSH 0.1.0-rc.6 的 Web profile 中构建和验证,依赖以下 peer dependencies,并要求 Node >= 20:
@deepseek-ai/cordis:^4.0.1@deepseek-ai/cordis-plugin-loader:^1.0.2@deepseek-ai/dsh-host-webserver:^0.1.0-rc.5
适用场景与注意¶
这个插件适合经常在 DSH Web 上调整插件组合、或需要保留多套插件搭配来回切换的用户。如果你只是偶尔增删插件,直接编辑配置文件也能做到,管理器省去的是反复核对配置和手动备份的成本。
需要注意:插件以当前 dsh 进程权限运行,删除操作会直接清理插件文件且不自动归档,安装前建议先阅读项目源码并确认许可证(MIT)。升级 DSH 或批量调整插件之前,先保留 profile 配置备份。
小结¶
dsh-plugin-toggle-manager 把 DSH Web 的插件查看、启用/停用、搭配管理和第三方插件清理整合到一个界面里,并用受保护列表、二次确认和恢复点划清了安全边界。对维护多插件环境的 DSH 用户来说,是一个实用的日常工具。
- GitHub 仓库:https://github.com/Loopiplusplus/dsh-plugin-toggle-manager
- 社区插件目录页:https://www.skillhub.cn/plugins/Loopiplusplus/dsh-plugin-toggle-manager
其中社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。