DSH Plugin Manager:侧栏集中管理非原生插件

前言

在 DeepSeek Harness(DSH)里,插件可以来自插件市场、npm、GitHub 直装或本地 link 自编。装多了之后,启用状态分散在 profile 依赖里,Loader 里还有逐行组件,单靠记忆或翻配置很难一眼看清「当前 profile 里到底有哪些第三方包、各自干什么、能不能关掉」。DSH 宿主自带插件市场入口,但没有把「已安装的非原生 bundle」收成一张可筛选、可启停、可卸载的清单页。

下面介绍社区插件 dsh-plugin-manager(维护者 DDTomTom,GitHub:DDTomTom/dsh-plugin-manager)。它是一个客户端侧栏工具:在主区域打开管理面板,通过宿主 pluginManager 服务读取当前 profile 里的 bundle,集中展示描述、来源与功能分类,并完成整包或单组件的启用 / 停用与卸载。

这是什么

一句话:给 DSH 用的侧栏插件管理器——只列出 availability === "profile" 的非 DSH 原生 bundle(市场下载、npm、GitHub、本地 link 等),附功能描述与来源徽标,支持按推断出的功能分类筛选,以及启用、停用、卸载。

  • 分类(目录站):客户端
  • 包名:@local/dsh-plugin-manager,版本 0.2.0(以 package.json 为准)
  • 许可证:MIT
  • 平台:dsh.client.platform 为 "web",Host 半边(index.js)为空实现

侧栏入口挂在「插件市场」正下方(sidebar.footer.action,order 10),点击后在主区域打开管理器。

核心功能

数据来自 DSH 宿主的 pluginManager:listBundles / listPlugins。列表以 bundle 为单位;没有 bundle patch 的裸依赖不会单独成卡。

卡片信息

每张卡片展示:标题、版本、来源徽标、功能分类、包名、功能描述、启用状态。

来源徽标依据 bundle 的 source 字段:

徽标 判断依据
本地自编 link:<绝对路径>
GitHub 直装 github:<owner>/<repo>#<sha>
npm 市场 其它 npm 规格(name@version / name@^version)

分类筛选

页头下方是一排分类 chip(全部 / 插件与市场 / 主题与外观 / UI 增强 / 身份与通信 / 记忆 / 用量与计费 / 工具与能力 / 会话与消息 / 浏览器与网页 / 开发与调试 / 模型与账号接入 / 内容与媒体 / 安全与权限 / 其他),并显示每类数量。分类由插件名称、描述与包名上的关键词启发式推断,不读网络、不修改被管理的插件本身。新插件可能落在「其他」;可在 client.js 顶部 CATEGORIES 数组里补关键词后刷新页面。

启停与卸载

  • 整包开关:调用 setBundleEnabled,控制整包启用 / 停用。
  • 组件 (N):展开该包在 Loader 里的每一行,逐行启用 / 停用(setPluginEnabled)。
  • 卸载:两步确认后调用 removeBundle,移除 profile 依赖;插件文件与数据可能仍留在磁盘。卸载不备份。
  • 刷新:重新读取宿主清单;读取失败时在页面上显示原因,面板用错误边界兜底,避免白屏。

操作结果在面板底部以提示条反馈,例如:已生效、已保存且需重启 DSH 后生效、已被更上层覆盖、操作失败等。

安装与启用

前提:已能正常启动的 DeepSeek Harness(桌面版或 web 版 profile,DSH 0.2.1 系列;README 注明在 0.2.1-rc.3 desktop profile 上实测),以及可写的 profile。

插件以当前 DSH 进程权限运行;安装前请自行查看仓库源码与 MIT 许可证,确认可接受后再装入 profile。

1、取得插件目录(README 原文):

git clone https://github.com/DDTomTom/dsh-plugin-manager.git

2、在 DSH 会话里用插件管理器以 bundle 方式安装该目录,目标填绝对路径:

plugin_manager → action: install_bundle → target: /绝对路径/dsh-plugin-manager

3、装完后刷新页面(Web 版)或重开窗口(桌面版)。侧栏底部、「插件市场」下一行会出现「插件管理」。

升级:若为本目录 link 安装,可直接改源码后整页刷新;否则建议先 remove_bundle 再 install_bundle。

典型用法

1、打开:点击侧栏「插件管理」。
2、分类:点击 chip 过滤;分类规则见 client.js 的 CATEGORIES。
3、启停:卡片左侧开关为整包;「组件 (N)」内开关为单个 Loader 行。
4、卸载:点「卸载」→ 变为「确认卸载」→ 再点一次执行;点「取消」放弃。

客户端代码改动后需整页刷新(Ctrl+R)才会加载新版 client.js;桌面版重开窗口更稳妥。

适用场景与注意

适合谁:经常在同一 profile 里混装市场、npm、GitHub、本地 link 插件的 DSH 用户,需要在一个面板里查看描述、按功能粗筛、临时关掉整包或某个 Loader 行,或安全卸载 bundle 依赖。

兼容性:DSH 0.2.1 系列;仅 Web 侧 UI,Host 不做额外逻辑。

已知限制(摘自 README):

  • 列表以 bundle 为单位;裸依赖无 patch 时不会单独成卡。
  • 分类是启发式,结果可能与直觉不一致(例如「余额挂件」可能被归到 UI 增强而非用量与计费)。
  • 视觉主要在深色主题下验证;面板使用 --dsw-alias-* token,浅色主题理论可读但未单独验证。

DSH 生态强调「一切皆插件」;社区目录站点(如 SkillHub 上的插件页)与 DeepSeek / 幻方无官方从属关系,本插件同样属于社区贡献,不是官方应用商店内置能力。

结尾

dsh-plugin-manager 把当前 profile 里所有非原生插件收到侧栏一处:看清来源与描述、用 chip 按功能粗筛、整包或逐组件启停、两步确认卸载,并依赖宿主 pluginManager 与错误边界保证列表失败时仍可读。

  • 目录页:https://www.skillhub.cn/plugins/DDTomTom/dsh-plugin-manager
  • 源码与说明:https://github.com/DDTomTom/dsh-plugin-manager
羽毛球分组比赛记分
小程序二维码

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

Xiaoye