OpenAI Codex vs Claude Code:你应该使用哪个 CLI 编码代理?

OpenAI Codex vs Claude Code:你应该使用哪个 CLI 编码代理?

Codex CLI 和 Claude Code 都是基于终端的代理式编码工具,但它们针对不同的工作流程。Codex CLI 是一个轻量级、开源的代理,具有完全兼容 OpenAI 的 API 灵活性和清晰的沙箱模型。Claude Code 则是一个功能更完善的平台,支持多界面、更丰富的会话管理,并在 CLI、IDE、桌面和浏览器之间实现更紧密的集成。正确的选择取决于你需要最大的模型灵活性,还是需要一个围绕单一提供商 API 构建的统一编码环境。

什么是 Codex CLI?

Codex CLI 是 OpenAI 的开源终端编码代理。它在本地运行,向兼容 OpenAI 的 API 后端发送请求,并且可以读取文件、编辑代码以及在机器上的沙箱目录中执行命令。

Codex CLI 的关键设计选择是提供商灵活性。该工具使用 OpenAI Chat Completions 的线格式,这意味着任何暴露了兼容 OpenAI 端点的提供商都可以通过一个 TOML 配置文件插入进来。这包括 OpenAI 自己的模型(GPT-4o、o3、o4-mini),也包括像 Novita AI 这样的第三方提供商。

Codex CLI 的安全模型是显式设计的。默认情况下,已执行代码的网络访问被禁用,文件写入限定在配置的目录内。三种审批模式控制代理的自主程度:

  • Suggest 模式(默认):每一步都提示审批
  • Auto edit 模式:自动编辑文件,但在运行命令前会询问
  • Full auto 模式:无需提示直接执行

该项目采用 MIT 许可,并在 GitHub 上积极维护,地址为 openai/codex

什么是 Claude Code?

Claude Code 是 Anthropic 的代理式编码工具。它提供 CLI、VS Code 扩展、JetBrains 插件、桌面应用以及浏览器界面(claude.ai/code)。每个界面都运行着相同的底层代理引擎,该引擎可以读取你的项目、编辑文件、运行命令,并处理多步骤任务,如编写测试、跨文件重构以及管理 git。

在底层,Claude Code 向兼容 Anthropic 的 API 端点发送请求。默认是 Anthropic 自己的 api.anthropic.com,但单个环境变量(ANTHROPIC_BASE_URL)可以将其重定向到任何兼容的提供商。

Claude Code 增加了 Codex CLI 所没有的会话连续性功能:命名会话、分支式对话分叉、回滚检查点,以及一个 /compact 命令,用于总结上下文以延长长任务的可使用窗口。项目级别的指令放在 CLAUDE.md 文件中,代理在每次会话开始时都会读取该文件。

Codex CLI vs Claude Code:并排对比

特性 Codex CLI Claude Code
提供商 OpenAI Anthropic
许可 开源(MIT) 专有(API 访问)
Wire API OpenAI Chat Completions Anthropic Messages API
第三方提供商 任何兼容 OpenAI 的 任何兼容 Anthropic 的
界面 仅终端 CLI、VS Code、JetBrains、桌面、浏览器
项目配置 TOML 配置文件 CLAUDE.md + settings.json
会话连续性 单会话 命名会话、恢复、分支、回滚
审批模式 Suggest / Auto Edit / Full Auto default、plan、auto、acceptEdits、bypassPermissions
MCP 支持
上下文管理 单会话上下文 /compact/context/branch
沙箱安全 禁用网络、限定目录 权限模式限定

模型支持与 API 灵活性

这是两个工具在实际使用中最显著的差异点。

Codex CLI 接受任何支持 OpenAI Chat Completions 格式的模型。开箱即用,它可以与 OpenAI 的模型系列(GPT-4o、o3、o4-mini)配合使用,但由于提供商可以通过 TOML 配置中的 model_providers 进行配置,你可以将其指向 Novita AI、Azure OpenAI 或任何其他兼容的端点,而无需修补工具本身。

Claude Code 使用 Anthropic Messages API 格式。默认情况下,它路由到 Anthropic 并使用 Claude 模型(Sonnet、Opus、Haiku)。ANTHROPIC_BASE_URL 环境变量允许替换提供商,因此任何兼容 Anthropic 的端点(包括 Novita AI)都可以作为即插即用的替代方案。

在实践中,这意味着:

  • 如果你偏好的模型使用 OpenAI 格式(如通过兼容 OpenAI 的端点提供的 DeepSeek、Qwen Coder、Kimi K2),那么 Codex CLI 是更自然的选择。
  • 如果你偏好的模型使用 Anthropic 格式,或者你想在 CLI 和 IDE 界面之间使用相同的配置,那么 Claude Code 能提供更一致的行为。

两个工具都支持来自 Novita AI 的模型。配置方法不同(Codex 使用 TOML,Claude Code 使用环境变量),但 Novita AI 的模型库——包括 DeepSeek V3、Qwen3-Coder 和 Kimi K2——都可以通过两者访问。

