Saltar al contenido principal
M

dsh-batch-uninstall

mayucong6/dsh-batch-uninstall

Adds a Batch Uninstall page to the DSH settings dialog: a checklist of every installed bundle with multi-select, select-all, a confirmation dialog and per-plugin progress, where official bundles stay locked and each removal goes through the host pluginManager service.

Instalar

dsh plugin --profile web add github:mayucong6/dsh-batch-uninstall

README

dsh-batch-uninstall

License DSH

Geek Uninstaller 风格的 DeepSeek Harness (DSH) 批量插件卸载器。

一个规范的 DSH 插件(Cordis bundle + client 设置页)。安装后在 DSH 设置 → 批量卸载 打开,勾选多个插件一次性移除。核心系统插件自动锁定,防止误删。

Geek Uninstaller — 批量插件卸载器
勾选要卸载的插件后批量移除。核心系统插件已锁定保护。 · v1.2.3

  共 15   可卸载 5   锁定 10   已勾选 0     [刷新] [全选] [全不选] [卸载选中项]

  🔒 @deepseek-ai/dsh-base        0.2.0-rc.2   🔒 核心
  🔒 @deepseek-ai/dsh-web-app     0.2.0-rc.2   🔒 核心
  ☐  dsh-our-free-model           2.3.0        ○ 低
  ☐  dshmarket                    1.66.27      ○ 低
  ☐  dsh-cost-meter               1.8.31       ○ 低
  ☐  dsh-batch-uninstall          1.2.3        ○ 低

功能

  • 内置设置页 — 不需浏览器地址、不需 Python、不需任何外部文件,装在 DSH 里直接用
  • 多选批量卸载 — 逐个勾选、全选、全不选,一次卸载任意多个
  • 二次确认 — 红色确认框列出全部目标,防误删
  • 实时进度 — 进度条 + 逐条成功/失败日志
  • 核心保护 — @deepseek-ai/dsh-* 等系统 bundle 锁定置灰,无法勾选
  • 风险分级 — 高 / 中 / 低三档提示
  • 主题自适应 — 跟随 DSH 浅色 / 深色主题
  • 中英双语 — 跟随 DSH 语言设置

安装

dsh plugin --profile <你的 profile> add github:MaYucong6/dsh-batch-uninstall

或在 DSH 插件市场搜索 dsh-batch-uninstall。

安装后重启 DSH(或刷新页面),设置左侧会出现 「批量卸载」 入口。

架构

┌─────────────────────────────────────────────────────┐
│  client/client.js  (Client 半 · 设置页 UI)          │
│  勾选 · 全选 · 二次确认 · 进度条 · 日志              │
└───────────────┬─────────────────────────────────────┘
                │ HTTP (localhost)
                ▼
┌─────────────────────────────────────────────────────┐
│  lib/index.js  (Host 半 · HTTP API)                 │
│  GET  /dsh-batch-uninstall/bundles.json             │
│  POST /dsh-batch-uninstall/remove                   │
└───────────────┬─────────────────────────────────────┘
                │ ctx.get('pluginManager')
                ▼
┌─────────────────────────────────────────────────────┐
│  DSH pluginManager 服务                             │
│  listBundles() / removeBundle(name)                 │
└─────────────────────────────────────────────────────┘

Host 半走 DSH 自己的 pluginManager 服务,与内置插件管理器同一套护栏;Client 半只注入 slots(真实服务),样式内联且不依赖主题变量名,任何异常都被隔离,插件失效也绝不会影响 DSH 启动。

核心保护

以下 Bundle 无法被卸载(Host 与 Client 双层锁定):

保护对象说明
@deepseek-ai/dsh-base核心基础层
@deepseek-ai/dsh-web-appWeb 应用层
@deepseek-ai/dsh-sdk-*SDK 配置
@deepseek-ai/dsh-headless / acp-app其他官方 profile
所有 removable: false 的 Bundle系统声明不可移除

文件说明

文件说明
lib/index.jsHost 半:HTTP API,调用 pluginManager
client/client.jsClient 半:DSH 设置页里的批量卸载界面
cordis.patch.ymlBundle 挂载补丁
package.jsonnpm 包清单(含 dsh.bundle + dsh.client)
dsh_geek_uninstall.py可选:独立的 Python TUI 客户端(走同一套 HTTP API)
dsh_plugins.json示例数据

Python TUI 是可选的命令行替代界面,需要 pip install rich:

python dsh_geek_uninstall.py

开发

node --check lib/index.js
node --check client/client.js

License

MIT

Plugins relacionados