核對於 2026-11-12

在 OpenAI Codex CLI 使用自己的 API Key

在 ~/.codex/config.toml 加一個 model provider 區塊,base_url 填 https://api.relayswitch.io/v1,金鑰放進環境變數,Codex CLI 的用法完全不變。請求走 Responses 路由,每一輪從預付的美元餘額按 token 扣款。

01Codex 是什麼,為什麼能換 API 來源

Codex CLI 是 OpenAI 的命令列程式代理。它的設定裡有一項 model_provider,預設值是 openai,請求送到 OpenAI 自己的介面。這一項可以換:在 config.toml 定義一個自己的 provider,寫明介面網址與存放金鑰的環境變數,再把 model_provider 指過去。Codex 的指令和用法都不變,變的是計費對象:之後每一輪都從你在 RelaySwitch 的預付餘額扣款。

Codex 只使用一種協定:OpenAI 的 Responses API。它的設定參考文件寫明 wire_api 只支援 responses 一個值,所以替 Codex 挑 API 服務,第一件事是確認對方提供 /v1/responses,而不是只有 /v1/chat/completions。這裡兩條路由都有,Codex 用前一條。

02config.toml:一個 provider 區塊

把本節最後的區塊寫進使用者層級的 ~/.codex/config.toml。這個目錄由環境變數 CODEX_HOME 決定,預設是 ~/.codex。五個鍵各自的意思:

  • model_provider 依表名選中下面的區塊。表名要自己取:openai、ollama、lmstudio、amazon-bedrock、amazon-bedrock-runtime、gcp 是 Codex 保留的內建 id,不能覆寫。
  • base_url 填 https://api.relayswitch.io/v1,要帶 /v1;Codex 會在後面接上 /responses。
  • env_key 是存放金鑰的環境變數名稱,不是金鑰本身。金鑰留在環境變數裡,設定檔就可以放心提交或同步。
  • wire_api 只有 responses 一個可用值,也是預設值,這一行可以省略;舊教學裡的 wire_api = "chat" 已經不能用。
  • requires_openai_auth 預設是 false,不用寫:自訂 provider 以 env_key 指向的金鑰驗證,不走 OpenAI 的帳號登入。
toml
1# ~/.codex/config.toml
2model = "gpt-6.1-sol"
3model_provider = "relayswitch"
4
5[model_providers.relayswitch]
6name = "RelaySwitch"
7base_url = "https://api.relayswitch.io/v1"
8env_key = "RELAYSWITCH_API_KEY"
9wire_api = "responses"

03把金鑰放進環境變數,啟動 Codex

在執行 Codex 的那個終端機視窗匯出金鑰,再啟動。把 export 那一行加進 shell 的設定檔,之後新開的終端機才會帶上它。金鑰怎麼取得,見 Claude API Key:同一把金鑰就能用在 Codex。

bash
1export RELAYSWITCH_API_KEY="sk-relay-..."
2codex

04啟動前先測通 Responses 路由

啟動之前,先照 Codex 的格式送一個最小的 Responses 請求,確認金鑰和網址都正確。-i 會印出狀態列與回應標頭,標頭裡有這次請求的 id。

回覆 200 之後再執行 codex 送出第一個指令;這次請求會在幾秒內出現在控制台的用量頁,附上它的 token 數與扣款。臨時換模型,用 codex --model 加上模型 id。

bash
1curl -i https://api.relayswitch.io/v1/responses \
2 -H "Authorization: Bearer sk-relay-..." \
3 -H "content-type: application/json" \
4 -d '{"model": "gpt-6.1-sol", "input": "Reply with ok"}'

05GPT 系列的即時價格

Codex 是圍繞 GPT 模型與 Responses 介面設計的,所以本頁只列 GPT。單位為美元/每百萬 token,輸入、快取輸入與輸出分開計價,表中的價格就是扣款價格。填進 config.toml 的模型 id 必須支援 Responses 路由,上面範例裡的那個就是。想在終端機用 Claude 寫程式,見 Claude Code 教學,用的是同一把金鑰、同一筆餘額。

模型開發商輸入輸出上下文長度
GPT-6.1 Solgpt-6.1-solOpenAI$0.582≈ NT$19.56$2.91≈ NT$97.801,050,000
GPT-6 Lunagpt-6-lunaOpenAI$0.0625≈ NT$2.10$0.20≈ NT$6.721,050,000
GPT-6 Solgpt-6-solOpenAI$0.60≈ NT$20.17$3.00≈ NT$100.831,050,000
GPT-6 Astragpt-6-astraOpenAI$3.00≈ NT$100.83$15.00≈ NT$504.141,050,000
GPT-5.6 Lunagpt-5.6-lunaOpenAI$0.12≈ NT$4.03$0.72≈ NT$24.201,050,000
GPT-5.6 Solgpt-5.6-solOpenAI$1.20≈ NT$40.33$3.00≈ NT$100.831,050,000
GPT-5.6 Terragpt-5.6-terraOpenAI$1.20≈ NT$40.33$3.60≈ NT$120.991,050,000
GPT-5.5gpt-5.5OpenAI$1.80≈ NT$60.50$9.00≈ NT$302.481,050,000
GPT-5.4 Minigpt-5.4-miniOpenAI$0.75≈ NT$25.21$4.50≈ NT$151.24400,000
GPT-5.4gpt-5.4OpenAI$1.50≈ NT$50.41$9.00≈ NT$302.481,050,000
GPT-5.3-Codexgpt-5.3-codexOpenAI$1.75≈ NT$58.82$14.00≈ NT$470.53400,000
GPT-4o minigpt-4o-miniOpenAI$0.15≈ NT$5.04$0.60≈ NT$20.17128,000
GPT-4ogpt-4oOpenAI$2.50≈ NT$84.02$10.00≈ NT$336.09128,000
GPT-4.1 Nanogpt-4.1-nanoOpenAI$0.10≈ NT$3.36$0.40≈ NT$13.441,048,576
GPT 5.4 Nanogpt-5.4-nanoOpenAI$0.40≈ NT$13.44$2.50≈ NT$84.02400,000
GPT 5.6gpt-5.6OpenAI$0.9412≈ NT$31.63$4.7059≈ NT$158.161,050,000
GPT 6.1 Terragpt-6.1-terraOpenAI$0.2941≈ NT$9.88$1.4706≈ NT$49.421,000,000
gpt-oss-120bgpt-oss-120bOpenAI$0.20≈ NT$6.72$1.80≈ NT$60.50
gpt-oss-20bgpt-oss-20bOpenAI$0.16≈ NT$5.38$0.72≈ NT$24.20

