前言¶
在 DeepSeek Harness(DSH)里走 OpenCode Go 时,官方 /inference/go/v1/usage 只给一组四舍五入的 rolling / weekly / monthly 百分比,且不区分模型;实际套餐却是按模型分别计额度。多账户轮换又往往交给另一个插件维护状态文件。若要在设置里一眼看到「每个模型本月还剩多少、本周烧了多少」,并在同一页管理账户池,就需要把会话日志、官方额度快照和账户路由读在一起展示。下面介绍社区插件 2869949486/dsh-opencode-usage(npm 包名 dsh-opencode-usage-settings,当前版本 1.4.1)的做法。
这是什么¶
维护者 GitHub 用户 2869949486,分类为客户端,同时在 Host 侧暴露 JSON 接口。一句话定位:在 DSH 设置里提供「OpenCode 账户与用量」页面,按模型统计 OpenCode Go 套餐用量与剩余额度,并逐个账户展示官方额度;账户池数据只读 dsh-opencode-quota-router 的状态文件,管理操作走该路由插件的 HTTP 接口。
插件简介(目录页):DSH plugin: per-model OpenCode Go usage and remaining allowance in a Settings page。完整能力以 GitHub README 为准。
核心功能¶
设置页(客户端)¶
页面挂在 DSH 设置 → OpenCode 账户与用量(settings.section 槽位),依赖 @deepseek-ai/dsh-client-ui-settings 注入,Web 端 immediately: true 加载。
- 每 60 秒自动刷新;右上角有「立即刷新」。
- 模型相关表格以「本月剩余 / 本月用量 / 本周用量」为列头;表格支持按住左右拖动。
- 页面上还有「此刻用哪个更划算」类卡片:按每 100 万输出 tokens 折算金额,汇率默认
cnyPerUsd为 7.1(可在cordis.patch.yml修改)。
数据接口(Host)¶
设置页数据源:
GET /opencode-usage.json
需要先用官方接口拉一次额度快照时:
GET /opencode-usage.json?refresh=1
价格与峰谷相关信息:
GET /opencode-usage.prices.json
(价格 JSON 在 README 中与 peak.chinaHolidays、下游账本对齐有关;具体字段以仓库为准。)
数据接口只监听回环地址;插件路由本身不做鉴权,部署时需注意本机访问边界。
多账户与账户管理¶
账户池由 dsh-opencode-quota-router 拥有,状态文件路径为 $DSH_HOME/opencode-quota-router.json。本插件只读该文件获取账户列表;增删改、探测、排序等管理通过 GET|POST /opencode-quota-router.json(quota-router 插件提供)完成。因此在同一设置页既能看额度,也能管账户。
页面上主要包括:
- 顶部状态条:
正常/全量回退及原因、当前账户、下次探测;「立即探测」「重置封禁标记」。 - 账户表:掩码后的密钥、官方 5 小时 / 本周 / 本月百分比、状态(可用 / 额度用尽 / 鉴权失败 / 已停用 / 未配置)。
- 行内操作:设为当前、↑ / ↓ 调顺序、停用 / 启用、改密钥、删除。
- 添加账户:填写备注与
oc_sk_…形式密钥;密钥写入凭据库,页面仅显示掩码。
按顺序使用的行为(由账户池策略描述):当前账户任一窗口用尽时自动切到下一个并重试当前步骤,全部用尽才回退备用模型。按模型的统计仍是全局的——会话日志不区分具体用了哪个账户的密钥。
状态文件不存在时,页面退化为 apiKeyRef 指向的单个账户;两个插件分开安装也可各自工作。
响应里与账户相关的字段包括:accounts[](id / label / keyRef / enabled / active / configured / hint / usage / usageError / checkedAt)、activeAccount、usage(当前账户)、usageError。
按模型用量怎么算¶
官方 usage 接口无法按模型拆分,本插件自行汇总:
- 启动时回扫
$DSH_HOME/sessions下近 40 天会话日志,取每条assistant/message的usage与message.source(时间用事件自带的time)。 - 之后监听
session/event,同一套 reducer 写入内存。 - 金额按内置价格表(离峰 / 标准价)估算;DeepSeek 模型在 UTC 周一至周五 01–04、06–10 峰段乘 2;免费模型价格为 0。中国法定节假日规则见下一节。
- 窗口起点优先用官方
resetsAt反推,monthly以 UTC 月初为界。
页面上仍会展示官方那一行百分比,供与自算结果交叉核对。
峰谷、节假日与套餐¶
页面上有两套时钟,用于「此刻用哪个更划算」等展示:
| 峰段时段 | 是否认中国法定节假日 | |
|---|---|---|
| OpenCode Go | UTC 周一至周五 01–04、06–10 | 不认(节假日白天仍可能按峰段计) |
| DeepSeek 官方 API | 北京周一至周五 09–12、14–18 | 认,节假日整天算谷 |
Go 不认节假日来自官方答复(issue anomalyco/opencode#53071):Go pricing follows our own schedule, not DeepSeek’s holiday calendar.
内置日历 HOLIDAYS(2026–2031)主要服务官方 API 一侧:判断「官方此刻是否谷段」、/opencode-usage.prices.json 的 peak.chinaHolidays 与下游账本对齐,以及在 holidayAware: true 时让历史估算走官方口径。默认 holidayAware: false,按模型统计金额即 Go 账单口径。
经济结论(README 说明,非实测案例):Go 套餐约 $10/月换 $100 官方价额度,额度内走 OpenCode 相对官方直连约为一折量级;峰段使额度消耗加快,但通常仍低于官方直连现价。例外包括额度用尽或某模型先触顶(例如 Go 档 Pro 月额度约 $15)。
cordis.patch.yml 的 plan 决定各模型月额度表,可选 go(默认)、go-plus、go-teams。官方百分比仅在额度变化 ≥1.5× 等明确场景下便于自动识别;Go $100 与 Go Teams $105 差距在估算噪声内时以配置为准。
安装与启用¶
已抓取 README 未给出 dsh plugin add … 一类安装命令,此处不编造命令。一般可在 DSH 社区目录页查看该插件的安装说明:
- 目录页:https://www.skillhub.cn/plugins/2869949486/dsh-opencode-usage
- 源码与文档:https://github.com/2869949486/dsh-opencode-usage
package.json 要求 DSH 引擎:
"engines": {
"dsh": "^0.2.0-rc.1"
}
许可证:MIT。bundle 通过 cordis.patch.yml 打补丁;客户端导出 ./client,Host 入口为 ./index.js。
若需完整多账户 UI 与路由,需同时安装并配置 dsh-opencode-quota-router;仅单账户时可只依赖 apiKeyRef 退化模式。
典型用法¶
- 安装并启用插件后,打开 DSH 设置,进入 OpenCode 账户与用量。
- 查看按模型排列的本月剩余、本月用量、本周用量;需要时点击「立即刷新」,或等待 60 秒自动刷新。
- 多账户场景:在「账户」表中设为当前、调整顺序、停用或改密钥;通过「添加账户」写入
oc_sk_…密钥。 - 需要强制同步官方额度后再看页面数据时,可对 Host 请求:
GET /opencode-usage.json?refresh=1
- 调整套餐档位或汇率时,编辑插件自带的
cordis.patch.yml(plan、cnyPerUsd、holidayAware等,以仓库文件为准)。
适用场景与注意¶
适合谁:在 DSH 内长期使用 OpenCode Go、需要按模型看 harness 内用量估算,并希望在设置页统一管理 quota-router 账户池的开发者。
局限(README 原文要点):
- 只统计本 harness 发出的调用;OpenCode 官方客户端等其它工具不计入。
- 金额为估算;官方百分比无法按模型拆分,页面仅作对照展示。
- 数据接口监听回环、路由无鉴权,勿暴露到不可信网络。
安全:插件以当前 DSH 进程权限运行,会读取 $DSH_HOME/sessions、账户状态与凭据引用。安装前请阅读源码与 MIT 许可证,确认密钥与日志访问范围可接受。
DSH 生态强调「一切皆插件」;skillhub.cn 上的社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-opencode-usage 把 OpenCode Go 的按模型用量估算、官方额度快照和多账户管理收进同一设置页,并辅以 Host 侧 opencode-usage.json 供自动化读取。若要核对功能细节或提交 issue,见 GitHub 仓库 2869949486/dsh-opencode-usage;目录入口见 skillhub 插件页。