前言¶
用 DeepSeek Harness(DSH)跑长会话时,模型调用会落在 OpenCode Go 订阅上,但控制台里的 request log 和 DSH 会话界面是分开的。想回答「这一轮 DSH 会话到底花了多少美元、用了哪些模型」,往往要在 opencode.ai 控制台里自己筛时间窗口、加总 cost 字段。
下面介绍的插件 dsh-oc-go-usage(维护者 x01Jin,社区分类 admin-security)把 OpenCode 控制台推理请求日志接到 DSH Web GUI:在会话标题栏增加 Opencode Go 标签页,并提供 /opencode-go 命令输出同一套数字。数据来源是官方 console API,不是估算。
这是什么¶
一句话:DSH 插件,按 当前 DSH 会话的时间窗口 汇总 OpenCode Go 订阅在控制台 request log 里的 USD 成本与 token 统计。
- 仓库:github.com/x01Jin/dsh-oc-go-usage
- 目录页:skillhub.cn/plugins/x01Jin/dsh-oc-go-usage
- 许可证:MIT(见仓库 README)
社区插件目录是独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 本身遵循「一切皆插件」的扩展方式,本插件是其中一条 admin-security 类工具链。
核心功能¶
界面与命令¶
- 会话头部分页:Chat、Trajectory 旁增加 Opencode Go;会话开始后才出现。
- 斜杠命令:
/opencode-go,以纯文本打印与标签页相同的汇总。
标签页展示内容(README 已列)¶
- 会话窗口内:总成本、请求次数、token 合计(input / output / cache reads)。
- 按模型:成本与请求次数。
- 最近六条请求。
- 按本地小时:成本与请求次数。
- 从 DSH 宿主读取的会话指标:轮次、步数、LLM 与 tool 耗时、tokens/s、缓存命中率、上下文构成等。
- Refresh 手动刷新;Save .txt 用系统文件夹选择器写入纯文本快照。
数字怎么算¶
OpenCode 在控制台为每次推理保留一行 request log,含 startedAt、finishedAt、模型、token、outcome、USD cost。插件请求:
GET https://opencode.ai/console/api/request-logs
?category=inference&since=<session start>&until=<now>&limit=100
since 取 DSH 会话 header.createdAt,until 为当前时间,窗口即会话生命周期;窗口内各行 cost 相加为总成本。匹配依据是 时间,不是 session id——同一 OpenCode Go workspace 在窗口内若有其他客户端请求,也会被计入。
安装与启用¶
前提(README Requirements):
- 带 Web GUI 的 DSH
- OpenCode Go 订阅
- 能访问 opencode.ai 控制台
安装命令(原文):
dsh plugin add github:x01Jin/dsh-oc-go-usage
或在 GUI:Settings → Plugins → Add plugin,粘贴 github:x01Jin/dsh-oc-go-usage。重启 DSH 或刷新页面后,会话开始后可见标签页。
连接控制台(典型用法)¶
该 API 需要 浏览器控制台会话,个人 API key(oc_sk_...)访问此端点会返回 403。
- 打开 https://opencode.ai/console,打开 DevTools Network。
- 刷新页面,选中任意
request-logs请求。 - 复制该请求 完整
cookie请求头值。 - 在本会话 Opencode Go 标签页,粘贴到 Console session,点 Save。
workspace id(控制台 URL 中的 wrk_...)在控制台允许时会自动发现;若界面要求填写,可粘贴 id 或完整控制台 URL。插件接受 cookie: ... 或 authorization: Bearer ...;凭证存于 DSH credential store 的 OPENCODE_CONSOLE_COOKIE,workspace 为 OPENCODE_CONSOLE_WORKSPACE。仅宿主进程向 opencode.ai 发送,浏览器端不直连 opencode.ai。
快照与本地路由¶
Save .txt 打开系统目录选择器,取消则不写文件。文件名形如 20261028-072459-eb5c23ae.txt(本地时间 + 会话 id),便于按时间排序;内容含窗口、合计、衍生比率、宿主侧 DSH 数字、按模型拆分、本地小时直方图及当时适用的说明。
宿主提供的 HTTP 路由(前缀默认 /opencode-go,可配置):
| method | path | 用途 |
|---|---|---|
| GET | /opencode-go/session-cost |
单会话合计,session、refresh 查询参数 |
| POST | /opencode-go/session-cookie |
保存凭证与可选 workspace |
| DELETE | /opencode-go/session-cookie |
清除二者 |
| POST | /opencode-go/session-export |
导出快照到所选文件夹 |
可选配置¶
各键均可省略:
| key | default | 含义 |
|---|---|---|
credentialRef |
OPENCODE_CONSOLE_COOKIE |
存放控制台会话的 DSH credential |
apiBase |
https://opencode.ai |
console 源站 |
cacheMs |
20000 |
单次 console 响应复用时长(毫秒) |
maxPages |
25 |
单次读取分页上限(每页 100 行) |
routePrefix |
/opencode-go |
本地路由前缀 |
orgId |
未设置 | 发现 workspace 被拒绝时手动指定 workspace id |
credentialRef 也可指向环境变量名(DSH credential 会回退到进程环境)。
适用场景与注意¶
适合谁:已用 DSH Web GUI 且订阅 OpenCode Go,需要在会话内对照美元成本、模型分布,并偶尔导出 .txt 留档的开发者或运维。
行为与限制(README Limits):
- 标签页在会话打开时每 30 s 刷新;宿主对 console 答案缓存 20 s(与
cacheMs默认一致)。 - 控制台 request log 保留约 30 天;更老的会话可能只有部分数据,标签页会标注。
- 控制台会话随浏览器会话过期;出现 unauthorized 时需重新粘贴 cookie。
- 恢复的会话仍从原始
createdAt起算窗口,中间时段若落在同一 workspace 也会被计入。 - 无
cost的行计入请求数但不参与加总,面板会报告条数。
安全与安装前检查:插件以 当前 DSH 宿主进程权限 运行,并向 opencode.ai 携带你保存的控制台凭证。安装前应阅读 源码与 LICENSE,确认凭证存储与网络行为可接受;不要将 console cookie 泄露到不可信环境。
结尾¶
dsh-oc-go-usage 把 OpenCode Go 控制台推理日志与 DSH 会话时间窗对齐,在 GUI 和 /opencode-go 里给出可刷新的成本与用量视图,并支持导出文本快照。需要安装或 issue 时见目录页 skillhub.cn/plugins/x01Jin/dsh-oc-go-usage 与 GitHub x01Jin/dsh-oc-go-usage。