Claude Code 与 Codex CLI 的 token 用量比较

哪个代理消耗更少 token,往往更多取决于模型、配置和任务,而非代理名称。下面看两者的输入花在哪里、各自显示什么,以及测量结果能说明什么。

Claude Code 和 Codex CLI 都是命令行编码代理:模型循环读取文件、运行命令,并修改启动目录中的代码。因此,它们消耗 token 的方式相同。每次请求携带的内容远多于你的问题,问题本身只是最小的一部分。

简短回答是:没有哪一个能稳定地更省 token。所选模型、已启用的指令和工具,以及代理探索的范围,对总量的影响通常大于代理的选择。

两种代理的 token 花在哪里

两种工具的每次请求都包含三层输入:

  • 环境输入:代理自身的指令、模型可调用工具的定义、你的项目指令(Claude Code 的 CLAUDE.md,Codex 的 AGENTS.md),以及已启用的技能、插件或 MCP 服务器。这些在你输入前就已经存在。
  • 探索:读取的每个文件、每次搜索和命令输出都会进入对话,并在会话余下时间保留。
  • 对话记录:每次请求都会重发整段对话,包括此前所有工具结果。一个问题通常需要多次请求,代理每走一步就产生一次。

提示缓存缓和了两边的历史记录成本:提供方已处理过的前缀按缓存读取计费。以 2026 年 9 月 Anthropic 和 OpenAI 的价目表为准,多数模型的价格约是新输入的十分之一。两种代理也会在窗口填满时把历史压缩为摘要,/compact 可手动触发。

输入前各自会加载什么

Claude Code 每次请求按同一顺序排列:核心指令和工具定义、项目上下文(CLAUDE.md、自动记忆和规则),最后是对话。在支持的模型上,MCP 工具默认延迟加载;闲置服务器在 Claude 需要工具前只增加名称和指令,而非完整 schema。技能在调用前各占一行简短描述。

Codex CLI 启动时从 AGENTS.md 构建指令链:先读取 Codex 主目录中的文件,再从项目根目录逐层读取到当前目录,默认合计达到 32 KiB 就停止追加。它还加入可用技能目录,其 token 预算默认是模型上下文窗口的 2%。config.toml 中的 MCP 服务器提供工具;模型支持时,工具定义经搜索步骤延迟加载,否则完整发送。enabled_tools 和 disabled_tools 可精简各服务器暴露的工具。

这些清单都不是固定的,取决于你安装了什么。这是别人的机器上测出的对比不能直接套用到你的机器上的第一个原因。

两种代理分别显示什么

Claude Code 同时报告 token 用量和估算美元金额:

/usage

Claude Code 会按模型列出 token、缓存读写、标价估算;订阅用户还能查看套餐用量。

/context

Claude Code:按类别查看当前哪些内容占据上下文窗口。

Codex CLI 报告 token;使用 ChatGPT 登录时,还显示已用上限的比例:

/status

Codex:模型、上下文窗口的已用与剩余空间,以及五小时和周上限的剩余量。

codex debug prompt-input 'where is the retry limit set'

以 JSON 打印 Codex 对该提示将发送的输入清单,不调用模型。

Codex 中的 /usage 按天、按周或累计显示账户 token 活动;退出时也会打印本会话的 token 行。debug prompt-input 输出不包含与清单一同发送的基础指令和工具 schema,因此它只是请求大小的下限,不是总量。

两种代理如何计费

两种代理都可通过订阅或按 token 付费使用,但两种计量方式不同:

  • Claude Pro 或 Max 中的 Claude Code:用量计入每五小时重置的会话上限和周上限,并与你使用 Claude 本身的用量共享。Team 和 Enterprise 席位也采用类似方式。/usage 的美元数字只是标价估算,Anthropic 指出它不用于 Pro 和 Max 计费。
  • 使用 API 密钥或 Claude Console 的 Claude Code:按 API 价格逐 token 计费,包括缓存读写。环境中留有 ANTHROPIC_API_KEY 时,经你批准会改用它而非订阅;claude -p 则会直接使用它。
  • 通过 ChatGPT 登录的 Codex CLI:用量计入套餐额度。OpenAI 定价页以每五小时窗口内的本地消息量估算,可能还适用周上限。包含用量用完后,可以用积分继续。在 Plus 和 Pro 中,Codex 显示 token 和上限百分比,不显示美元成本。
  • 使用 API 密钥的 Codex CLI:按 OpenAI Platform 账户的标准 API 价格计费。

我们的基准测试测量了什么

我们让两种代理按普通使用方式独立运行(claude -p 和 codex exec,采用常规配置,而非 Claude Code 的 --bare 模式),回答同一仓库的五个单行问题。指标是每个问题的缓存加权输入:代理为作答在全部请求中发送的内容,新 token 按全额,缓存读取按十分之一。每一行对应一个模型。

每个模型的表格同时列出代理独立运行的数字(比较代理时应看这一列),以及同一模型下通过 capsul 发送相同问题的数字,这也是基准测试原本要测的内容。答案检查则自动统计五个问题中,回答包含预期细节的个数。

模型原始输入capsul 输入原始成本capsul 成本减少的输入
Claude Haiku 4.555,50019,300US$0.0812US$0.0265x2.88
Claude Sonnet 554,20018,900US$0.153US$0.0487x2.86
Claude Sonnet 4.631,40016,600US$0.139US$0.0613x1.89
Claude Opus 4.645,70016,400US$0.332US$0.101x2.78
Claude Opus 4.738,70020,100US$0.28US$0.126x1.92
Claude Opus 4.865,80013,800US$0.498US$0.0825x4.75
Claude Opus 545,30016,200US$0.343US$0.101x2.80
Claude Opus 5.542,30015,900US$0.222US$0.0696x2.66
Claude Fable 541,40017,600US$0.633US$0.219x2.35
Claude Fable 5.149,70023,400US$0.636US$0.279x2.12
Claude Code 中的 Claude 模型:按缓存加权的输入量,以及每个单行编程问题的 API 等价成本。对比原始代理与 capsul。 根据已发布的数据集计算:Claude 轮次日期 2026年9月22日,Codex 轮次日期 2026年9月4日。

