如何用 OpenClaude 的 OPENCLAUDE_LOG_TOKEN_USAGE 输出每次请求的 token 统计?
【免费下载链接】openclauderuns anywhere. uses anything项目地址: https://gitcode.com/GitHub_Trending/op/openclaude
如果你想在 REPL 界面之外审计 OpenClaude 每次 API 请求消耗了多少 token、缓存命中情况如何,或者排查成本突增,可以用OPENCLAUDE_LOG_TOKEN_USAGE这个环境变量。把它设为任意真值(如verbose、1、true)后,OpenClaude 会针对每次 API 请求向 stderr 输出一行 JSON,内容包含 input/output/cache token 数以及解析后的 provider。这是一个用户侧的调试输出,不影响模型行为,适合配合重定向把日志落盘审计。
开启每次请求的 token 日志
该变量在 docs/advanced-setup.md 的环境变量表中登记,.env.example 中也有对应注释说明。开启方式是从 shell 导出变量后再启动 OpenClaude:
export OPENCLAUDE_LOG_TOKEN_USAGE=verbose openclaude.env.example中列出的示例值是verbose,并注明任何真值("verbose"、"1"、"true")都会启用。按 src/cost-tracker.ts 的实现,值为空、0、false、off时不输出。
如果只想在某个一次性会话里开启,也可以只在启动前临时 export,会话结束后 unset 即可。
日志输出到哪里、长什么样
日志走stderr,不会出现在 REPL 的界面输出里,因此终端中它和正常交互内容混排,或者在 headless 场景下可以直接重定向到文件留档。按 src/cost-tracker.ts 中写入process.stderr的代码,每行 JSON 的字段为:
{ "tag": "openclaude.tokenUsage", "model": "your-model-id", "provider": "anthropic", "input_tokens": 1234, "output_tokens": 567, "cache_read_input_tokens": 100, "cache_creation_input_tokens": 0, "cache_supported": true, "cache_hit_rate": 0.1, "cost_usd": 0.0042 }上面是依据源码字段拼出的示例结果,数值不是固定预期,实际以每次请求的真实用量为准。判断日志是否生效的方式:发起一次对话后,stderr 中应能看到tag为openclaude.tokenUsage的 JSON 行,每个请求对应一行。
cache_supported/cache_hit_rate来自解析当前 provider 后的缓存指标;对于确实不上报缓存数据的 provider,缓存相关字段不会假装给出命中值。
与另外两个相关机制的边界
文档明确区分了三者,避免误用:
OPENCLAUDE_LOG_TOKEN_USAGE是用户侧调试输出,写 stderr,供人检查成本与缓存;CLAUDE_CODE_ENABLE_TOKEN_USAGE_ATTACHMENT是模型侧开关,把上下文用量信息注入 prompt 本身、让模型感知剩余上下文,不碰 stderr;- REPL 内的缓存统计展示由
/config showCacheStats控制,与 stderr 日志互补而不互斥。
三者可以同时开启。按 docs/advanced-setup.md 的说法,后两者与本变量"both can run together"。
一个文档给出的实际用途
在 docs/advanced-setup.md 的modelPricing章节中,文档给出的操作就是:普通 provider 路由下,用OPENCLAUDE_LOG_TOKEN_USAGE=verbose跑一次会话,从 JSON 日志行的model字段复制出精确的(未归一化前的)模型标识符,再原样用作settings.json里定价覆盖的 key。也就是说,这个日志也是确认模型 id 的现成手段,而不只是成本审计工具。
限制方面:该输出只在每次 API 请求完成、用量入账时产生,属于逐请求粒度的行式 JSON;文档没有提供聚合、汇总或可视化能力,如需跨请求合计,需自行基于 stderr 中的 JSONL 处理。
【免费下载链接】openclauderuns anywhere. uses anything项目地址: https://gitcode.com/GitHub_Trending/op/openclaude
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考