Physicolor/harness-widgets ↗★ 0
harness-widgets
Right-hand widget rail for DeepSeek Harness Web UI: live session stats (turns, LLM/tool time, TTFT, speed, cache hit, tokens) plus OpenCode Go quota (rolling/weekly/monthly) proxied by a same-origin host route; an extensible widget registry as the base for more platform usage widgets, visuals, utility actions and external integrations. Widgets are installable, reorderable and resizable from Settings → Components.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Physicolor/harness-widgets说明文档
阅读完整 README ↗Harness Widgets
DeepSeek Harness Web UI 右侧部件栏:把会话统计以美观的小组件形式利用右侧空间呈现,并逐步扩展——更多平台的用量查询部件、更强的视觉表现(图片/定制图标)、更多实用工具(如一键 compact),乃至飞书、微信等外部接口集成。
Harness Widgets 是一个 client 为主、带少量 host 代理 的 DSH bundle 插件。它在会话页右侧提供一套可定制的部件面板,实时展示当前对话的轮次/耗时/速率/token 用量,以及 OpenCode Go 订阅套餐用量。
当前版本:v0.1.0(持续迭代中)
✨ 当前功能
1. 右侧部件栏
- 会话页右侧固定面板,随会话头对齐;与 dsh-better-sidebar 的右栏并排(锚定
--dsh-sidebar-width,侧边栏展开/收起时同步滑动,互不遮挡); - 会话页头部新增"组件"胶囊开关(
conversation.session.header.utilitiesslot); - 卡片可拖拽调整大小(100–220px),仅在有活跃会话时显示,无会话时自动隐藏。
2. 实时会话统计(内置 7 个系统部件)
| 部件 | 内容 |
|---|---|
| 轮次·步数 | 本轮会话的轮次与步骤计数 |
| LLM 时长 | 模型推理累计耗时 |
| 工具调用 | 工具调用累计耗时 |
| 首 token 平均 | 平均首 token 延迟 |
| 速率 | 解码吞吐(tok/s) |
| 缓存命中 | 输入缓存命中比例 |
| Tokens | 输入 / 输出 token 计数 |
- 数据来自官方
sessionStats/tokenUsage投影 + 会话 timeline 折叠,进行中的回合每秒增量刷新(1s tick),不是等回合结束才更新。
3. OpenCode Go 套餐用量(3 个外部部件)
- 滚动 / 每周 / 每月三个用量窗口 + 百分比 + 重置时间;
- host 半注册同源路由
/api/opencode-usage,代理https://opencode.ai/zen/go/v1/usage——浏览器不发跨域请求,API 密钥不出浏览器; - 密钥走 DSH credentials 缝(
OPENCODE_GO_API_KEY,与 Models 设置页配置的 opencode-go provider 是同一把),每次请求时解析,不落盘。
4. 设置 → 组件 页 + 通用设置行
- 部件预览 / 安装与卸载(系统部件 vs OpenCode Go 部件分组展示);
- 拖拽排序、卡片大小、面板内边距;
- 全部偏好持久化在 localStorage,刷新保留。
🔧 工作原理
- 部件注册表:
WIDGETS是一组声明式描述符(id / 名称 / 说明 / 是否内置 / 分组 / 纯函数render),部件栏与设置页共用同一注册表——新增部件只需追加一条描述符;