Claude 表格另有成本列:按 API 标价计算,Claude Code 自身报告每个问题对应的费用。订阅用户不会逐次支付这个数字。

模型原始输入capsul 输入减少的输入
gpt-5.6-sol33,10014,700x2.26
gpt-5.6-terra24,00011,100x2.16
gpt-5.6-luna32,10013,600x2.36
gpt-5.547,2008,130x5.81
gpt-5.431,8008,220x3.86
gpt-5.4-mini42,30012,100x3.49
Codex CLI 中的 GPT 模型:每个单行编程问题按缓存加权的输入量,对比原始代理与 capsul。Codex 报告 token 数,不报告美元费用。 根据已发布的数据集计算:Claude 轮次日期 2026年9月22日,Codex 轮次日期 2026年9月4日。

Codex 表格没有成本列,因为这些运行使用 ChatGPT 套餐,而 Codex 在该套餐下报告 token,不报告美元。

为什么两张表不是排行榜

并排阅读时,这两张表最多只能提供线索,原因有五个:

  • 测量日期和代码不同。Claude 数据取自 2026 年 9 月 22 日,Codex 主测量取自 9 月 4 日;各自使用当天版本的代理和 capsul 代码。
  • 模型不同。没有模型同时出现在两张表中,所以任何跨代理对比也同时在比较模型。
  • token 不同。两家提供方的分词方式不同;Anthropic 指出,同一段文本在较新模型中计为的 token 数,约比旧模型多 30%。token 不是固定长度的文字。
  • 计费口径不同。Claude 报告缓存写入,基准测试按 Anthropic 的计费方式赋予其高于新输入的权重。Codex 运行没有报告缓存写入,ChatGPT 套餐的 Codex 积分计费也没有单独的写入价格。
  • 重复次数不同。Claude 每个问题在每种方案中运行三次,Codex 运行两次;首次运行会写入缓存,后续运行才会读取。

考虑这些限制后,仍有一个有用发现:即使问题只有一行,两种代理独立运行时都会发送数万缓存加权 token,几乎全是上下文,而非问题本身。每张表内部不同模型的跨度也很大;选择模型对数字的影响至少与选择代理一样大。

怎样用这些信息

如果已经购买其中一种套餐,为节省 token 而切换代理通常不是影响最大的做法。两种工具中更有效的习惯相同:

  • 每项任务开启新会话。两种工具都可用 /clear,旧对话就不会继续重发。
  • 点名目标文件。探索是各次运行之间波动最大的部分。
  • 缩小环境输入:保持 CLAUDE.md 或 AGENTS.md 简短,关闭不用的 MCP 服务器和插件。
  • 让模型和推理强度匹配任务:Claude Code 使用 /model 和 /effort;Codex 使用 /model,在模型允许时同时设置两者。

若要在自己的代码上比较两者,应测量真实任务,而不是只看任何人的表格,包括我们的。每个代理在同一仓库的新会话中运行三次:第一次写入缓存,之后读取。使用 claude -p 配合 --output-format json 时,应合计包含子代理的逐模型输入、缓存读取和写入计数,普通 usage 字段不包含子代理。使用 codex exec --json 时,读取最后一个 turn.completed 事件的用量,并从输入中扣除缓存部分。新输入按全额、缓存读取按十分之一、报告的缓存写入按相应溢价加权,就能得到各代理在你自己任务上的 token 成本。

如果两种代理都使用,capsul 可以通过同一条命令驱动任意一种,在你设定的 token 预算内运行,并在本地记录各自的用量。

capsul burn

按代理、模型和项目拆分本地用量。

常见问题

Claude Code 和 Codex CLI 哪个更省 token?

没有哪一个稳定更省。所选模型、开启的指令和工具、代理探索的范围,通常比代理名称对总量影响更大;两家提供方的分词方式也不同。在我们的独立运行基准测试中,同一代理不同模型之间的跨度,至少和两个代理之间的差距一样大。

Codex CLI 比 Claude Code 便宜吗?

订阅模式下,你支付的是套餐费用,差别在于达到五小时或周上限前能用多久。使用 API 密钥时,两者按各自提供方的标价逐 token 计费,多数模型的缓存输入价格约为新输入的十分之一。对你来说更便宜的代理,是能以更小模型、更少上下文完成你任务的那个;只有在你自己的代码上测量才能判断。

已买 Pro 或 Max,Claude Code 为什么还显示美元成本?

/usage 会按 API 标价从会话 token 计数估算费用,也就是使用 API 密钥完成相同工作时的成本。Anthropic 文档指出,这个数字不用于 Pro 和 Max 订阅计费。同一屏幕上的用量条才显示套餐上限的使用情况。

ChatGPT 套餐中怎样查看 Codex CLI 的 token 用量?

输入 /status 可看上下文窗口的已用和剩余空间,以及五小时和周上限的剩余比例;/usage 可按天、周或累计查看账户 token 活动。退出时 Codex 会打印会话 token:总量包括新输入和输出,缓存输入单独列出。

能直接比较两个代理报告的 token 数吗?

不能直接比较。Claude 将输入、缓存读取和写入分别报告;Codex JSON 中的 input_tokens 则已包含缓存输入。先把两者换算成缓存加权输入,新 token 按全额、缓存读取按十分之一,再对同一任务各运行多次比较。

$ npm i -g @penra/capsul

← 全部指南