yascitom/dsh-opencode-go-box ↗★ 1
dsh-opencode-go-usage
DeepSeek Harness plugin: query OpenCode Go subscription usage from the settings sidebar
AI Analysis
提供 OpenCode Go 额度窗口监控、会话级 Token 消耗明细、缓存命中率统计及双语切换。适合使用 OpenCode Go 模型并需要精确监控用量的用户。
Install
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:yascitom/dsh-opencode-go-boxREADME
Read the full README ↗dsh-opencode-go-usage
中文 | English
一个 DeepSeek Harness Web-GUI 插件,为接入 OpenCode Go 模型的用户提供完整用量观测:
- 额度窗口:5 小时滚动 / 每周 / 每月 三个窗口的已用百分比、套餐参考限额和重置时间;
- DSH 会话明细:DeepSeek Harness 中每个使用 opencode-go 模型的会话的 token 用量,并可下钻到每一次模型调用(turn/step 级);
- 缓存统计:会话累计、单会话、单次调用三个层级都展示缓存读取(命中)/ 缓存写入,并计算缓存命中率(缓存读取占全部输入的比例);
- 模型筛选:按模型分组筛选会话(chips),查看每个模型的用量与缓存情况,并附按模型汇总对比表;
- 双语界面:内置中文 / English 两套文案,面板右上角可一键切换语言(与「设置 → 通用 → 语言」联动并持久化);
- 底栏常驻挂件:输入框下方一行实时额度(30s 轮询),按阈值自动变色。
功能特性
- 设置侧边栏新增 "OpenCode Go" 栏目(
settings.section贡献),内含「额度」「DSH 会话明细」两个标签页 - Host 端 Typert Remote
opencodeUsage:usage/dshUsage/dshSessionMessages三个方法 - DSH 会话明细完全基于 DeepSeek Harness 自身的会话日志(每条
assistant/message事件自带 token 记账),不依赖本机是否安装 OpenCode 客户端,任何 DSH 部署都能用 - 缓存统计:
cacheReadTokens(命中)/cacheWriteTokens(写入)按会话、按调用展示;命中率 = 缓存读取 ÷(非缓存输入 + 缓存读取) - 模型筛选:会话按
source.model分组,chips 一键筛选,筛选后累计卡片与列表同步收窄;全部模型时展示「按模型汇总」表(会话数 / 输入 / 缓存读取 / 缓存写入 / 输出 / 推理 / 命中率) - 底栏挂件(
conversation.composer.dock贡献):🟢 5h 22% · W 13% · M 13% · ↻ 2h13m(W=每周、M=每月、↻=重置倒计时,悬停显示完整文字),按 5 小时滚动窗口阈值变色(默认
`` 即接入模型时已存储的 OpenCode Go key(`sk-opencode-…`)。接口返回:
```json
{
"usage": {
"rolling": { "status": "ok", "percent": 9, "resetsAt": "…" },
"weekly": { "status": "ok", "percent": 12, "resetsAt": "…" },
"monthly": { "status": "ok", "percent": 6, "resetsAt": "…" }
}
}
percent 取值 0–100;resetsAt 为 ISO-8601 时间。该接口尚未出现在 OpenCode 的公开文档中。
目录结构
| 文件 | 作用 |
|---|---|
index.js | Host 半部 —— OpencodeUsageGateway(TypertRemoteService,服务键 opencodeUsage) |
typert.host.js | 手写 Typert Host 清单,通过 exports["./typert"] 注册 |
client.js | window.__ModuleLoader__.load 格式的浏览器 bundle —— 挂载 Remote、注册栏目与底栏挂件、渲染页面 |
cordis.patch.yml | Bundle patch,插入插件行(id: opencode-go-usage) |
package.json | 双面声明:main + exports["./client"] + exports["./typert"] + dsh.client + dsh.bundle |
已知限制
- 用量接口未公开文档,可能变更;解析做了防御性处理,非 200 响应会以友好状态提示而非崩溃。
- 限额($12 / $30 / $60)仅作展示参考,并非接口返回内容;它们随 OpenCode Go 套餐而定,可能漂移。
- DSH 会话明细统计的是 DSH 会话日志中的 token 记账(不含花费金额),只覆盖 DeepSeek Harness 内的对话。
License
MIT
配置
Host 端可调项位于插件行(id: opencode-go-usage);在
$DSH_HOME/profiles/web/cordis.patch.yml 中覆盖:
- id: opencode-go-usage
config:
baseUrl: https://opencode.ai/zen/go/v1/usage # 默认值
timeoutMs: 15000 # 默认值
warnPercent: 60 # 默认值:≥60% 变橙
dangerPercent: 85 # 默认值:≥85% 变红
maxSessions: 30 # 默认值:DSH 明细最多扫描的会话数
| 键 | 默认值 | 含义 |
|---|---|---|
baseUrl | https://opencode.ai/zen/go/v1/usage | 用量查询接口地址。 |
timeoutMs | 15000 | 请求超时时间(毫秒)。 |
warnPercent | 60 | 5 小时滚动窗口达到该百分比后挂件变橙。 |
dangerPercent | 85 | 5 小时滚动窗口达到该百分比后挂件变红。 |
maxSessions | 30 | DSH 会话明细扫描的最近会话数上限。 |