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
2 つの接続方式
本ページ前半の「環境変数設定」は基本方式、本節はカスタムモデル方式です。違いは以下の通りなので、必要に応じて選んでください。| 基本方式(profile + 単一モデル) | カスタムモデル方式(本節) | |
|---|---|---|
| 設定内容 | config.toml に model = "xxx" を固定で書く | 加えて model_catalog_json のカタログファイルを管理する |
| モデル切り替え | 設定ファイルを変更して再起動 | /model リストで直接クリックして、いつでも切り替え |
| 適したシーン | ある 1 つのモデルを長期固定で使う | 複数モデルを頻繁に比較 / 切り替えたい |
| 複雑さ | 低 | 中 |
config.toml を変更 → 環境変数を設定 → 再起動してモデルを選択。
ステップ 1:モデルカタログファイルを生成する
カタログファイルは{ "models": [ ... ] } 構造で、配列の各要素が /model で選択可能なモデルを 1 つ記述します。まず固定の 1 モデルでフィールドを説明し、その後で上位 30 件を一括生成するスクリプトを示します。
1.1 まず形式を理解する:1 モデルを固定する
以下はCodex で解析できることを検証済みの最小完全カタログ(glm-5.2 という 1 モデルのみ)です。そのまま ~/.codex/model-catalogs/custom-models.json として保存すれば使えます。モデルを増やしたい場合は、models 配列に同じ構造のエントリを追加していきます。
| フィールド | 役割 | API から |
|---|---|---|
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)を使用します。次の 2 種類のエラーはいずれもカタログ全体を破棄させ、/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 に書いて永続化することを推奨します。Key は AIHubMix コンソール で取得してください。
ステップ 4:再起動してモデルを選択する
Codex App / TUI を再起動してカタログファイルを有効にし、次のようにします:/model を入力するとカタログで宣言した全モデルがリスト表示され、方向キーで選択、Enter で確定します:

/model はさらに推論レベル(effort)を選ばせます。必要に応じて low / medium / high を選んでください。
ステップ 5:有効になったか検証する
- Codex に入って
/modelを入力し、カタログで宣言したモデルが表示されることを確認し、そのうちの 1 つ(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)**では 1~2 個しか残らず、現在のモデルが「カスタム」と表示される場合——これはデスクトップ版の既知のバグです:ローカルカタログの上にさらに公式 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