我想在 Codex 裡多幾個模型可以選。但我不想再多一個 AI Agent 介面,也不想要一個塞滿供應商金鑰的設定檔。Codex Router 剛好是一座本機的橋,兩個問題都避開了。
我是在 macOS 上用 Codex Router 0.5.1 設定的。Linux 上的 Codex CLI 也能用。這是社群專案,不是 OpenAI 做的,也沒有官方背書。
路由器做了什麼
Codex 本來就能透過使用者層級的 ~/.codex/config.toml 接自訂的模型供應商。官方設定參考文件裡有 model_provider、自訂 base_url 和 model_catalog_json 的說明。這些設定要放在使用者設定檔,不是專案裡的 .codex/config.toml。
Codex Router 幫你把這些接好。它在本機跑一個背景服務,根據你啟用的供應商建立模型目錄,再把 Codex 的每個 Responses 請求送到你選的模型。如果 Codex 還登入著 OpenAI,原生的 GPT 模型也會留在同一個選單裡。
比較巧妙的是工具這一塊。外部模型得看得懂 Codex App 的工具,所以路由器會把原生工具定義傳過去,名稱攤平成 codex_app__、mcp__ 這類形式。模型呼叫工具時,路由器再把原本的命名空間接回去。真正執行工具的還是 Codex,路由器只負責翻譯和轉送。
透過 Homebrew 安裝
你需要 Codex App 或 CLI,以及一個能正常運作的 Homebrew。這個 formula 會裝好路由器和它的 CLI。Electron Control Center、選單列 App 和桌面小工具都不在裡面。
加入 tap 再安裝:
brew tap duolahypercho/codex-router https://github.com/duolahypercho/codex-router
brew install codex-router
然後跑引導式設定:
codex-router setup --guided
它會問你要啟用哪些供應商,找找看有沒有可以沿用的登入資訊,缺少的憑證再私下請你輸入。接著替你的使用者帳號裝一個背景服務,並把它接上 Codex。輸入憑證時畫面不會顯示內容。供應商金鑰不應該出現在命令參數、受版本控制的檔案或聊天訊息裡。
我建議先從一家供應商開始。先確認一條路由能通,比一次把選單塞滿模型容易除錯得多。各家供應商不太一樣:有的用 API 金鑰,有的用 OAuth,有的走訂閱或本機端點,而且各自計費。
除非你自己選擇跑 smoke test,引導式設定不會送出要付費的測試請求。
確認安裝結果
我會先看服務狀態:
codex-router status
再跑完整的診斷:
codex-router doctor
doctor 會檢查 Codex 設定、背景服務、供應商憑證、產生出來的模型目錄、路由模型的定義,以及受管理的技能包。如果警告提到的是你根本沒設定的供應商,通常只是提示而已。真正要處理的,是跟你打算使用的供應商、服務或模型目錄有關的失敗。
列出供應商也很安全,這個命令不會印出任何憑證:
codex-router providers
都通過之後,把 Codex 完全結束再重開。開一個新任務,路由模型應該就會出現在選單裡。Codex 只在啟動時讀取外部模型目錄,所以只關掉一個視窗再打開,可能不夠。
在 CLI 裡可以直接指定路由模型:
codex -m PROVIDER/MODEL
請用路由器顯示的完整 ID。供應商前綴很重要,因為同一個模型系列可能同時能透過好幾種訂閱或 API 使用。
新增或更新模型
有些供應商提供即時的模型目錄。想看某一家現在有什麼:
codex-router discover-models PROVIDER
再挑出要在 Codex 裡顯示的:
codex-router curate-models PROVIDER
改完目錄記得重開 Codex。就算上游 API 會接受,我也不會用猜的去加模型 ID。Codex 還需要正確的 metadata,才能處理上下文長度、推理控制、輸入類型、搜尋和工具使用。
想實際打一次,Codex Router 有一個明確的測試命令:
codex-router test-model PROVIDER/MODEL --live --yes --quick
它會送出真實請求,可能會花錢。命令同時要求 --live 和 --yes,所以不會一不小心就跑了一次付費測試。
常見問題
如果選單裡沒有任何路由模型,先跑 codex-router providers,確認供應商有啟用、也登入了。接著跑 codex-router doctor,再把 Codex 完全重開,讓它讀到重新產生的模型目錄。
如果模型能回答,卻用不了 App 的工具,就去看 doctor 輸出裡的受管理技能包。另外裝瀏覽器或電腦操作驅動程式解決不了這個問題。路由模型應該呼叫 Codex 給它的工具名稱,命名空間的轉換交給路由器。
如果模型出現了,請求卻一直失敗,就仔細核對供應商和模型的組合。能用的模型會因 API、訂閱或地區而不同。我會先跑 discover-models,搞清楚這家怎麼計費之後,才送一個小的即時測試。
不要去改路由器簽署過的本機 URL,也不要把它的內部憑證複製到別的設定檔裡。如果受管理的 Codex 整合壞了,重跑一次引導式設定,或用 codex-router enable。
更新或移除
更新:
brew upgrade codex-router
要移除的話,先停掉使用者層級的服務、還原受管理的 Codex 設定,再解除安裝 formula:
codex-router uninstall
brew uninstall codex-router
順序很重要。套件歸 Homebrew 管,但使用者服務和設定時改過的 Codex 設定,歸 Codex Router 管。