如何追踪 Claude Code 与 Codex 的 Token 用量
一份手把手教程:找到 Claude Code 和 OpenAI Codex 在本地悄悄记录的每一笔 token 消耗,读懂这些日志,并把它们变成一张清晰的用量与成本图 —— 全程都在你自己的电脑上、完全离线完成。
最后更新于 2026 年 7 月 11 日
简短版:Claude Code 和 Codex 都会在本地记录每一次会话。Claude Code 存在 ~/.claude/projects/**/*.jsonl,Codex 存在 ~/.codex/sessions/**/rollout-*.jsonl。里面只有 token 数量、模型名和时间戳 —— 不包含你的源代码。你可以手动查看、用命令行工具,或用一个可视化面板来读它们。
Claude Code 与 Codex 把用量日志存在哪里
这两个工具都会为每一次会话写一个本地日志文件,你无需做任何设置。位置如下:
| 工具 | macOS / Linux | Windows |
|---|---|---|
| Claude Code | ~/.claude/projects/**/*.jsonl | %USERPROFILE%\.claude\projects\ |
| OpenAI Codex | ~/.codex/sessions/**/rollout-*.jsonl | %USERPROFILE%\.codex\sessions\ |
Claude Code 每次会话写一个 JSONL 文件,按项目分文件夹存放(文件夹名根据该项目路径生成)。Codex 则在按日期分组的子文件夹里,为每次会话写一个 rollout-*.jsonl 文件。
日志里有什么 —— 又没有什么
每一行是一个事件。助手的每次回复都带有一个 usage(用量)块,记录了这次往返消耗的 token。你能读到:
- ✦四类 token 的数量:输入、输出、缓存读取、缓存写入
- ✦回答所用的模型(例如某个 Claude 或 GPT 模型标识)
- ✦时间戳、会话 id、项目文件夹名,通常还有 git 分支名
- ✦AI 生成的会话标题,以及消息类型结构(用来区分真正的用户发言和工具返回)
- ✦但不包含你的源代码文件
这些原始文件其实很啰嗦 —— 里面也夹带了系统提示和消息文本。但要统计用量,你只需要 token 和模型这几个字段,好的工具也只读这些。以 Token Forest 为例,它只读取数量和元数据,绝不把你的提示词、回复或源代码复制进自己的数据文件,也绝不上传。
四类 token,以及为什么原始数字看起来吓人
缓存读取(cache-read)的 token 通常在原始数量里占绝对大头,但它恰恰是每个 token 最便宜的一类。所以只看原始 token 总数,很容易被一个巨大的数字吓到。
在 Token Forest 自己为期六周的样本里,缓存读取约占真实成本的 57%,而输入和输出加起来只占约 24%。换句话说:原始 token 数很大,不代表账单就很贵。判断花销要看预估成本,而不是原始 token 总数。
方法一:手动查看日志
- 打开 Claude Code 的日志文件夹 ~/.claude/projects/。里面每个项目一个子文件夹,子文件夹里是各次会话的 .jsonl 文件。
- 打开 Codex 的文件夹 ~/.codex/sessions/。会话以 rollout-*.jsonl 的形式,存放在按日期分的子文件夹里。
- 用文本编辑器打开任意一个文件。每一行是一个 JSON 事件;助手的回复里带有一个 usage 对象,包含四类 token 数量。
- 如果不想逐行读,可以把文件喂给 jq 之类的工具做汇总。临时抽查很方便 —— 但面对成百上千次会话就会很繁琐。
# 查看某次 Claude Code 会话的 token 用量 jq 'select(.message.usage) | .message.usage' \ ~/.claude/projects/<项目>/<会话>.jsonl
方法二:用命令行工具
如果不想自己解析 JSON,命令行工具可以帮你汇总。ccusage(开源,作者 ryoppippi,发布在 npm 上)读取的正是同一批 ~/.claude 日志 —— 现在也支持 Codex 日志 —— 并在终端里打印按天、按月、按会话的成本表格。运行 npx ccusage 即可。它是一个广受好评的独立工具,很适合常年待在终端里的人。
方法三(最省事):Token Forest 的离线面板
如果你想把同一批数据变成一眼就能看懂的图表,又不想碰命令行,那就装一个 Token Forest。它读取的是同样的本地日志,全部在你的设备上计算,并给出三个互相印证的视图。什么都不会上传;就算把网络完全关掉也能用。
- 下载并安装 Token Forest(Windows 10/11 或 macOS)。免费公测版。
- 首次启动时,它会扫描你本地的 Claude Code 和 Codex 日志 —— 不需要账号,也不需要 API key。
- 打开面板,查看三个视图(见下)。
- ✦生长(Growth):把你的用量画成一棵按阶段生长的像素树,显示种植天数,以及「这棵树 ≈ $X」。
- ✦用量(Usage):按天 / 周 / 月的图表,Claude Code 与 Codex 各自的分模型明细,一张 26 周热力图,燃烧速率,以及分项目明细。
- ✦对话(Chats):每次对话一行 —— 标题、项目、提示条数、四类 token、以及预估成本。
这里的成本数字是依据内置价格表算出的离线预估,可能和你在 Anthropic 或 OpenAI 的实际账单有出入 —— 但它每次都用同样的方法计算,因此特别适合观察趋势。
该用哪种方法?
| 方式 | 适合 | 省力程度 | 成本视图 |
|---|---|---|---|
| 手动(jq) | 偶尔抽查 | 费力 | 自己算 |
| 命令行(如 ccusage) | 终端党、快速汇总 | 省力 | 终端表格 |
| Token Forest | 持续、可视化的全貌 | 最省力 | 图表 + 离线预估 |
关键结论:日志本来就在你的电脑上 —— 想看 Claude Code 和 Codex 的用量,既不需要 API key,也不需要联网。抽查用手动,快速汇总用 ccusage 这类命令行,想要一眼看懂的面板就用 Token Forest。无论哪种,都请以预估成本、而非原始 token 数来判断花销。
延伸阅读
Claude Code 的用量日志存在哪里?
存在 ~/.claude/projects/ 下(Windows 为 %USERPROFILE%\.claude\projects\),每次会话一个 JSONL 文件,按项目分文件夹。Codex 则用 ~/.codex/sessions/,文件名形如 rollout-*.jsonl。
怎么查看 Claude Code 的花费?
日志里记录的是 token 数量,不是金额。要得到花费,需要用模型价格去乘。像 ccusage 这样的命令行工具,或 Token Forest 的面板,都能替你算好;不过任何离线数字都只是预估,可能和真实账单有出入。
这些工具会读我的代码或提示词吗?
日志文件本身确实包含消息文本,但统计用量只需要 token 和模型字段。Token Forest 只读取数量和元数据,绝不把你的提示词或源代码复制进它的数据,也绝不上传任何东西。
怎么用同样的方式监控 Codex 用量?
Codex 会在 ~/.codex/sessions/ 下写 rollout-*.jsonl 文件。你可以手动查看,也可以用同时支持两者的工具 —— ccusage 和 Token Forest 都能一起读取 Claude Code 和 Codex 的日志。
Token Forest 是 ccusage 的套壳吗?
不是。Token Forest 是一个独立的应用,读取的是同样的本地日志,但和 ccusage 不共享任何代码。ccusage 是很棒的终端 CLI;Token Forest 是可视化的离线面板(同时也是一只像素树桌宠)。按你的习惯挑一个就好。
把用量看成一棵会长大的树
安装免费公测版,让 Token Forest 把你本地的 Claude Code 和 Codex 日志变成一张面板 —— 也变成一棵像素树,全程都在你的电脑上完成。