Mg-K-Mn/dsh-plugin-manager ↗★ 0
dsh-plugin-manager
DSH web GUI 已安装插件管理器:列出已下载插件,随时一键启用/禁用,持久化到 profile 的 cordis.patch.yml 并立即生效。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Mg-K-Mn/dsh-plugin-manager说明文档
阅读完整 README ↗dsh-plugin-manager · 已安装插件管理器
在 dsh web GUI 内部列出当前 profile 已下载(已安装)的插件,并随时用按钮启用 / 禁用,不需要每次去手改 YAML 或重启服务。
入口:设置(Settings)→ 插件(Plugins)→ 已安装插件(Installed Plugins)。
功能
- 列出 profile
package.json中所有已下载插件(依赖),显示包名、版本、来源 spec、描述。 - 每张卡片显示该包在 Cordis Loader 树里的运行时条目(id / 模块 / fiber 状态)。
- 一键启用 / 禁用:
- 禁用:把该包所有条目的
- id: …+disabled: true写入 profile 的cordis.patch.yml。 - 启用:从 profile 和 home 两级
cordis.patch.yml中移除对应的纯禁用行。 - 未接线但已下载的包:点击启用会把包内
cordis.patch.yml的插入行写入 profile 补丁,完成接线。
- 禁用:把该包所有条目的
- dsh 自带
watchUserPatchesHMR 会在文件变化后重新组合 Loader 树,因此改动立即生效、无需重启;涉及浏览器 UI 的插件刷新页面即可看到。 - 安全保护:
- 管理器自身不可被自己禁用(否则会失去重新启用的入口)。
- 只自动编辑“纯
id+disabled: true”行;带额外配置的禁用行会在 UI 提示手工编辑,不擅自删除。 - 写操作只接受同源 POST(Origin 与 Host 一致),与 dsh-webui-market-plugin 的策略一致。
- 补丁文件采用临时文件 + rename 的原子写入,连续点击由队列串行化。
安装
方式一:从 GitHub 安装(推荐,profile 持久化为 bundle 层)
dsh plugin --profile web add github:/dsh-plugin-manager
安装完成后重启 web 服务生效:
dsh web
方式二:从本地目录安装
克隆或下载本仓库后,在仓库根目录执行:
dsh plugin --profile web add ./dsh-plugin-manager
安装完成后重启 web 服务生效。
方式三:免重启手动接线(调试 / 立即使用)
把插件目录放到 profile 的 node_modules 下,并在 ~/.dsh/profiles/web/cordis.patch.yml 末尾追加:
- insert:
- id: dsh-plugin-manager
name: dsh-plugin-manager
dsh 的 patch HMR 会立即挂载宿主 API,刷新浏览器页面后即可在设置 → 插件中看到标签页。
切换安装方式时避免重复接线:如果已经用方式三把
dsh-plugin-manager写进了 profile 的cordis.patch.yml,改用方式一/二时请先删除该- insert:块再重启,否则 bundle 层与 profile 补丁会各自挂载一次本插件(重复注册同一 API 路由会启动失败)。
使用
打开 设置 → 插件 → 已安装插件:
- 搜索框按包名 / 描述 / 条目 id 过滤。
- 每张卡片右侧按钮按当前状态显示“启用”或“禁用”,点击后状态即时生效。
- 展开“详情”查看运行时 Loader 条目;加载失败的条目会标红。
- 页面底部只读展示 profile 的组合层(bundles),区分“已下载依赖”与“内置组合包”。