dsh-plugin-gather:一键装配 DSH Web 增强套件

前言

DeepSeek Harness(DSH)采用「一切皆插件」的架构:能力靠插件挂载,界面与工具链也靠插件拼装。对日常在 Web 端跑智能体的开发者来说,常见做法是逐个搜索、安装 dsh-at-file、右侧边栏、任务看板、皮肤等插件,再自行处理依赖与挂载顺序。步骤多、版本容易不一致,也缺少账户余额、Checkpoint、全局指令这类横切能力。

下面介绍 lilwhich/dsh-plugin-gather(npm 包名 my_better-dsh,当前 v0.9.6,MIT 许可证)。它把一组精选插件与 7 项自研增强打包成 bundle,一条安装命令即可挂载,面向「想快速把 DSH Web 用起来、又不想逐个挑插件」的场景。维护者为 lilwhich;SkillHub 目录页将其归类为「联网工具」,GitHub 星标 10。

这是什么

dsh-plugin-gather 是一个 DSH Web 插件聚合包。完整安装后,相当于在原生 DSH Web 之上叠加:

  • 7 项本包内置能力:VSCode 风格左侧栏、账户状态栏、删除确认(安全模式)、对话迁徙(Context Handoff)、Checkpoint 快照、Diff Review、全局设定(编辑 ~/.dsh/AGENTS.md)。
  • 6 项随包依赖的精选插件dsh-at-file@ 引用文件)、dsh-better-sidebar(右侧边栏)、以及 dsh-web-ui 精选的右侧面板、任务看板、实时吞吐、全家桶设置页、皮肤中心(10 款主题)。

UI 支持中英双语,跟随系统语言切换。本包不包含宠物、移动端远程、Git 图谱、SSH 运维等偏门插件;需要时可自行 dsh plugin --profile web add <包名> 追加。

核心功能

账户状态与运行统计

输入框下方有两行状态栏。第一行展示 DSH 官方运行统计:轮数/步数、LLM 时间、工具调用时间、首 token 平均、TPS、缓存命中、输入/输出 token。第二行展示本包账户信息:

  • API 余额(¥),数据来自 api.deepseek.com/user/balance,host 侧用 DEEPSEEK_API_KEY 调用,密钥不出主机。
  • 本次已消耗(余额差值)。
  • 当前时段(高峰/空闲)及距下次切换的倒计时。峰谷定价规则:高峰为北京时间 9:00–12:00、14:00–18:00,空闲为其余时段(空闲半价;README 注明 2026-08-17 起生效)。
  • 当前对话剩余上下文窗口(如 剩 384K/1M),颜色随剩余比例变化。

余额每 60 秒刷新一次。输入框内也会在特定时机浮动显示剩余上下文窗口。

VSCode 风格左侧栏与对话大纲

左侧栏分为「文件 / 会话 / 大纲」三栏:

  • 文件:懒加载当前工作区文件树,点击文件在右侧边栏打开。
  • 会话:保留原会话列表与运行/完成状态,支持置顶、复制路径、删除等菜单操作。
  • 大纲:扫描当前会话的用户消息生成导航目录,点击节点滚动定位并高亮;滚动聊天时自动标记当前阅读段;顶部搜索可过滤节点。

Checkpoint 快照

Agent 每次开始运行、准备修改项目文件前,会自动创建 Checkpoint。右侧边栏有 CHECKPOINTS 标签页,可查看快照列表、变更文件与 diff,恢复需两次确认。

  • Git 项目:用 git add -A + commit 作快照,diff 用 git show,恢复用 git reset --hard <commit>。工作区无变化时跳过。
  • 非 Git 项目:不初始化 Git,将文件复制到 ~/.dsh/checkpoints/(排除 node_modules、.git、dist、build 等),快照间 diff 用 git diff --no-index。恢复会覆盖快照中的文件,不删除快照后新增的文件(README 标注为已知限制)。

快照索引存于 ~/.dsh/checkpoints/<工作区哈希>/index.json

Diff Review

右侧边栏 Diff Review 标签页在 Agent 通过 read/write/edit/str_replace_editor 等工具改文件时,于工具执行前捕获原状态,执行后计算行级 LCS diff 并实时展示。保留最新 6 条记录,客户端每 1.5s 轮询 /my-better-dsh/api/diff-review,每个工作区首次出现改动时自动打开面板。

安全模式(删除确认)

默认模式为 full-access-except-delete:读取、创建、修改、终端、网络、Git 等操作自动放行,仅在删除文件/目录时挂起工具并弹出确认框。识别范围覆盖常见 shell 删除命令(rmdelRemove-Item 等),并避免对 git rmnpm rm 等误判。模式可通过 GET/POST /my-better-dsh/api/security/mode 切换为 full-access,状态持久化。左侧栏底部有「删除时确认」开关。

对话迁徙(Context Handoff)

左侧栏底部「对话迁徙」按钮:确认后,复用 DSH 自身 Agent/LLM Runtime(不新增外部 API)在后台创建临时分析会话,对当前对话做本地预处理与摘要,生成 Context Handoff,再创建新对话并注入压缩后的上下文。原对话保持不变;失败时可重试。UI 会显示预处理后的 token 估算。

