Codex API 金鑰是任何可讓 Codex CLI 按 token 計費,而非使用 ChatGPT 方案的金鑰:可以是來自 platform.openai.com 的 OpenAI API 金鑰,也可以是供應商金鑰,例如 Kunavo 的 sk-kn-;Codex 會從環境變數讀取該金鑰,變數名稱由 env_key 在 model_providers 區塊中指定。 供應商必須提供 Responses API,這就是下文的那項必要條件。
Codex CLI 是 OpenAI 的開源終端機程式設計代理,可透過 ChatGPT 登入或使用 API 金鑰執行。API 金鑰這條途徑值得了解:它按 token 計費,沒有月費,也是唯一能讓你將 CLI 指向其他供應商,甚至完全不同模型系列的途徑。本指南介紹可實際運作的設定、讓大多數閘道遇到困難的那項必要條件,以及一次工作階段的實際費用。
唯一重要的要求
Codex CLI 對自訂端點的要求比大多數工具更嚴格。它的 model_providers 區塊包含一個 wire_api 鍵,而且只接受一個值:responses。這表示自訂供應商必須提供 OpenAI 的 Responses API,端點為 POST /v1/responses,而非更常見的 /v1/chat/completions。大多數相容於 OpenAI 的閘道只提供後者,因此無論你提供什麼 base_url,其中許多都完全無法讓 Codex CLI 運作。
Kunavo 同時提供兩種介面,因此下面的設定可以直接使用。
配置
Codex 會讀取 ~/.codex/config.toml。兩個最上層的鍵用於選擇模型和 provider;provider 區塊描述如何存取它:
# ~/.codex/config.toml
model = "gpt-5-6-sol"
model_provider = "kunavo"
[model_providers.kunavo]
name = "kunavo"
base_url = "https://api.kunavo.com/v1"
env_key = "KUNAVO_API_KEY"
wire_api = "responses"請注意該檔案中沒有的內容:金鑰本身。env_key 指定一個環境變數,Codex 會在啟動時從該變數讀取金鑰,因此設定檔可以安全地提交或分享。
# Codex reads the key from the variable named by env_key.
export KUNAVO_API_KEY="sk-kn-..." # create at kunavo.com/app/keys
# Persist it (pick the file your shell actually loads):
echo 'export KUNAVO_API_KEY="sk-kn-..."' >> ~/.zshrc
codex "explain the structure of this repository"請在控制台建立金鑰,事先需完成註冊並儲值 $10。金鑰只會顯示一次,請立即妥善保存。如果 codex 已在另一個 shell 中執行,請重新啟動它——它會在啟動時讀取變數,而不是在每次請求時讀取。
除錯前先驗證
如果出現問題,請確認問題出在金鑰、端點還是 CLI。一個請求即可確定:
# Confirm the key and the endpoint before blaming Codex.
curl https://api.kunavo.com/v1/responses \
-H "Authorization: Bearer $KUNAVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5-6-sol",
"input": "Say OK and nothing else."
}'收到 JSON 回應表示金鑰和端點正常,任何剩餘問題都出在 config.toml。收到 401 表示金鑰錯誤,或該變數在目前的 shell 中為空。若收到 404 且問題出在 model,表示 slug 與目錄不符。
應設定哪個模型
model 的值只是同一端點上的一個 slug,因此切換模型只需改一個詞,無需新金鑰,也無需新的 provider 區塊。
| 工作 | 模型 | Kunavo 輸入/輸出(每 1M) |
|---|---|---|
| 程式設計專用的預設模型 | gpt-5-6-sol | $2.00 / $12.00 |
| 最困難的重構與除錯 | claude-opus-5 | $3.50 / $17.50 |
| 日常 agentic 程式設計 | claude-sonnet-5 | $1.40 / $7.00 |
| 快速修改與問答 | claude-haiku-4-5 | $0.70 / $3.50 |
gpt-5-6-sol 是針對程式設計調校的 GPT,也是此 CLI 的自然預設選擇,價格為每 100 萬 token $2.00 / $12.00,而 OpenAI 的牌價為 $5.00 / $30.00 ——但 OpenAI 目前收取促銷價格 $4.00 / $20.00,至少提供至 2026年11月21日。所有模型的完整費率請參閱價格頁面。
在 Codex CLI 中執行 Claude 模型
這一點會讓人意外:Codex CLI 受協定約束,而非受模型約束。它使用 Responses 傳輸格式,端點背後的任何聊天模型都能回應。將它指向 claude-opus-5,就能完整執行整個流程,包括工具呼叫,因此代理仍會照常讀取檔案、提出修改建議並執行命令。
# Same provider block, different model — no new key, no new config.
model = "claude-opus-5"
model_provider = "kunavo"
[model_providers.kunavo]
name = "kunavo"
base_url = "https://api.kunavo.com/v1"
env_key = "KUNAVO_API_KEY"
wire_api = "responses"閘道會將 Responses 請求轉換為Anthropic Messages API,再將回覆轉換回 Responses 格式。有一點需要坦白說明:Codex 會傳送只有原生支援 Responses 的模型才能處理的不透明 reasoning 項目,這些項目在傳送給非 GPT 上游模型時會被捨棄。模型會失去上一輪的私有草稿,但它所依據的可見對話紀錄仍保持完整。實際上,這會讓長推理鏈的連貫性略有下降,但對一般的編輯—執行—修正循環完全沒有影響。
這是否是個好主意,與它是否可行是兩個問題。如果你明確想用 Claude,Claude Code 就是為它打造的,並會原樣傳遞 cache_control,不做轉換。但如果你偏好 Codex CLI 的沙箱機制,也希望由 Claude 作為背後的模型,這種組合是可行的。
工作階段的成本
Agentic CLI 會在每一步重新傳送系統提示詞、任務歷史和最新的檔案上下文,因此 token 的累積速度比步數所暗示的更快。典型的一步大約包含 25,000 個輸入 token 和 1,200 個輸出 token:
| 單位 | Token(輸入 / 輸出) | gpt-5-6-sol | 按 OpenAI 官方价 |
|---|---|---|---|
| 一次代理式步驟 | 25,000 / 1,200 | $0.024 | $0.061 |
| 一項 20 步驟的任務 | ~500k / ~24k | ~$0.48 | ~$1.21 |
| 繁忙的一天(5 項此類任務) | — | ~$2.42 | ~$6.05 |
由於不同模型系列的輸出費率差異遠大於輸入費率,輸出占比較高的工作會改變排序——請將自己的數據輸入成本計算器,不要只憑單一計算範例做判斷。失敗的請求不收費。
API 金鑰路徑何時優於訂閱
ChatGPT 方案以固定月費包含 Codex 使用量;API 金鑰則只針對實際執行的用量計費。當你只偶爾集中寫程式,而非每天使用、希望為每個金鑰設定支出上限並查看用量,而非使用不透明的額度,或想使用訂閱方案未提供的模型時,金鑰這條途徑更有優勢。如果你每天都大量使用,它就不占優勢——在這種用量下,固定費率很難被超越。這兩條途徑並不互斥:Codex 設定檔可讓你同時保留兩者,並依任務切換。
疑難排解
| 症狀 | 原因 |
|---|---|
每個請求中的 404 | Provider 不提供 /v1/responses,或者 base_url 已經包含該路徑——它應以 /v1 結尾。 |
401 Unauthorized | env_key 指定的變數在啟動 Codex 的 shell 中為空。匯出該變數後,請重新啟動 shell。 |
| 找不到模型 | Slug 與目錄不符。Slug 使用連字號:gpt-5-6-sol,而不是 gpt-5.3-codex。 |
wire_api 已拒絕 | 只接受 "responses"。使用 "chat" 的設定將無法載入。 |
| 配額不足 | 錢包餘額低於請求估算金額。請前往帳單儲值。 |
常見問題
如何將 API 金鑰與 Codex CLI 搭配使用?
在 ~/.codex/config.toml 中新增一個 [model_providers.NAME] 區塊,其中包含 base_url、env_key 和 wire_api = "responses",然後將 model_provider 設為該名稱。Codex 會從 env_key 指定的環境變數中讀取金鑰,不會將金鑰儲存在設定檔中。使用 Kunavo 時,基底 URL 為 https://api.kunavo.com/v1,金鑰是在 kunavo.com/app/keys 建立的 sk-kn- 金鑰。
Codex CLI 可以使用自訂 API 端點而不是 OpenAI 嗎?
可以,但提供者必須在 POST /v1/responses 提供 OpenAI Responses API。Codex CLI 的 model_providers 區塊只接受 wire_api = "responses",因此僅提供 /v1/chat/completions 的閘道無法設定。Kunavo 同時提供兩者,因此可以使用上面的設定區塊。
執行 Codex CLI 需要 ChatGPT Plus 或 Pro 訂閱嗎?
不需要。Codex CLI 可以透過 ChatGPT 方案登入,也可以使用 API 金鑰執行。API 金鑰這條途徑按 token 計費,沒有月費;如果你只偶爾集中寫程式,而非每天使用,這種計費方式更便宜,也是唯一能讓你將 CLI 指向其他供應商或模型系列的途徑。
Codex CLI 能執行 Claude 模型嗎?
可以,透過提供 Responses API 的閘道即可。Codex CLI 受通訊協定約束,而不受模型約束:它使用 Responses 傳輸格式,該端點背後的任何聊天模型都能回應。將其指向 Kunavo 並設定 model = claude-opus-5 後,Codex CLI 即可完整執行,包括工具呼叫——閘道會在 Responses 和 Anthropic Messages API 之間進行雙向轉換。
為什麼 Codex CLI 使用我的自訂 provider 時回傳 404?
幾乎總是因為供應商未實作 POST /v1/responses,或 base_url 已包含 /responses 路徑。Codex 會自行附加該路徑,因此 base_url 應以 /v1 結尾。若回傳 401,則表示 env_key 指定的環境變數在啟動 Codex 的 shell 中為空。
Codex CLI 將 API 金鑰儲存在哪裡?
它不會儲存金鑰。env_key 指定一個環境變數,Codex 會在啟動時從環境中讀取金鑰,因此 config.toml 不含任何機密,可以安全地提交。
需要 ChatGPT 訂閱嗎?
不需要。金鑰是登入的完整替代方案,也是唯一支援自訂 provider 或非 GPT 模型的路徑。
這適用於 IDE 擴充功能中的 Codex 嗎?
擴充功能與 CLI 共用 ~/.codex/config.toml,因此相同的 provider 區塊也適用。編輯該檔案後請重新啟動編輯器。
我可以讓 OpenAI 和閘道並存嗎?
可以——定義多個 [model_providers.*] 區塊,並使用 model_provider 切換;或者將每個區塊包裝在 Codex profile 中,每次執行時選擇。
這與 Claude Code 相比如何?
Claude Code 會讀取 ANTHROPIC_BASE_URL 並使用 Messages API,因此將它指向閘道只需設定三個環境變數,不需要設定檔。完整比較涵蓋擴充功能、沙箱機制與成本結構,請參閱 Claude Code 與 Codex CLI。由於 Codex 受協定約束,而非受模型約束,只需修改一行,就能改用同一端點背後的 Claude 模型;Anthropic Claude API 價格表列出了切換後使用 Claude 的每 token 費率。