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 的安全模型是明確設計的。執行中的程式碼預設停用網路存取,且檔案寫入範圍限定於設定的目錄。三種批准模式控制代理擁有多少自主權:

  • 建議模式(預設):每一步都要求批准
  • 自動編輯模式:自動編輯檔案,但執行命令前會先詢問
  • 全自動模式:無需提示直接執行

該專案採用 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 存取)
線路 API OpenAI Chat Completions Anthropic Messages API
第三方提供者 任何 OpenAI 相容 任何 Anthropic 相容
操作介面 僅終端機 CLI、VS Code、JetBrains、桌面、瀏覽器
專案設定 TOML 設定檔 CLAUDE.md + settings.json
會話連續性 每次會話 命名會話、恢復、分支、倒回
批准模式 建議 / 自動編輯 / 全自動 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 的開源特性在特定情境下很重要:你可以稽核代理迴圈、將其分叉用於內部工具,或將其供應到 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 的三種模式簡單且明確:

  • 建議:顯示建議的變更,並在應用任何變更前詢問
  • 自動編輯:無需詢問即可寫入檔案,但在執行 shell 命令前需要批准
  • 全自動:無需詢問即可執行;適用於受信任的管道

Claude Code 的權限模式對應到類似概念,但更為細緻:

  • default:詢問檔案編輯和 shell 命令的批准
  • acceptEdits:自動批准檔案編輯,詢問 shell 命令
  • auto:無需詢問即可執行(相當於 Codex 的全自動)
  • plan:在執行前顯示計畫;適用於在執行前審查多步驟任務
  • bypassPermissions:跳過所有檢查(適用於受信任的自動化情境)

Claude Code 還支援在 settings.json 中使用細粒度的允許/拒絕/詢問規則系統,讓你可以永久批准特定命令,而無需更改整體權限模式。

對於具有嚴格變更控制要求的團隊,Claude Code 的分層權限系統提供了更多控制。對於只想要明確開/關行為的個別開發者,Codex CLI 的三模式系統更容易理解。

會話與上下文管理

長時間的編碼會話會遇到上下文限制。兩個工具都處理這個問題,但方式不同。

Codex CLI 每次會話管理上下文。當會話結束時,上下文就消失了。下次呼叫時你從頭開始。

Claude Code 增加了持久會話管理:

  • 命名會話,可以使用 claude -r "session-name" 恢復
  • /compact 用於總結當前對話並減少令牌使用量,同時繼續進行
  • /branch 用於分叉對話並嘗試不同的方法,而不丟失原始對話
  • /rewind 用於在變更出錯時回滾到檢查點
  • /context 用於可視化視窗的使用量和位置

對於短期的重點任務 — 修復這個錯誤、編寫這個函數、添加這些測試 — 差異並不重要。對於長時間的重構會話或需要在多次交換中演變的任務,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 等模型的每令牌費率遠低於 Anthropic 或 OpenAI 自己的旗艦模型。

Codex CLI 搭配 Novita AI:在 ~/.codex/config.toml 中將 model_provider 設定為指向 https://api.novita.ai/openai。請參閱 如何使用 Novita AI 模型在 Codex 中的完整模型清單和設定步驟。

Claude Code 搭配 Novita AI:設定 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 年發布的開源終端機代理,使用當前的 OpenAI 模型(GPT-4o、o3 等)透過 Chat Completions API。名稱相似但產品無關。

我可以在 Codex CLI 中使用 GPT-4o 或更新的 OpenAI 模型嗎?

可以。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. 如何使用 Novita AI 模型在 Codex:完整設定指南
  2. Claude Code CLI 文件:設定、斜線命令與 LLM API 整合
  3. CLI 與 IDE 編碼代理:哪個是下一個專案的更明智選擇