全局设定

编辑用户级指令文件 ~/.dsh/AGENTS.md(类似 Claude Code 的 CLAUDE.md),规则对所有会话生效;项目目录下的 AGENTS.md / CLAUDE.md 优先级更高。左侧栏底部「全局」按钮或右侧边栏「全局设定」标签页均可编辑,支持 Markdown 编辑、原子保存、恢复模板、未保存内容本地暂存。

随包精选插件

插件 作用 版本(package.json)
dsh-at-file 输入框 @ 搜索并引用工作区文件/目录 v0.6.0
dsh-better-sidebar VSCode 风格右侧边栏(资源管理器 / 编辑器 / 终端 / Git 等) ^0.12.2
@linxin666/dsh-client-ui-aionui-panel 右侧面板:文件树 / 预览 / Git 变更 ^0.1.16
@linxin666/dsh-client-ui-task-board 任务看板:多列 + cron 定时 ^0.1.16
@linxin666/dsh-live-stats 实时吞吐 / Token 统计 ^0.1.16
@linxin666/dsh-client-ui-web-ui-settings 全家桶设置页 ^0.1.16
@linxin666/dsh-skins + dsh-client-ui-skin-center 皮肤中心(10 款主题) ^0.1.16

安装与启用

SkillHub 与 GitHub README 给出的完整安装命令如下。安装前建议浏览仓库源码并确认 MIT 许可证;插件以当前 DSH 进程权限运行,安装即授予其相应能力。

dsh plugin --profile web add https://github.com/lilwhich/dsh-plugin-gather --config.block-exotic-subdeps=false --config.strict-dep-builds=false --config.minimum-release-age=0 --config.auto-install-peers=false

若只需部分插件,可逐个安装,例如:

dsh plugin --profile web add dsh-better-sidebar --config.strict-dep-builds=false --config.minimum-release-age=0 --config.auto-install-peers=false
dsh plugin --profile web add dsh-at-file --config.strict-dep-builds=false --config.minimum-release-age=0 --config.auto-install-peers=false

注意:本包内置的 7 项能力(账户状态栏、Checkpoint、全局设定、Diff Review、对话大纲、左侧栏文件/会话、安全模式等)仅随完整安装提供,单独装上述插件不会包含它们。

经过上面的步骤后,重启 dsh web 并硬刷新浏览器(Ctrl+Shift+R),新界面与 API 路由才会生效。

典型用法

1. 日常开发:边栏 + 快照 + Diff

完整安装后,左侧栏浏览工作区文件,右侧边栏查看 Git 变更与文件预览。Agent 开始改代码前会自动打 Checkpoint;改动过程中打开 Diff Review 审查行级 diff。若误改,在 CHECKPOINTS 中经两次确认恢复。

2. 长对话续作:对话迁徙

对话上下文接近上限或历史过长时,点击左侧栏「对话迁徙」。确认后等待预处理与分析完成,系统会打开新对话并注入 Handoff 摘要,原对话保留不动。状态栏会显示「已从上一对话迁徙」标记。

3. 跨项目统一规则:全局设定

在「全局设定」中编辑 ~/.dsh/AGENTS.md,写入对所有会话生效的编码规范、回复风格或工具使用约束。保存后新会话立即生效,当前会话下一轮自动刷新。

4. 引用文件:@ 路径

安装包内含 dsh-at-file。在输入框输入 @ 可搜索并引用工作区文件或目录,减少手动粘贴路径。

5. 删除前确认

保持默认「删除时确认」开启。Agent 执行删除操作时,确认框会列出路径与批量数量;拒绝后工具返回「用户拒绝了该删除操作。」,任务不中断。

适用场景与注意

适合谁

  • 刚接触 DSH Web、希望一条命令获得较完整界面与工具链的开发者。
  • 需要账户余额/峰谷时段感知、Checkpoint 回滚、长对话 Handoff 的日常智能体使用者。
  • 不想手动挑选并维护多个 UI 插件版本的用户。

注意事项

  • 插件以 DSH 进程权限运行,完整安装会拉取多个 npm 依赖与 GitHub tarball;安装前请检查源码与许可证(MIT)。
  • Checkpoint 在非 Git 项目下恢复不会删除快照后新增文件,使用前需了解该限制。
  • 账户余额接口依赖 host 配置 DEEPSEEK_API_KEY;未配置时相关展示可能不可用。
  • SkillHub(https://www.skillhub.cn)是社区插件目录,与 DeepSeek / 幻方无官方从属关系;版本与星标以各页面当时信息为准(当前 GitHub 10 stars,v0.9.6)。

结尾

dsh-plugin-gather 把 DSH Web 常用的界面插件与账户、快照、Handoff、全局指令等横切能力收成一条安装命令,减少逐个挂载与版本对齐的成本。若你正在搭建 DSH Web 日常环境,可先完整安装,再按需追加其它插件。

  • SkillHub 目录页:https://www.skillhub.cn/plugins/lilwhich/dsh-plugin-gather
  • GitHub 仓库:https://github.com/lilwhich/dsh-plugin-gather
羽毛球分组比赛记分
小程序二维码

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

小夜