yuanliangxiannan
dsh-hud
A game-style HP / MP / TIME status HUD for the DeepSeek Harness sidebar — provider-aware MP, workspace-cumulative TIME, and collapsible wide/rail layouts.
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
dsh-hud
一个 DeepSeek Harness Web UI 插件,在侧边栏底部(sidebar.footer.action)提供游戏 HUD 风格的 HP / MP / TIME 状态栏。
简介
dsh-hud 是一个标准的 Host + Client 插件 bundle:无运行时补丁、无 node_modules 修改。它以青春系二游 HUD 的视觉语言,把当前 Agent 会话的健康度可视化在侧边栏底部。
截图
截图待补充(重启 BigFish 后补充 wide / rail / collapsed 三种状态)。
三个仪表
HP —— 剩余上下文容量
当前 Session 剩余可用的上下文比例。
- 数据来源:Harness 的
contextPressureprojection(projectedTokens/contextWindow)。 HP% = clamp(100 × (1 − projectedTokens / contextWindow))。- 颜色随容量分级:绿 → 黄绿 → 金 → 橙 → 红。
MP —— 当前 Provider 的剩余资源
MP 表示 当前 Session 实际选中的 Model Provider 的可用资源,而不是某个固定账户余额。
- 判断依据是 Provider 路由(provider route),绝不是 model 名——同一个 model 名在不同 Provider 下会显示不同的资源。
- 未适配的 Provider 显示
--与NO QUOTA DATA,不会串显上一 Provider 的余额。
TIME —— Workspace 累计时间
当前 Workspace 内跨 Session 累计的 Agent 工作时间。
- 以
turn/start→turn/end为区间,对所有 session 做 interval union 去重(重叠区间不重复计数)。 - 进行中的 turn 计到当前时刻。
Provider-aware MP
| Provider | 资源 | 数据源 |
|---|---|---|
DeepSeek Official(deepseek-official) | 账户余额(¥) | GET /user/balance |
OpenCode Go(opencode-go) | 5H / Weekly / Monthly quota | GET /zen/go/v1/usage |
| 其它 | --(NO QUOTA DATA) | 无适配器 |
DeepSeek Official
MP 显示账户总余额(如 ¥10.73),进度条相对 mpMaxBalance(默认 50 CNY,超过则满格并显示真实金额)。
OpenCode Go
官方套餐定义为 Rolling 5 hours / Weekly / Monthly 三个同时生效的窗口。UI 优先显示百分比:
- 每个窗口的
remaining = clamp(100 − usagePercent)。 - 主 MP 值取 bottleneck:
min(rolling, weekly, monthly),即最先可能耗尽的资源。 - 主进度条同样使用 bottleneck。
示例:
◇ MP 78%
[MP bar]
5H 92% · W 78% · M 86%
OPENCODE GO // 02
布局
Wide Sidebar(宽侧边栏)
完整三仪表 HUD:STATUS 卡片头 → HP → MP → TIME。每个仪表可点击展开 popover 查看详情。
56px Rail(窄侧边栏)
当 Harness 自身折叠到 56px rail 时,显示三根 mini 竖条(HP / MP / TIME)+ hover tooltip,不占纵向空间。
HUD 折叠 / 展开
宽侧边栏的完整 HUD 可手动折叠成单个图标按钮(约 34px),再次点击恢复。
- 偏好保存在
localStorage,key 为dsh-hud:collapsed。 - 默认展开;收起后刷新/重启仍保持;切换 Session / Workspace 不改变该偏好。
安装
BigFish 用户
从 Releases 下载 dsh-hud-0.1.0.tgz,然后:
dsh plugin --profile web add ./dsh-hud-0.1.0.tgz
dsh plugin 会自动把 dsh-hud 加入 dsh.profile.bundles。完全退出并重启 BigFish 后生效。
原生 DeepSeek Harness 用户
dsh plugin add ./dsh-hud-0.1.0.tgz
从源码构建
npm install
npm run build
npm pack # 产出 dsh-hud-0.1.0.tgz
配置
可选 hud: 配置段,写入 $DSH_HOME/settings.yaml(有 schema 注册,缺省使用安全默认值):
hud:
mpMaxBalance: 50 # 余额折算为满格 MP 条的金额(CNY)
balanceRefreshMinutes: 5 # Host 侧资源刷新间隔(分钟)
Build
npm install
npm run build # tsc (strict) host + esbuild client bundle → lib/
npm run typecheck # 仅 strict 类型检查
node scripts/verify-host.mjs # host 逻辑验证(真实历史测试可选,见下)
构建会从已安装的 BigFish 发行版解析 @deepseek-ai/* 类型声明;可用 DSH_TYPES_ROOT 覆盖位置。
verify-host.mjs 的真实历史聚合测试是可选的:设置 DSH_HOME(默认 ~/.dsh)与 DSH_HUD_VERIFY_WORKSPACE(要验证的 workspace 绝对路径)后才会执行;未设置时跳过该段,纯逻辑测试始终运行。
Compatibility
- DeepSeek Harness / BigFish:
@deepseek-ai/*0.1.0-rc.6(见package.jsonpeerDependencies) - Node.js:≥ 20(构建使用 Node 22 验证)
- 平台:Web profile(浏览器)
Security
Provider 的凭证只在 Harness Host 进程内通过 ctx.credentials.resolve() 解析:
- 凭证以“环境变量名 / credential 引用”的形式出现,例如
DEEPSEEK_API_KEY、OPENCODE_GO_API_KEY;源码中绝无真实 Key / Token。 - 解析后的密钥值绝不进入:
- Client bundle
- RPC DTO
localStorage- README
- 日志
- OpenCode Go 的凭证引用由
llm-pi-ai配置的apiKeyEnv决定,dsh-hud 只复用该 Provider 已有的凭证,不要求重复填写。
Known Limitations
- v0.1.0 仅内置两个资源适配器:DeepSeek Official 与 OpenCode Go;选择其它 Provider(GLM、OpenRouter、自定义 Provider 等)时 MP 显示
--。 - Rail 模式不显示数字,仅 mini 竖条 + tooltip。
- 无 EXP / 等级 / 成就 / 统计图 / 历史记录等扩展功能。
- HUD 折叠为纯手动操作,不做基于 Workspace 数量或 overflow 的自动判断。