Bundle
dsh-pluginmgmt
Plugin manager for the dsh web GUI: paste a GitHub repo URL, verify it is a dsh plugin (bundle or pure cordis), install, then update / remove / enable / disable across the full lifecycle, with background auto-update.
- Source
- zebbkira
- stars
- 1 stars
- License
- MIT
- Updated
- Updated yesterday
Readme
<h1 align="center">dsh-pluginmgmt</h1> <p align="center">DSH 插件管理器:粘贴 GitHub 链接,校验后一键安装,并对已装插件做更新 / 删除 / 启停全生命周期管理,支持后台自动更新。</p> ## Overview <img width="782" height="784" alt="image" src="https://github.com/user-attachments/assets/a7a0739c-51ba-4bc3-a79a-b6f880f652a6" /> **解决什么问题**:DeepSeek Harness 的插件默认只能通过 `dsh plugin --profile web add <包>` 命令行安装。dsh-pluginmgmt 在 Web GUI 里加了一个「插件管理」设置页,让你: - 粘贴 GitHub 仓库链接 → 自动校验(是不是 dsh 插件、bundle 还是纯 cordis、monorepo 子目录)→ 一键安装; - 对已装插件做更新 / 删除 / 启用停用; - 可选的后台自动更新:定时检查所有已装插件(npm 源 + git 源)是否有新版本并更新,全部完成后左下角浮动窗口提示重启。 **适合谁**:所有 DSH 用户。核心价值有两块——**安装更省事**(粘贴 GitHub 链接即可,不用记 `dsh plugin` 命令)和**管理更省心**(更新 / 删除 / 启停 / 查更新 / 自动更新都在一个图形界面里完成,不用手改 profile 配置)。尤其适合不想记命令、需要集中管理多个插件的人。 ### Tools | 工具 | 说明 | | --- | --- | | `plugin_install` | 从 GitHub 链接安装插件(先校验 bundle / 纯 cordis,再 pnpm 安装) | | `plugin_list` | 列出 web profile 已装插件(bundle / 纯 cordis / npm,含运行态) | | `plugin_remove` | 卸载插件(pnpm rm + 层栈 reconcile + 清理 cordis insert) | | `plugin_update` | 更新插件(git 源对比最新 commit 重装;npm 源 pnpm up --latest) | | `plugin_check_updates` | 检查插件是否有新版本(npm 源 + git 源) | | `plugin_auto_update` | 立即检查并自动更新所有可更新插件 | | `plugin_set_auto_update` | 开启/关闭后台自动更新 | ## Compatibility - 依赖官方 SDK:`@deepseek-ai/*` `^0.1.0-rc.6`(由 profile 闭包注入,插件 `dependencies` 声明为空)。 - 验证环境:dsh `0.1.0-rc.6`(npm 发行版)、Node 22。 - 最后验证日期:2026-08-16。 ## Install / Uninstall ### 安装(方式一:npm) ```bash dsh plugin --profile web add dsh-pluginmgmt ``` ### 安装(方式二:GitHub) ```bash dsh plugin --profile web add "github:zebbkira/dsh-pluginmgmt#<ref>" ``` 装完**重启 dsh web** 生效(bundle 层栈在 boot 合成)。 ### 升级 推荐在设置页「插件管理」里点「更新」按钮(内部用 `pnpm up --latest`)。命令行等价: ```bash dsh plugin --profile web add dsh-pluginmgmt@latest ``` > 注意:`dsh plugin --profile web update <名>`(即 `pnpm up`)对精确锁定的版本号(如 `0.1.0`)不会升级,需用上面带 `@latest` 或 `pnpm up --latest` 的形式。 ### 禁用 / 启用 设置页「插件管理」里点「禁用」,或手改 `~/.dsh/profiles/web/cordis.patch.yml` 中 `- id: ui-dsh-pluginmgmt` 的 `disabled: true/false`。 ### 彻底移除 ```bash dsh plugin --profile web remove dsh-pluginmgmt ``` ## Quick start 零配置可用: 1. 安装并重启:`dsh plugin --profile web add dsh-pluginmgmt` → 重启 `dsh web`。 2. 打开设置 → 「插件管理」。 3. 粘贴 `https://github.com/omdsh-dev/dsh-annotation` → 点「校验」→ 看到「bundle · commit …」结论 → 点「安装」。 4. 已装列表里出现该插件,可更新 / 删除 / 启停。 可复现示例:第 3 步换成任意 dsh 插件仓库链接即可(例如 `https://github.com/zebbkira/dsh-skills-mcp-manager`)。 ## Configuration 配置存 `~/.dsh/dsh-pluginmgmt.json`(权限 0600): | 配置项 | 默认值 | 说明 | | --- | --- | --- | | `settings.autoUpdate` | `false` | 是否后台自动更新 | | `settings.autoUpdateIntervalMin` | `30` | 自动更新检查间隔(分钟) | - 环境变量:`DSH_HOME`(默认 `~/.dsh`)。 - 敏感项:登记簿只存来源 URL / ref / 类型,**不存任何凭据**(无 GitHub token)。 ## Permissions & data - **文件读写**:`~/.dsh/profiles/web/package.json`(依赖 + bundle 层栈)、`~/.dsh/profiles/web/cordis.patch.yml`(insert 行 + 启停)、`~/.dsh/dsh-pluginmgmt.json`(登记簿 + 设置)。安装 / 更新 / 删除时调用 pnpm,由 pnpm 写 node_modules 与锁文件。 - **网络**:`git ls-remote` 与 `raw.githubusercontent.com`(校验)、npm registry / `codeload.github.com`(经 pnpm 安装)。 - **凭据**:插件自身不收集、不存储凭据;复用系统已有的 git / npm 凭据。 - **用户数据**:不收集、不上传任何用户数据。 ## Troubleshooting - **常见错误**: - `不是 dsh 插件` → 仓库 package.json 既无 `dsh.bundle` 也无 cordis 入口(main / exports)。 - `pnpm 阻止了构建脚本` → 按提示把该依赖加入 profile `pnpm-workspace.yaml` 的 `allowBuilds` 后重试。 - 装完没生效 → bundle 需重启 dsh web(层栈 boot 合成)。 - **日志**:dsh web 的 boot 日志(`plugin tree failed to load`、`loader: load plugin …`)。 - **回滚**:`dsh plugin --profile web remove dsh-pluginmgmt`;已装 git 源插件可重新安装旧 ref 回滚。 ## Development ```bash pnpm install pnpm run build # tsdown + wrap-client,产物在 lib/ pnpm test # vitest pnpm run gates # 机械门禁 + 自测 ``` 贡献:fork → 改 → 门禁 + 测试通过 → PR。 ## License & security - 许可证:MIT(见 LICENSE)。 - 安全问题请**私下报告**(不要在公开 issue 里贴),可通过 GitHub 私信 / 邮箱联系维护者。
Install
dsh plugin --profile web add github:zebbkira/dsh-pluginmgmt#637f688b216bf71f4c5604ebbeefd93f5447fde3
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-pluginmgmt from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.