前言¶
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 删除命令(rm、del、Remove-Item 等),并避免对 git rm、npm 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