开源 vs 专有架构

Codex CLI 的开源性质在特定场景下很重要:你可以审计代理循环、为内部工具 fork 它,或者将其供应商整合到 CI 流水线中,而无需单独的许可协商。社区可以(也确实在)贡献提供商集成、错误修复和功能扩展。

Claude Code 的核心是专有的。Anthropic 将 CLI 作为带有 API 访问的分布式二进制文件提供,而不是源代码发布。其优点是有更一致、维护良好的发布节奏,并得到 Anthropic 的直接支持。缺点是个性化仅限于工具通过配置文件、环境变量和扩展 API 暴露的内容。

对于大多数开发者而言,只有当你需要在代码层面修改代理的行为时,开源的区别才相关。对于工作流程集成——CI 流水线、自动化任务、脚本化代码生成——两个工具都提供了足够的 CLI 标志和脚本模式来覆盖常见情况。

安装与设置

Codex CLI 通过 npm 安装:

npm install -g @openai/codex

提供商配置位于 ~/.codex/config.toml

model = "deepseek/deepseek-v3.1"
model_provider = "novitaai"

[model_providers.novitaai]
name = "Novita AI"
base_url = "https://api.novita.ai/openai"
http_headers = {"Authorization" = "Bearer YOUR_NOVITA_API_KEY"}
wire_api = "chat"

Claude Code 通过原生安装程序(macOS/Linux/WSL)安装:

curl -fsSL https://claude.ai/install.sh | bash

或者通过 npm(Node.js 18+):

npm install -g @anthropic-ai/claude-code

重定向到自定义提供商:

export ANTHROPIC_BASE_URL=https://api.novita.ai/anthropic
export ANTHROPIC_API_KEY=YOUR_NOVITA_API_KEY
claude --model deepseek/deepseek-v3.1

Claude Code 还在项目中运行 /init 来生成一个初始的 CLAUDE.md,该文件会在各会话之间保留项目特定的指令。

平台与界面覆盖

这是日常使用中最明显的差异。

Codex CLI 在终端中运行。这是它唯一的界面。如果你的工作流程完全基于终端——SSH 会话、无头 CI、开发者容器——这没问题。如果你想要在 VS Code 或桌面 GUI 中获得内联建议,Codex CLI 不提供这些。

Claude Code 跨五个界面运行:CLI、VS Code 扩展、JetBrains 插件、桌面应用和 claude.ai/code 浏览器。所有界面共享相同的代理引擎,并且在大多数情况下,共享相同的会话状态。在终端中开始的任务可以在 VS Code 中继续。

如果 IDE 集成对你的团队很重要,Claude Code 有明显优势。如果你正在构建一个代理以无头方式作为更大自动化系统一部分运行的流水线,那么两个工具都同样有效——而 Codex CLI 更简单的占用空间可能更容易管理。

配置与项目上下文

Codex CLI 的配置分为提供商/模型配置(TOML)和项目级别的指令(一个 AGENTS.md 或类似文件,代理在存在时读取)。这有意保持最小化。

Claude Code 具有分层配置:

  • CLAUDE.md 文件(项目级、目录级、用户级)用于持久指令
  • .claude/settings.json 用于权限规则、钩子定义和工具设置
  • /memory 等斜杠命令用于在会话期间编辑指令
  • 用于 API 路由和认证的环境变量

CLAUDE.md 方法对于希望每个代理会话都以对代码库约定、审查清单或允许库的共享理解开始的团队非常有用。Codex CLI 没有等效的内置机制,但你可以通过在每次提示中预先添加指令来复现它。

审批模式与安全控制

两个工具都让你可以控制代理在不询问的情况下能做多少事情。

Codex CLI 的三种模式简单而明确:

  • Suggest:显示建议的更改并在应用任何内容之前询问
  • Auto edit:无需询问直接写入文件,但在运行 shell 命令之前需要批准
  • Full auto:无需询问直接运行;适用于受信任的流水线

Claude Code 的权限模式以更细粒度的方式映射到类似概念:

  • default:在文件编辑和 shell 命令上请求批准
  • acceptEdits:自动批准文件编辑,询问 shell 命令
  • auto:无需询问直接运行(相当于 Codex 的 full auto)
  • plan:在执行前显示计划;适用于在运行前审查多步骤任务
  • bypassPermissions:跳过所有检查(用于受信任的自动化上下文)

Claude Code 还在 settings.json 中支持细粒度的允许/拒绝/询问规则系统,让你无需更改整体权限模式即可永久批准特定命令。

对于有严格变更控制要求的团队,Claude Code 的分层权限系统提供了更多控制。对于只想要清晰的开/关行为的个人开发者,Codex CLI 的三模式系统更容易理解。

会话与上下文管理

长时间的编码会话会遇到上下文限制。两个工具都以不同的方式处理这个问题。

Codex CLI 按会话管理上下文。当会话结束时,上下文就消失了。下次调用时从头开始。

