前言¶
在 DeepSeek Harness(DSH)里跑会话时,经常需要同时看回合数、token、TTFT、缓存命中、上下文水位和任务状态,有时还要查 OpenCode Go 用量或 DeepSeek 高峰计价窗口。这些信息如果散落在终端、日志或外部页面里,切换成本会比较高。
下面介绍的 dsh-widgets 是 DeepSeek Harness Web UI 的右侧组件插件,把这些信息集中放到会话页右侧,并允许从设置中安装、排序和调整组件。
这是什么¶
dsh-widgets 由 Physicolor 维护,定位为 DeepSeek Harness 的右侧组件系统。
已核实材料显示,它是一个基于 Cordis composition model 的持久 DSH bundle 插件,许可证为 MIT。它主要解决三类问题:
- 展示 DSH Web UI 会话运行指标,例如 turns、LLM/tool time、TTFT、rate、cache hits、tokens。
- 提供 task、context、heatmap、quote 等常用组件。
- 支持从
Settings > Components安装、排序和调整组件,并内置组件市场。
核心功能¶
实时会话指标¶
dsh-widgets 提供右侧 widget rail,用于展示实时会话统计,包括:
- turns
- LLM/tool time
- TTFT
- rate
- cache hits
- tokens
这些信息适合放在会话旁边查看,减少对终端、日志或外部页面的切换。
常用组件¶
除实时指标外,已核实的功能还包括:
- task widget
- context widget
- heatmap widget
- quote widget
- peak pricing widget,用于展示 DeepSeek peak-pricing windows
- OpenCode Go quota / usage 展示
其中,OpenCode Go quota / usage 通过 same-origin host proxy 获取,使用 DSH credentials。
多列网格与 2x4 长卡¶
组件栏支持多列网格布局,可配置为:
1列2列4列
已核实材料中,默认列数为 2 列。组件还支持 2x4 长卡形态,以及 per-instance sizing,因此同一个组件可以按不同尺寸安装和调整。
连续放大效果¶
dsh-widgets 提供 continuous magnification wave。
可以在 Settings → Components → Realtime follow 中切换该效果。开启后,右侧组件在指针移动时会产生连续放大反馈,而不是简单的整栏放大。
内置组件市场¶
插件内置 component marketplace,支持:
- 浏览组件
- 搜索组件
- 预览组件
- 按
widget@size安装组件
已安装组件支持 reorderable、resizable,并可在 Settings > Components 中继续管理。
可扩展组件注册表¶
dsh-widgets 提供 extensible widget registry,并采用 build-time discovery。
也就是说,新增组件不是直接手写维护一份注册表,而是按 widget unit 的方式扩展,构建时再生成注册表。后文会在典型用法中给出相关命令。
安装与启用¶
当前已核实材料中未提供官方 DSH 插件安装命令,因此本文不给出拼接命令。
接入前可以先核对以下信息:
- 支持:
DeepSeek Harness 0.1.x - Peer dependency:
@deepseek-ai/cordis ^4.0.1 - 许可证:
MIT
启用后,widget rail 的配置会持久化到:
profiles/web/dsh-widgets-state.json
如果使用 OpenCode Go quota / usage,需要准备 DSH credentials。宿主侧会注册 same-origin proxy routes,浏览器端不发起跨域请求。
典型用法¶
1、设置列布局¶
先在 Settings > Components 中设置右侧组件栏的列数。
可选值为:
1
2
4
已核实材料中,默认列数为 2 列。
2、安装组件¶
打开内置的 Component Marketplace,可以浏览、搜索和预览组件。
安装时按 widget@size 选择,例如同一个 widget 可以按不同尺寸安装。安装完成后,可以在已安装列表中继续排序或调整尺寸。
3、切换放大效果¶
如果需要 continuous magnification wave,可以进入:
Settings → Components → Realtime follow
在这里切换该效果。关闭后,组件栏回到常规展示状态。
4、查看 OpenCode Go 用量¶
OpenCode Go quota / usage 依赖 DSH credentials,并经由 same-origin host proxy 获取。
启用后,浏览器不发起跨域请求。使用流程是先准备 DSH credentials,再在组件栏中查看相关 quota / usage 组件。
5、开发自检¶
如果需要在本地验证网站或组件状态,可以运行:
node website/verify.mjs
这一步用于执行 website self-verification。
如果扩展了 widget 相关代码,需要重新生成注册表:
pnpm build
pnpm check:registry
pnpm build 会再生 registry。pnpm check:registry 会在 registry stale 时报错,便于及时发现注册表未更新的问题。
适用场景与注意¶
适合以下场景:
- 需要在 DSH Web UI 右侧查看 turns、LLM/tool time、TTFT、rate、cache hits、tokens 等会话指标。
- 需要把 task、context、heatmap、quote 等组件放在同一侧栏管理。
- 需要查看 OpenCode Go quota / usage。
- 需要按
widget@size安装、排序和调整组件。 - 需要基于 extensible widget registry 扩展新的 widget unit。
使用前注意:
- 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
- 已核实材料未提供官方 DSH 插件安装命令,不要凭仓库名自行拼接安装命令。
- OpenCode Go quota / usage 依赖 same-origin proxy 和 DSH credentials。
- Peak pricing 时刻表当前是 hard-coded,custom schedule 在路线图中。
- 组件栏配置会写入
profiles/web/dsh-widgets-state.json。 - 社区目录是独立站点,不等同于 DeepSeek 或幻方的官方应用商店。
结尾¶
dsh-widgets 的价值在于把 DSH 会话中常用的运行指标、组件管理、用量展示和高峰计价信息集中到右侧组件栏,减少开发者在多个页面之间来回切换。
目录页:
https://www.skillhub.cn/plugins/Physicolor/dsh-widgets
GitHub:
https://github.com/Physicolor/dsh-widgets