DeepSeek Harness Hub
← 返回列表

已装插件管理器Mg-K-Mn/dsh-plugin-manager

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

在网页界面一键启用或禁用已安装插件

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/16 · 已提供中文文档
综合分
27.6
GitHub 分
27.6
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Mg-K-Mn/dsh-plugin-manager
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

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 自带 watchUserPatches HMR 会在文件变化后重新组合 Loader 树,因此改动立即生效、无需重启;涉及浏览器 UI 的插件刷新页面即可看到。
- 安全保护:
- 管理器自身不可被自己禁用(否则会失去重新启用的入口)。
- 只自动编辑“纯 id + disabled: true”行;带额外配置的禁用行会在 UI 提示手工编辑,不擅自删除。
- 写操作只接受同源 POST(Origin 与 Host 一致),与 dsh-webui-market-plugin 的策略一致。
- 补丁文件采用临时文件 + rename 的原子写入,连续点击由队列串行化。

安装

方式一:从 GitHub 安装(推荐,profile 持久化为 bundle 层)

dsh plugin --profile web add github:Mg-K-Mn/dsh-plugin-manager

安装完成后重启 web 服务生效:

dsh web

方式二:从本地目录安装

克隆或下载本仓库后,进入仓库根目录(含 package.json 的目录)执行:

dsh plugin --profile web add .

注意:dsh plugin add 的相对路径按你执行命令时所在的目录解析,所以要在仓库根目录里用 .;如果想在仓库父目录执行,则写 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),区分“已下载依赖”与“内置组合包”。

工作原理

- Host 半(lib/host.js):注册 /api/dsh-plugin-manager 路由。list 直接读取 profile 的 package.json、包内 cordis.patch.yml,并投影运行时 ctx.loader.entries();toggle 读写 $DSH_HOME/profiles//cordis.patch.yml(必要时 home 层),随后轮询 Loader 树直到 dsh 的 watchUserPatches HMR 应用变化。
- Client 半(lib/client.js):通过 exports["./client"] + dsh.client.platform === 'web' 被 web 前端加载,注册到 settings.plugins.tab 槽位(order 6,排在官方插件列表 / 插件市场之后)。

目录结构

dsh-plugin-manager/
├── package.json          # dsh.bundle.patch + dsh.client 声明
├── cordis.patch.yml      # bundle 层:插入 dsh-plugin-manager 一行
├── lib/
│   ├── host.js           # Node 半:路由 + 补丁读写 + Loader 投影
│   └── client.js         # 浏览器半:设置 → 插件 → 已安装插件 面板
├── README.md
└── LICENSE

兼容性与限制

- 依赖 dsh 0.1.0-rc.x 提供的 webServer、loader、slots 与 watchUserPatches 行为。
- 该管理器只管理条目级的启用 / 禁用;安装 / 卸载请继续使用插件市场(dsh-webui-market-plugin)或 dsh plugin --profile web add/remove。
- 如果 home 级 cordis.patch.yml 里有更晚应用的复杂覆盖,本插件不会自动猜测;界面会如实显示并提示手工处理。
- 对运行时已被其他 patch 层覆盖出额外 config 的条目,禁用只添加 disabled: true,不影响原配置。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群