可通过/status命令查看会话累计token用量,监听turn.completed事件获取精确的input_tokens和output_tokens,或解析本地turns.jsonl日志文件提取历史数据。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

想在 Codex 中实时看清每次对话到底用了多少输入 token 和输出 token,不是靠猜,而是直接从运行时事件里提取原始用量数据。
通过 /status 斜杠命令快速查看当前会话 token 占用
进入 Codex TUI 交互界面后,直接输入:
/status
回车后会显示当前会话的模型、上下文状态和 【token 使用量或上下文占用】 字段。这里显示的是累计值和最近一次请求的 last_token_usage,但不区分 input/output 细项。
注意:该命令只反映当前会话内存中的统计,不会刷新历史日志,且无法看到 cached_input_tokens 等细分字段。
监听 turn.completed 事件获取精确的 input_tokens 和 output_tokens
Codex SDK 的流式响应中,turn.completed 事件携带完整的 TokenUsage 结构体。关键字段如下:
input_tokens:本次请求实际发送给模型的输入 token 总数(含缓存)
cached_input_tokens:其中命中缓存的部分
output_tokens:模型生成的输出 token 数
reasoning_output_tokens:推理阶段额外产生的输出 token
total_tokens:通常等于 input_tokens + output_tokens
你需要在调用 runStreamed() 后循环处理 events 流,并筛选出 type === 'turn.completed' 的事件:
for await (const event of events) {
if (event.type === 'turn.completed') {
console.log('Input:', event.usage.input_tokens);
console.log('Output:', event.usage.output_tokens);
console.log('Cached input:', event.usage.cached_input_tokens);
}
}
解析本地 session 日志文件提取历史 token 数据
方法一:使用 codex-token-usage Skill 统计
执行安装命令:
npx skillsadd https://github.com/huajiexiewenfeng/codex-token-usage-skill --skill codex-token-usage
安装完成后,在 Codex 中自然语言提问即可获取结构化结果,例如:
统计我最近 30 天的 Codex token 用量,包含净用量和最多的一天
方法二:手动读取 turns.jsonl 文件
所有会话原始记录默认保存在:
C:\Users\【你的用户名】\.codex\sessions\*.jsonl(Windows)
~/.codex/sessions/*.jsonl(macOS/Linux)
每行是一个 JSON 对象,包含 usage 字段。可用 jq 提取 input/output:
jq -r '.usage | "\(.input_tokens) \(.output_tokens)"' turns.jsonl | head -n 5
这一步必须确保文件未被 Codex 进程独占锁定,否则读取可能失败。