美元/每百萬 token · ≈ 為按 2026-11-14 各國央行參考匯率換算的新台幣參考價,實際以美元計費

06Codex 的費用怎麼省

Codex 每一輪都會把對話與工具輸出重新送一次,所以花費主要在輸入與快取輸入。這些 token 命中快取時以快取價計費,回應裡會回報快取 token 的數量;能不能命中,取決於模型與請求本身。省錢的辦法因此很具體:

  • 日常修改用便宜的模型,困難的審查與重構再切到貴的。
  • 一個任務做完就開新的工作階段,不要讓上下文一直變長。
  • 替 Codex 另外建一把金鑰,設美元預算與每日消費上限:到了上限,API 回覆 402,這把金鑰停下來,帳戶裡其餘的餘額不受影響。

07profile、/model 選單與常見錯誤

401 到 404 在請求送到模型之前就回覆,429、502、503 沒有內容回傳,這些情況都不扣款。依狀態碼排查的完整對照,在 OpenAI API 串接的錯誤碼一節。

profile 檔profile 是名為 ~/.codex/<name>.config.toml 的檔案,只寫和 config.toml 不同的鍵,用 codex --profile <name> 啟動時疊加上去。Codex 0.134.0 起,寫在 config.toml 裡的 [profiles.<name>] 表不再被讀取,照舊教學抄不會生效。
/model 選單使用自訂 provider 時,選單列出的仍是 Codex 內建的 OpenAI 模型。選了會改寫目前的 profile 檔:模型變了,provider 沒變。換模型請用 --profile 或 --model。
401金鑰不對或已撤銷,或啟動 Codex 的終端機裡 RELAYSWITCH_API_KEY 是空的。重新 export 後再啟動。
402餘額不足,或這把金鑰的預算用完了。儲值或調高預算後立即恢復。
404模型 id 不在目錄裡,多半是 /model 選單改寫了 profile。把 model 那一行改回來。
429金鑰到了速率上限。等回應標頭 retry-after 給的秒數,或在控制台調高這把金鑰的每分鐘請求數。
provider 區塊沒生效表名用了保留的 id,或 model_provider 填的不是這張表的名字。

常見問題

Codex CLI 怎麼設定自己的 API Key?
在 ~/.codex/config.toml 加一個 [model_providers.relayswitch] 區塊,寫 name、base_url(https://api.relayswitch.io/v1)與 env_key(RELAYSWITCH_API_KEY),再把最上層的 model_provider 設成 relayswitch、model 設成目錄裡的一個 GPT id。金鑰用 export 放進環境變數,然後執行 codex。
還需要 ChatGPT 帳號或 OpenAI 的 API Key 嗎?
依 Codex 的設定參考文件,自訂 provider 的 requires_openai_auth 預設是 false,請求以 env_key 指向的環境變數裡的金鑰驗證。帳戶與餘額都在 RelaySwitch,金鑰以 sk-relay- 開頭。
base_url 要不要加 /v1,wire_api 要填什麼?
base_url 填 https://api.relayswitch.io/v1,要帶 /v1,Codex 會在後面接上 /responses。wire_api 只有 responses 一個可用值,也是預設值,這一行可以省略;舊教學裡的 wire_api = "chat" 已經不能用。
Codex 和 Claude Code 差在哪裡?
Codex CLI 是 OpenAI 的命令列程式代理,圍繞 GPT 模型與 Responses 介面設計,在 config.toml 設定 provider。想在終端機用 Claude 寫程式,用的是 Claude Code,設定方式是兩個環境變數。兩者可以用同一把金鑰、同一筆餘額。
Codex 的費用怎麼算,要怎麼省?
Codex 每一輪都會重送對話與工具輸出,花費主要在輸入與快取輸入,依目錄價格從預付餘額按 token 扣款。三個辦法:日常修改用便宜的模型,難題再切到貴的;任務做完就開新的工作階段;替 Codex 的金鑰設美元預算與每日上限,到了額度就停。
怎麼確認模型沒有被換掉,推理強度也沒有被改?
兩樣都能自己核對。每個模型每天收到同一則檢查提示,回答與先前的結果比對,結果公開在 https://api.relayswitch.io/v1/proof;每次請求有一張附簽章的收據,寫明模型 id、計費 token 與費用。model_reasoning_effort 由 Codex 隨請求送出,閘道會原樣轉給模型。

一個 provider 區塊,一個環境變數

base_url 填 https://api.relayswitch.io/v1,GPT 系列依目錄即時價格計費。信用卡或 USDT, USDC, BTC, ETH, SOL 儲值,最低 $10。