model_catalog_json 目錄檔案,在 /model 清單裡隨時切換)。
OpenAI Codex CLI 集成
AiHubMix 提供了與 OpenAI Codex CLI 的無縫集成,讓你可以在命令列環境中利用先進的 AI 程式助手。透過簡單的配置步驟,即可在終端機中直接使用自然語言執行各種程式和系統操作任務。 使用之前,請先執行以下指令安裝或更新:配置步驟
1. 環境變數設定
打開你的 Shell 配置檔(例如.zshrc 或 .bashrc),新增以下環境變數:
2. 套用配置變更
在終端機中執行以下指令,使環境變數生效:3. 啟動 Codex CLI
定位到你的專案目錄,然後執行codex 指令:

4. 使用自然語言執行任務
現在你可以透過自然語言向 Codex CLI 輸入指令,例如:
進階配置
實用指令參考
幫助指令
完整指令選項
在 Codex 中使用自訂模型
Codex 預設只在/model 清單裡顯示 OpenAI 官方模型。如果你想直接從清單中選擇 AIHubMix 上的任意模型(GLM、Claude、Gemini、DeepSeek、Kimi、Qwen……),可以用官方支援的「自訂模型」機制:透過一個本機 JSON 檔案(model_catalog_json)宣告可選模型,再用 [model_providers.aihubmix] 把請求指向 AIHubMix。
官方說明:Advanced Configuration · OSS mode / local providers
兩種接入方式
本頁前面「環境變數設定」講的是基礎方式,本節講的是自訂模型方式,差別如下,依需求選擇:| 基礎方式(profile + 單模型) | 自訂模型方式(本節) | |
|---|---|---|
| 設定內容 | 在 config.toml 裡寫死一個 model = "xxx" | 額外維護一個 model_catalog_json 目錄檔案 |
| 切換模型 | 改設定檔後重啟 | 直接在 /model 清單裡點選,隨時切 |
| 適合場景 | 長期固定用某一個模型 | 想在多個模型間頻繁比較 / 切換 |
| 複雜度 | 低 | 中 |
config.toml → 設環境變數 → 重啟選模型。
第 1 步:產生模型目錄檔案
目錄檔案是一個{ "models": [ ... ] } 結構,陣列裡每個元素描述一個可在 /model 裡選擇的模型。下面先用一個固定模型講清欄位,再給批次產生前 30 名的指令稿。
1.1 先理解格式:固定一個模型
下面是一份已驗證可被 Codex 解析的最小完整目錄(只含glm-5.2 一個模型)。直接存成 ~/.codex/model-catalogs/custom-models.json 就能用;想要更多模型,就往 models 陣列裡繼續追加同樣結構的條目。
| 欄位 | 作用 | 來自介面 |
|---|---|---|
slug | 模型 ID,Codex 用它發起請求,必須與介面回傳的 model_id 一致 | model_id |
display_name | /model 清單裡顯示的名稱 | model_name |
context_window / max_context_window | 上下文視窗。不寫會回退到很小的保守預設值,建議按介面真實值填 | context_length |
supported_reasoning_levels | 推理檔位,切換模型後用 /model 還能選 effort | — |
visibility | 設為 list 才會出現在選擇器中 | — |
priority | 清單排序,數字越小越靠前 | — |
base_instructions:它是該模型的系統提示詞。範例裡用一句話佔位,模型能正常跑;想要最接近原生 Codex 的程式表現,把它換成 codex debug models --bundled 裡任一內建模型的完整 base_instructions(下一節的批次指令稿就是這麼做的)。
官方目錄用 snake_case 欄位(
display_name、supported_in_api、visibility)。兩類錯誤都會讓整份目錄被丟棄、/model 裡看不到模型:缺必填欄位會報 missing field ...;用了 displayName、hidden 這類 camelCase 舊格式或不認識的取值會報 unknown variant ...。以本文這套欄位為準即可避開。1.2 批次產生前 30 名
手寫多個條目容易漏欄位。要把 AIHubMix 模型列表介面 的前 30 個 LLM 一次性寫進目錄,用下面的指令稿——它以一個內建模型為範本複製,必填欄位(含正確的base_instructions)天生齊全,跨 Codex 版本都不缺。需要 curl、python3 和已安裝的 codex CLI:
slug、display_name、description、context_window 等),其餘必填欄位全部從內建範本複製而來——這正是 1.1 裡那套欄位,只是 base_instructions 用的是完整官方提示詞。
產生的檔案較大(每個條目都含完整base_instructions,約 1~2 MB),屬正常現象。執行後用codex debug models驗證能否被正確解析(見第 5 步)。
指令稿裡那行image_generation過濾是有意保留的:type=llm的回傳中有極少數模型同時帶image_generation標籤(如gpt-image-2),不適合對話,指令稿會自動跳過後再取前 30。
第 2 步:修改 config.toml
編輯 ~/.codex/config.toml,在根層級加上 model_catalog_json,並定義 aihubmix provider:
wire_api = "responses" 是關鍵,漏寫或寫成 chat 都連不上。Codex 新版只走 OpenAI 的 Responses API(/v1/responses),AIHubMix 已原生相容 Responses API,所以直接指向 https://aihubmix.com/v1 即可,無需自建轉換代理。config.toml 大致如下(紅框為本步的關鍵項:根層級的 model / model_provider / model_catalog_json,以及 [model_providers.aihubmix] 段):

