YUYUY9527/dsh-plugin-management ↗★ 0
dsh-plugin-management
外部插件管理器(DeepSeek Harness / dsh 插件):查看 profile 里已安装的第三方插件(已装版本、最新版本、是否生效为插件层),并在「设置 → 插件」页一键更新 —— External plugin manager for dsh: inventory + one-click update for a profile's third-party plugin packages.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:YUYUY9527/dsh-plugin-management说明文档
阅读完整 README ↗—— 公网获取(使用者 / 分发)——
使用
界面
重启 dsh 后打开 设置 → 插件,会多出一个 「外部插件」 tab(排在官方 configurable / all 之后):
- 顶部:profile 选择器(
自动= 当前运行的 profile)、刷新、一键更新 (N) - 每行:包名、已装版本 · 版本范围、状态徽标(可更新到 x / 可升级到 x / 已是最新 / 本地链接 / 非插件层 / 已废弃)、该插件自己的安装命令(带「复制」按钮)
- 每行操作:
更新(范围内)、升级到最新(--latest,会改写package.json的版本范围)、卸载(点一下变「确认卸载」,4 秒内再点一下执行) - 底部:操作结果(含完整命令与输出)与重启提示
打开页面会先出本地清单(快),随后自动补一次联网版本检查;这一步失败会把原因显示出来,不会只留一句「未检查」。
模型工具
external_plugins action=list # 看清单(默认联网核对最新版本)
external_plugins action=list check=false # 只看本地已装版本,不联网
external_plugins action=update profile=web # 更新该 profile 全部外部插件
external_plugins action=update names=["dsh-tinyfish-search"]
external_plugins action=update latest=true # 跨大版本升级
external_plugins action=uninstall names=["dsh-tinyfish-search"] # 卸载(必须点名)
HTTP 接口(面板与其它前端复用)
默认前缀 /dsh-plugin-management/api:
| 方法 | 路径 | 说明 |
|---|---|---|
GET | /inventory?profile=&check=1&refresh=1 | 清单;check=1 联网核对最新版本,refresh=1 强制重扫 profile 目录 |
POST | /update | body { profile?, names?, latest? },跑更新并返回命令与输出 |
POST | /uninstall | body { profile?, names },卸载指定包;names 必填,没有「卸全部」 |
跨站请求会被拒(只接受同源),包名/profile 名都经过严格字符校验后才拼进命令。
配置
行配置只有一项(都可不填):