OpenCode

OpenCode Token 消耗怎么统计?

OpenCode 不像 Claude Code 那样有自带的 cost 命令——你用的是哪个 provider,统计就分散在哪。这篇讲清 OpenCode 的多 provider 模型给消耗追踪带来的复杂度。

OpenCode 的招牌是「provider 无关」——你可以用 Anthropic、OpenAI、Google、Groq、智谱 GLM、Together AI 任何一家的 API key,配置好就能切换。这是它最自由的地方,也是它统计消耗最麻烦的地方。

我用 OpenCode 主要是因为它支持 GLM——便宜、中文好、跟 Claude Code 体验差不多。但用了三个月之后,最让我抓狂的还是"我到底烧了多少"这件事。

OpenCode 自带的统计:基本没有

OpenCode 默认状态下没有任何消耗统计 UI。每次跑完任务,stderr 里会简短打一行:

[opencode] tokens: in=128432, out=2891, cache_in=952311, cost=$0.041

但这就完了。没有汇总,没有跨任务统计,没有按项目拆分。

如果你开 telemetry,能让它把每次调用记到日志文件里——但日志格式还是要你自己解析。

你的"统计入口"取决于你用哪个 provider

这是 OpenCode 最特殊的地方:因为它是 BYO(bring your own)provider,统计入口完全分散:

你接的 provider 看消耗的地方
Anthropic API console.anthropic.com
OpenAI API platform.openai.com/usage
Google AI Google Cloud Console
GLM(智谱) bigmodel.cn 工作台
Together AI api.together.ai dashboard
自部署模型 你自己的监控

如果你像我一样同时配了 GLM、Anthropic、OpenAI 三个 provider,对账就是个噩梦——三个 dashboard 三套口径,没法把它们当成"我的 OpenCode 消耗"统一看。

一个被忽略的统一信号源

OpenCode 把每次会话的完整记录写在本地:

~/.config/opencode/sessions/<session-id>.json

每个 session 的 message 都带 usage 字段,包含每个 provider 的 input、output、cached、reasoning Token 数,以及那一次调用的具体模型名。

也就是说——不管你用哪个 provider,OpenCode 都把消耗数据存在你本地。这就是 provider 无关之外的另一个好处:消耗也是 provider 无关的。

只要有东西能解析这个目录,你就有 OpenCode 完整的消耗画面。

我用的是 Vibe Usage,它原生读 OpenCode 的本地日志。装好之后我才看到这种程度的拆分:

  • 我的 OpenCode 调用里 64% 是 GLM-5.1,32% 是 GLM-5,4% 是 Claude Sonnet
  • GLM-5.1 平均一次调用 input 比 Claude Sonnet 长 40%(因为模型上下文窗口大,OpenCode 默认塞更多)
  • 但 GLM-5.1 的 token 单价大概是 Claude Sonnet 的五分之一,所以总账还是省的

这些拆分 dashboard 永远看不到——它们只知道总数。

OpenCode 用户最容易超预算的事

我观察自己和身边几个 OpenCode 重度用户的消耗,发现一个共同模式:容易低估总消耗

原因是 OpenCode 用户多数选了便宜 provider(GLM、Together、自部署),单价比 Anthropic 低 5-10 倍。用户的心理预期是"这工具便宜",所以放手用。

但单价便宜不等于总消耗便宜。OpenCode 默认上下文管理比 Claude Code 激进——它会塞更多文件进上下文。我自己的 OpenCode 平均单次会话 input Token 比 Claude Code 高 35%。

便宜 5 倍 + 多用 35% 还是省下来的,但绝对额没你想的小。我上个月 OpenCode 接 GLM-5.1 烧了 28 美元——比我 Claude Code 一个月还多。

一个针对 OpenCode 的具体建议

如果你跑 OpenCode 想节省消耗,最值得做的一件事:

默认开 system prompt cache。 OpenCode 不像 Claude Code 那样默认开 prompt cache(取决于 provider),有时候需要你在配置里手动启用 cache: true。开和不开的差距是 10 倍——每个 input token 价格从 1× 变成 0.1×。

我自己的 OpenCode 缓存命中率(基于 Vibe Usage 数据)从 30% 升到 67%,月消耗直接降了一半。

不知道烧多少的不焦虑,知道了会安心

很多 OpenCode 用户不装 dashboard 不是因为不在乎,是因为没找到合适的工具——provider 太多、入口太散。

打开 Vibe Usage 是个一站式方案——免费,本地,自动同步 OpenCode 各 provider 的消耗。装好之后你能看到:每个 provider 的占比、每个模型的 cache 命中率、每个项目的 Token 趋势。

OpenCode 这种 provider 无关的工具配 Vibe Usage 这种工具无关的统计,搭配是顺的。

相关阅读

相关阅读

OpenCode Token 消耗怎么统计?