Back to home

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 状态栏。

English

简介

dsh-hud 是一个标准的 Host + Client 插件 bundle:无运行时补丁、无 node_modules 修改。它以青春系二游 HUD 的视觉语言,把当前 Agent 会话的健康度可视化在侧边栏底部。

截图

截图待补充(重启 BigFish 后补充 wide / rail / collapsed 三种状态)。

三个仪表

HP —— 剩余上下文容量

当前 Session 剩余可用的上下文比例。

  • 数据来源:Harness 的 contextPressure projection(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/startturn/end 为区间,对所有 session 做 interval union 去重(重叠区间不重复计数)。
  • 进行中的 turn 计到当前时刻。

Provider-aware MP

Provider资源数据源
DeepSeek Official(deepseek-official账户余额(¥)GET /user/balance
OpenCode Go(opencode-go5H / Weekly / Monthly quotaGET /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 值取 bottleneckmin(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.json peerDependencies)
  • Node.js:≥ 20(构建使用 Node 22 验证)
  • 平台:Web profile(浏览器)

Security

Provider 的凭证只在 Harness Host 进程内通过 ctx.credentials.resolve() 解析:

  • 凭证以“环境变量名 / credential 引用”的形式出现,例如 DEEPSEEK_API_KEYOPENCODE_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 的自动判断。

License

MIT