两者都是终端 Agent,最大的区别是背后的模型生态:Claude Code 走 Anthropic Messages 协议,用 Claude 系列模型;Codex CLI 走 OpenAI Responses 协议,用 GPT 系列模型。Claude Code 的子代理和上下文查看命令更丰富,Codex 的沙箱默认更保守,401 时报错信息也更直接。两个都装、按任务切换也很常见。
实测环境:Claude Code 2.1.312 与 Codex CLI 0.166.0,同一台 Linux 机器,2026-11-03。请求头、重试次数、报错提示均通过本地假端点记录;命令与参数以两者 --help 输出为准。
一张表看区别
| 维度 | Claude Code | Codex CLI |
|---|---|---|
| 出品方 | Anthropic | OpenAI |
| 模型 | Claude 系列(Opus / Sonnet / Haiku / Fable) | GPT 系列(GPT-6、GPT-5.6 等) |
| API 协议 | Anthropic Messages(POST /v1/messages) |
OpenAI Responses(POST /v1/responses) |
| 全局配置文件 | ~/.claude/settings.json |
~/.codex/config.toml |
| 项目说明文件 | CLAUDE.md |
AGENTS.md |
| 接第三方端点 | 两个环境变量:ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN |
在 config.toml 里加一个 model_providers 段 |
| 默认权限模型 | 每个工具调用逐次询问,可用 --allowedTools 预先放行 |
沙箱策略:exec 默认只读,可选 workspace-write 等 |
| 子代理 | 内置,可用 --agents 自定义 |
以会话为单位管理(codex agents 浏览会话、codex fork 分叉) |
| 上下文管理 | /compact、/context 查看占用,--autocompact 调整触发窗口 |
/compact 压缩对话 |
| 自带诊断 | 无独立诊断命令 | codex doctor |
| 代码评审 | 通过提示词或插件 | 内置 codex review |
接第三方端点:写法差异
Claude Code:两个环境变量即可,也可以写进 settings.json 的 env 段。
export ANTHROPIC_BASE_URL=https://你的端点地址
export ANTHROPIC_AUTH_TOKEN=你的 Key
claude
Codex CLI:需要声明一个 provider,并指定协议和读取 Key 的环境变量。
model_provider = "myprovider"
[model_providers.myprovider]
name = "myprovider"
base_url = "https://你的端点地址/v1"
env_key = "MY_PROVIDER_KEY"
wire_api = "responses"
Codex 多了「协议」和「Key 从哪个变量读」两个概念,配置的出错点也更多。最常见的情况是 env_key 指向的变量在当前终端里不存在。实测这时 Codex 不发任何请求,直接报 Missing environment variable: `MY_PROVIDER_KEY`.,按提示把变量设上即可。
出错时的行为差异(实测)
这一部分最影响排查体验。我们让同一个本地假端点分别返回 401、429 和用量用完的错误:
| 场景 | Claude Code | Codex CLI |
|---|---|---|
| 没配 Key | 不发请求,1 秒内提示 Not logged in · Please run /login |
不发请求,直接提示 Missing environment variable: `MY_PROVIDER_KEY`. |
| Key 错误(401) | 重试 10 次,约 190 秒后仍提示 Not logged in |
显示 Reconnecting... 1/5 到 5/5,约 7 秒后显示服务端原因 |
| 请求太多(429) | 重试 10 次,约 3 分钟后显示服务端原因 | (本次未测) |
| 用量窗口用完 | 400 时不重试,原样显示服务端原因 | 不重试,换成内置提示「Upgrade to Pro…try again at 时间」 |
可以看出:Codex 401 时会把服务端原因直接显示出来,比 Claude Code 好查;但用量用完时,Codex 会用自己写死的文案替换服务端原文,Claude Code 则原样显示。两种报错的详细排查见 Claude Code Not logged in 和 Codex usage limit。
发出的请求有什么不同
| 项目 | Claude Code | Codex CLI |
|---|---|---|
| 请求路径 | /v1/messages?beta=true |
/v1/responses |
| 鉴权头 | Authorization: Bearer(用 AUTH_TOKEN 时)或 x-api-key(用 API_KEY 时) |
Authorization: Bearer |
| User-Agent | claude-cli/<版本> (external, sdk-cli) |
codex_exec/<版本> (<系统>; <架构>) … |
| 只发一句 hi 的请求体 | 约 46 KB 到 84 KB(含系统提示与工具定义) | 约 38 KB |
请求体积说明,两者每次请求都会带上几十 KB 的系统提示和工具定义,Claude Code 更多一些。再装几个 MCP 服务器,这部分还会继续变大,这也是第一句话就可能撞上上下文上限的原因。
订阅怎么买
两个工具都可以免费安装,用量来自订阅:
- 官方渠道:Claude Code 包含在 Claude Pro($20/月)、Max($100/月)、Ultra($200/月)里,详见 Pro、Max、Ultra 对比。Codex 包含在 ChatGPT 付费订阅里,档位和价格以 OpenAI 官网为准。两者都需要海外支付方式。
- Code2AI:Claude 和 Codex 是两条独立的产品线,分开订阅。2026-11-03 的价格:Claude 控制台月付 $29 起,Codex 站月付 $29 起,两边都有 $4.30 的日卡和 $38 起的周卡,支持微信和支付宝。
- 两个都想用:可以分别订阅;也可以用多模型网关,在 Claude Code 里用
/model切换到 GPT 系列,一份额度两边通用。
怎么选
- 主要写业务代码、改大仓库:Claude Code。子代理可以并行拆任务,
/context能看清上下文占用,适合长任务。 - 偏好 GPT 系列模型,或团队已经在用 ChatGPT:Codex CLI。
- 想要更保守的默认权限:Codex CLI 的沙箱默认只读,适合在陌生仓库里先看后改。
- 不确定:两个都装。它们的配置文件互不冲突,同一个项目里可以同时放
CLAUDE.md和AGENTS.md。
常见问题
能不能在 Codex CLI 里用 Claude 模型,或者反过来?
Codex CLI 只认 OpenAI 协议,Claude Code 只认 Anthropic 协议,官方客户端本身不支持混用。需要在一个客户端里同时用两家模型,只能找一个做了协议转换的网关,比如在 Claude Code 里通过多模型网关切换到 GPT。
两个工具会不会互相影响?
不会。配置目录分别是 ~/.claude 和 ~/.codex,环境变量的名字也不同。唯一要注意的是不要让两边都去读同一个变量名存 Key,排查时会混淆。
哪个对国内网络更友好?
两个工具本身都只是本地程序,安装都不受限制。网络问题出在调用模型的那一步,取决于你连的端点,和用哪个客户端无关。