Claude Code 增加了持久会话管理:

  • 命名会话,可以用 claude -r "session-name" 恢复
  • /compact 用于总结当前对话并减少 token 使用,同时继续
  • /branch 用于分叉对话并尝试不同的方法而不丢失原始内容
  • /rewind 用于在更改出错时回滚到检查点
  • /context 用于可视化已使用的窗口量及其位置

对于短小集中的任务——修复这个 bug、编写这个函数、添加这些测试——差异无关紧要。对于长时间的重构会话或随着多次交流而演变的任务,Claude Code 的会话连续性减少了上下文丢失的摩擦。

何时使用 Codex CLI

在以下情况使用 Codex CLI:

  • 你需要直接连接兼容 OpenAI 的模型(GPT-4o、o3、o4-mini,或具有 OpenAI 格式端点的第三方提供商)
  • 你希望审计或在源代码级别修改代理的行为
  • 你的工作流程纯粹基于终端,不需要 IDE 集成
  • 你将编码代理嵌入到 CI 流水线或内部工具中,并希望有一个最小、可审计的依赖
  • 你的安全要求默认需要显式禁用网络的沙箱

何时使用 Claude Code

在以下情况使用 Claude Code:

  • 你希望在终端、VS Code、JetBrains 和桌面之间获得一致的行为
  • 你的团队受益于跨会话共享的 CLAUDE.md 项目上下文
  • 你需要会话连续性——恢复命名会话、分叉对话、回滚更改
  • MCP 服务器集成是你工作流程的一部分
  • 你偏好 Anthropic 格式的 API,并希望路由到兼容 Anthropic 的提供商(包括 Novita AI)

使用 Novita AI 与任一工具

两个工具都将 Novita AI 作为即插即用的 LLM 后端接受。当你想要访问工具的默认提供商无法提供的模型时,或者当成本是一个约束时,这一点很重要:Novita AI 上的 DeepSeek V3、Qwen3-Coder 和 Kimi K2 等模型,其每 token 费率显著低于 Anthropic 或 OpenAI 自己的旗舰模型。

使用 Novita AI 的 Codex CLI:在 ~/.codex/config.toml 中将 model_provider 配置为指向 https://api.novita.ai/openai。完整模型列表和设置步骤请参阅 如何使用 Codex 与 Novita AI 模型

使用 Novita AI 的 Claude Code:设置 ANTHROPIC_BASE_URL=https://api.novita.ai/anthropic 并传递 Novita API 密钥。--model 标志或 ANTHROPIC_MODEL 环境变量选择特定模型。完整 CLI 参考请参阅 Claude Code CLI 文档

Novita AI 在这里的角色是推理后端,而不是 IDE 层。一旦设置了环境变量,Codex CLI 和 Claude Code 的行为与使用默认提供商时完全相同——模型变了,工具界面不变。这使得测试不同模型(DeepSeek 用于推理密集型任务、Qwen3-Coder 用于代码生成、GLM-4.7 用于工具密集型代理工作)变得简单直接,而无需切换工具或工作流程。

对于构建自己代理流水线或编码平台的团队,Novita AI 还提供用于运行代理的隔离沙箱环境——与本地机器分离,具有限定的文件访问和受控执行。

常见问题

Codex 是否与原始的 OpenAI Codex 模型相同?

不是。原始的 Codex 是 OpenAI 在 2021 年发布并后来弃用的代码生成模型。Codex CLI 是一个独立的产品——一个于 2025 年发布的开源终端代理,通过 Chat Completions API 使用当前的 OpenAI 模型(GPT-4o、o3 等)。名称相似但产品不相关。

我能否将 GPT-4o 或更新的 OpenAI 模型与 Codex CLI 一起使用?

可以。Codex CLI 的 TOML 配置中的 model 字段接受配置提供商支持的任何模型 ID。如果你将其指向 OpenAI 的端点,gpt-4oo3o4-mini 以及其他当前模型都可以工作。

Claude Code 是否支持兼容 OpenAI 的端点?

不直接支持。Claude Code 使用 Anthropic Messages API 格式,因此它需要一个暴露兼容 Anthropic 端点的提供商。Novita AI 支持这一点。OpenAI 的端点使用不同的格式,不兼容。

哪个工具运行成本更低?

两个工具都发送 API 请求,因此成本取决于你连接的模型和提供商,而不是工具本身。对于任一工具,通过 Novita AI 切换到较低成本的模型(如 DeepSeek V3 或 Qwen3-Coder)是主要的成本杠杆。查看当前定价,请访问 Novita AI 模型库

我可以同时使用两个工具吗?

一些团队会这样做。Codex CLI 足够轻量,可以放入 CI 或脚本化上下文中,而 Claude Code 则在 VS Code 中处理交互式开发会话。这两个工具不共享会话,因此组合使用意味着维护单独的配置——可管理但值得有意识地考虑。


推荐阅读

  1. 如何使用 Codex 与 Novita AI 模型:完整设置指南
  2. Claude Code CLI 文档:设置、斜杠命令和 LLM API 集成
  3. CLI 与 IDE 编码代理:哪个更适合你的下一个项目