第 3 步:設定環境變數
把上面env_key 指定的環境變數設好(注意 = 兩側不要有空格):
~/.zshrc / ~/.bashrc 持久化。在 AIHubMix 主控台 取得 Key。
第 4 步:重啟並選擇模型
重啟 Codex App / TUI 讓目錄檔案生效,然後:/model 後會列出目錄裡宣告的全部模型,方向鍵選中、Enter 確認:

/model 還會讓你選推理檔位(effort),依需求選 low / medium / high 即可。
第 5 步:驗證是否生效
- 進入 Codex 後輸入
/model,確認能看到目錄裡宣告的模型,並切到其中一個(如glm-5.2)。 - 隨便提一個問題驗證鏈路打通。注意:不要靠「你是哪個模型」來判斷——
base_instructions裡寫著「You are Codex… based on GPT-5」,所有模型都會照此自稱 GPT-5,問了也分辨不出真實模型。要確認實際呼叫的模型,登入 AIHubMix 主控台「日誌」頁看那條請求記錄的model_id,這才是真相。
Model changed to ...,底部狀態列也會顯示目前模型與上下文視窗(下圖切到了 glm-5.2,視窗 258K):

自訂模型常見問題
-
/model裡看不到自訂模型? 按先後順序排查:- 先跑
codex debug models。若報missing field ...(最常見,缺必填欄位)或unknown variant ...(欄位名/取值不對),說明整份目錄解析失敗被丟棄——用第 1 步「複製內建範本」指令稿重新產生即可。 - 確認
model_catalog_json寫在config.toml根層級,不在[model_providers.*]段裡; - 確認 JSON 用的是 snake_case 官方欄位、
visibility為list; - 如果
codex debug models已經能看到全部模型,但**桌面端(Desktop App)**裡只剩一兩個、目前模型顯示為「自訂」——這是桌面端的已知 bug:它會在本機目錄之上再套一層官方 slug 白名單過濾,把非官方模型從選擇器裡刪掉(見 GitHub Issue #19694、#15138)。此時模型其實仍按config.toml裡的model = "..."正常呼叫(去 AIHubMix 日誌可證實),只是名字顯示不出來。要正確顯示就用終端機codexCLI / TUI;桌面端只能直接在config.toml裡寫死model = "你要的模型",等官方修復。
- 先跑
-
目錄是「替換」不是「合併」。
model_catalog_json會替換整個模型清單,而不是追加(實測:目錄裡只放 2 個模型,codex debug models就只剩這 2 個,內建的gpt-5.x全部消失)。如果你兩類都想要,就把它們一併寫進自訂目錄。 -
請求報協定錯誤 / 連不上。 多半是 provider 的
base_url或wire_api沒配對。AIHubMix 必須wire_api = "responses"+base_url = "https://aihubmix.com/v1"。若你接的是只支援 Chat Completions 的第三方,則需要本機轉換代理,AIHubMix 用戶無需此步。 -
頻繁 “Reconnecting” 重連。 部分網路/代理環境下 WebSocket(WSS)不通,可在 provider 段加
supports_websockets = false強制走 HTTP。 -
解析報
missing field ...(如missing field base_instructions)。 條目缺了必填欄位。新版 Codex 嚴格解析,base_instructions、availability_nux、upgrade、supports_reasoning_summaries、support_verbosity、default_verbosity、apply_patch_tool_type、truncation_policy、supports_parallel_tool_calls、experimental_supported_tools等都必須存在。用第 1 步「複製內建範本」指令稿可一次性補齊。 -
解析報
unknown variant。 目錄 JSON 裡有 Codex 不認識的欄位名或取值(常見於displayName/hidden等 camelCase 舊格式)。改用本文的 snake_case 欄位集即可。
參考文章
- 官方文件:Advanced Configuration | Configuration Reference
- 官方內建目錄格式參考:codex-rs/models-manager/models.json
- 社群指南:Codex config.toml:6 行接入任意自訂 provider
最後更新:2026-06-25