前言¶
用 DeepSeek Harness(DSH)跑多模型会话时,额度往往分散在不同上游:OpenCode Go 有滚动 / 周 / 月窗口,Command Code 有 5 小时与周窗口,DeepSeek 官方则是账户余额。切模型后若仍靠浏览器外查用量,容易打断调试节奏。下面介绍社区插件 dsh-model-surplus(维护者 itchenshi),它在 会话标题右侧 按 当前选中的模型 展示对应分区的用量、套餐额度或余额;不属于 npm 包,需通过 DSH 插件机制或 DSH Ready GUI 安装。
这是什么¶
dsh-model-surplus 是 DSH 的 客户端(Web) 插件:小组件挂在会话标题右侧,用到哪个模型就显示哪一份数据,切换模型会立即显示或隐藏。上游 HTTP 请求在 宿主端 发出,API 密钥从引擎凭据服务按引用读取,不会下发到浏览器。三个业务分区(OpenCode Go、DeepSeek、Command Code)各自独立上报;只配置其中一个分区的密钥时,其余分区仍可工作,缺失部分会显示原因(如 no key、usage n/a)。
核心功能¶
OpenCode Go¶
- 展示滚动、周、月三个窗口的 用量百分比(账户级,上游接口不按单模型拆分百分比)。
- 展示 当前所选模型 的月度上限(例如
上限 $60);上限数据来自公开文档页,与百分比来源不同,二者可能对不齐,属预期行为。
DeepSeek¶
- 展示账户余额:总余额 / 赠送 / 充值。
- 余额不可用时显示「余额不足」。
Command Code¶
- 展示 5 小时 / 周 两个窗口的已用与上限。
- 展示账户 剩余额度。
刷新与可见性¶
- 小组件约 每 60 秒 向宿主路由拉取一次展示数据。
- 各分区上游结果在宿主侧 缓存 120 秒;失败后 30 秒内不重试。
- 仅当当前选中模型属于某分区配置的 providers 路由集合时,该分区相关 UI 才会出现;自定义路由名需写入对应分区的
providers。
安装与启用¶
DSH Ready GUI(推荐)¶
插件随 GUI 内置:打开 GUI → 设置窗口 →「第三方插件」勾选 模型余量,安装完成后按提示 刷新页面(插件包含页面侧组件)。
其它 DSH 宿主(dsh web / CLI)¶
任选一条命令安装(均包含 cordis.patch.yml,装完无需额外配置):
# 推荐:直接从 GitHub 装
dsh plugin --profile web add github:itchenshi/dsh-model-surplus
# 备选:从 Release tarball 装(示例版本 v0.4.6)
dsh plugin --profile web add https://github.com/itchenshi/dsh-model-surplus/releases/download/v0.4.6/dsh-model-surplus-0.4.6.tgz
本包 不在 npm registry(registry.npmjs.org 无此包),只能使用上述方式或 GUI 内置项。
安装后 重启引擎并刷新页面,小组件才会出现在会话标题右侧。
凭据与配置¶
默认凭据引用¶
| 分区 | 默认凭据引用 |
|---|---|
| OpenCode Go | OPENCODE_GO_API_KEY |
| Command Code | COMMANDCODE_GOAT_API_KEY |
| DeepSeek | DEEPSEEK_API_KEY |
宿主启动时若插件已加载,日志中会出现类似 [model-usage] active (opencode-go: providers=opencode-go|opencode key=OPENCODE_GO_API_KEY; ...) 的行;没有该行说明插件未加载。
cordis.patch.yml(id: model-usage 的 config,均可选)¶
| 键 | 默认 | 说明 |
|---|---|---|
enabled |
true |
false 时整个插件直接返回 |
opencodeGo.baseUrl |
https://opencode.ai/zen/go/v1 |
上游根地址 |
opencodeGo.apiKeyRef |
OPENCODE_GO_API_KEY |
凭据引用名 |
opencodeGo.providers |
[opencode-go, opencode] |
视为 OpenCode Go 的路由 |
deepseek.baseUrl |
https://api.deepseek.com |
上游根地址 |
deepseek.apiKeyRef |
DEEPSEEK_API_KEY |
凭据引用名 |
deepseek.providers |
[deepseek-official] |
视为 DeepSeek 的路由 |
commandcode.baseUrl |
https://api.commandcode.ai |
额度接口根地址;写聊天地址 .../provider/v1 也认 |
commandcode.apiKeyRef |
COMMANDCODE_GOAT_API_KEY |
凭据引用名 |
commandcode.providers |
[commandcode-goat, commandcode] |
视为 Command Code 的路由 |
顶层直接写 baseUrl / apiKeyRef / providers 时,仍按 opencodeGo 分区解读(插件早期仅支持 OpenCode Go)。
OpenCode Go 单模型月度上限:插件从 https://opencode.ai/docs/zh-cn/go/ 抓取并缓存在 <DSH_HOME>/logs/model-surplus-limits.json,每 24 小时刷新;失败时回退缓存或内置表。
典型用法¶
- 在 DSH 凭据服务中配置你实际使用的分区密钥(至少一个即可)。
- 按上文方式安装插件,重启引擎并刷新 Web 页面。
- 在会话里 选中 属于 OpenCode Go、DeepSeek 或 Command Code 的路由模型,观察标题右侧小组件;切换到不受跟踪的路由时组件会隐藏。
- 若显示
no key,检查对应分区的apiKeyRef与宿主中的密钥是否一致;若看不到组件,检查当前模型是否在对应providers列表中。
适用场景与注意¶
适合:长期在 DSH Web 界面调试多上游模型、需要在同屏查看套餐用量或 DeepSeek 余额的开发者。
环境与兼容(以仓库 package.json 为准):
- DSH >= 0.1.5-rc.2(清单标注与
0.1.5-rc.2、0.2.0-rc.2兼容)。 - Node >= 20。
- 更早引擎版本未测试;各分区可独立降级。
安全与信任:插件以 当前 DSH 进程权限 运行,并代表你向配置的上游发起请求。安装前请阅读 GitHub 源码 与 MIT 许可证,确认凭据引用与 baseUrl 符合你的部署策略。DSH 社区插件目录(如 SkillHub 目录页)为独立生态站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-model-surplus 把 OpenCode Go 窗口用量、Command Code 额度与 DeepSeek 余额收敛到会话标题旁,且随当前模型切换,减少在多站点之间核对额度的次数。进一步了解可访问目录页 itchenshi/dsh-model-surplus 与仓库 github.com/itchenshi/dsh-model-surplus。