dsh-batch-uninstall:DSH 内置的 Geek 风格批量卸载与工作区清理

前言

在 DeepSeek Harness(DSH)里装插件、开工作区,时间一长列表会变长。卸载单个 bundle 通常要对着配置或命令行逐个处理;工作区删错还可能直接丢掉会话目录。Windows 上很多人用 Geek Uninstaller 做「勾选 + 进度条 + 防误删」的批量卸载;DSH 侧缺少同类的一体化界面时,清理成本会偏高。

下面介绍社区插件 dsh-batch-uninstall(维护者 MaYucong6):规范 Cordis bundle + 客户端设置页,在 DSH 设置 → 批量卸载 里用三个标签页处理插件、工作区与回收站。分类为客户端插件;仓库 GitHub 当前约 3 stars。目录页:SkillHub 插件页。

这是什么

dsh-batch-uninstall 是 Geek 风格的 DSH 批量清理工具箱:多选卸载插件、批量移除工作区(软删除进回收站)、在回收站里恢复或永久清空。不需要单独开浏览器地址、不依赖 Python 或外部配置文件即可完成主流程(仓库里另有可选 Python TUI)。

插件要求 DSH >=0.2.0-rc.1,Node >=20;npm 包当前版本 1.3.0,许可证 MIT。

核心功能

插件标签页

  1. 多选批量卸载:逐个勾选、全选、全不选,一次卸载多个 bundle。
  2. 核心保护:@deepseek-ai/dsh-* 等系统 bundle 锁定置灰,Host 与 Client 双层校验,无法勾选卸载。
  3. 风险分级:高 / 中 / 低三档提示,便于判断再操作。

受保护对象包括 @deepseek-ai/dsh-base、@deepseek-ai/dsh-web-app、@deepseek-ai/dsh-sdk-*、headless / acp 等官方 profile,以及所有 removable: false 的 bundle。

工作区标签页

  • 勾选多个 Workspace 一次性移除;界面显示路径与会话数。
  • 软删除:调用 workspaceRegistry.delete(id) 取消注册,并把 ~/.dsh/sessions/<编码路径>/ 移到 ~/.dsh/.trash/<时间戳>__<编码>/,数据不直接删除。

回收站标签页

  • 可恢复:把回收站中的会话目录还原到 ~/.dsh/sessions/。
  • 一键清空:永久删除回收站全部内容,带二次确认。

通用体验

  • 内置设置页,主题跟随 DSH 浅色 / 深色,语言跟随 DSH(中英双语)。
  • 卸载或删除前红色确认框列出全部目标;执行时有进度条与逐条成功 / 失败日志。
  • Client 通过 slots 注入真实服务,apply() 异常隔离,插件失效不应影响 DSH 启动。

安装与启用

将 <你的 profile> 换成实际 profile 名称。安装命令以 README 为准:

# npm(推荐)
dsh plugin --profile <你的 profile> add dsh-batch-uninstall

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

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

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

典型用法

在设置页批量卸插件

  1. 打开 DSH 设置 → 批量卸载,切到 插件 标签。
  2. 点 刷新 拉取当前 bundle 列表;核心项会显示锁定,不可勾选。
  3. 勾选要卸的非核心插件,点 卸载选中项,在确认框核对列表后确认。
  4. 观察进度条与日志,处理失败项可据日志再试或手动排查。

界面示意(来自 README):

Geek Uninstaller  ·  v1.3.0
 [插件]  [工作区]  [回收站]
────────────────────────────────────────────────────────
 共 15   可卸载 5   锁定 10   已勾选 0
                        [刷新] [全选] [全不选] [卸载选中项]

清理工作区并必要时恢复

  1. 在 工作区 标签勾选要移除的项,执行删除;会话目录进入 ~/.dsh/.trash/。
  2. 若误删,到 回收站 标签选择恢复;确认不再需要时再 一键清空回收站(不可恢复)。

可选:Python 终端界面

仓库提供 dsh_geek_uninstall.py,走同一套 localhost HTTP API,适合偏好终端交互的场景。需先安装 rich:

python dsh_geek_uninstall.py

Host 侧主要 API 路径包括:GET /dsh-batch-uninstall/bundles.json、POST /dsh-batch-uninstall/remove,以及工作区与回收站对应的 workspaces.json、trash.json 等(详见 README 架构图)。

适用场景与注意

适合谁:经常试用社区插件、需要批量卸载;工作区多、希望软删除并保留恢复窗口的 DSH 用户。

权限与安全:插件以当前 DSH 进程权限操作本机 pluginManager、workspaceRegistry 与 ~/.dsh 目录。安装前建议阅读 源码 与 MIT 许可证,确认符合你的环境策略。清空回收站会真正删除文件,操作前务必看清二次确认内容。

SkillHub 等社区目录由生态维护,与 DeepSeek / 幻方无官方从属关系;插件来源以仓库与 npm 包为准。

结尾

dsh-batch-uninstall 把 Geek 式「列表 + 多选 + 确认 + 进度」搬进 DSH 设置页,并区分插件卸载、工作区软删除与回收站恢复三条线,同时锁住核心 bundle。需要时可从 npm 或 GitHub 安装,在设置里完成日常清理。

  • 目录页:https://www.skillhub.cn/plugins/MaYucong6/dsh-batch-uninstall
  • GitHub:https://github.com/MaYucong6/dsh-batch-uninstall
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye