Codex カスタムプロバイダーの設定とエラー対処
model_provider、Base URL、wire_api、API Key、モデル ID を使って Codex のカスタムプロバイダーを設定し、プロバイダー、401、404 エラーを解決します。
短い答え
model_provider は、Codex CLI が使用するプロバイダーを指定します。この値は [model_providers.<id>] で定義したプロバイダー ID と一致する必要があります。
base_url はモデルリクエストの送信先となる API エンドポイントです。OpenAI 互換プロバイダーでは、通常 /v1 形式のエンドポイントを指定します。
wire_api はリクエストのプロトコルです。現在の Codex は responses のみ対応し、省略時もこの値を使います。
この情報が役立つ場面
- カスタムの OpenAI 互換プロバイダーを設定するとき
- Codex でプロバイダーが見つからない、またはモデルリクエストに失敗するとき
model_providerとmodelの違いが分からないとき- BetterToken、OpenAI、または他のプロバイダーを 1 つの
config.tomlに設定するとき - Base URL、API Key、モデル ID を区別する必要があるとき
項目の関係
| 項目 | 目的 |
|---|---|
model_provider | 使用するプロバイダー ID を選択 |
[model_providers.<id>] | 1 つのプロバイダーの詳細設定を定義 |
name | プロバイダーの表示名 |
base_url | ルート API エンドポイント |
wire_api | provider のリクエストプロトコル。現在は responses のみ対応。 |
model | デフォルトのメインモデル ID |
review_model | /review などのコードレビュー処理で使用するモデル |
ファイルの場所を確認してバックアップする
独自の CODEX_HOME を設定している場合は、そのディレクトリの config.toml と auth.json を編集してください。それ以外は macOS / Linux では ~/.codex、Windows では %USERPROFILE%\.codex を使用します。CLI と App は同じディレクトリを使用する必要があります。WSL のユーザーディレクトリは別です。
編集前に Codex を完全に終了し、両方のファイルを非公開の場所にバックアップしてください。ファイルがなければ作成します。既存の設定を置き換え、キーやテーブルを重複して追加しないでください。無関係な設定は残します。
推奨パターン
config.toml を編集する
このページはユーザーの config.toml を使います。トップレベルのキーはすべての TOML テーブルより前に置き、[projects."<path>"] に入れないでください。このテーブルはプロジェクトの trust_level 用です。選択した provider ID とテーブル名を一致させます。ファイル認証では選択した provider から env_key と experimental_bearer_token を削除します。
model_provider = "bettertoken"model = "gpt-6-astra"cli_auth_credentials_store = "file"
[model_providers.bettertoken]name = "BetterToken"base_url = "https://bettertoken.ai/v1"wire_api = "responses"requires_openai_auth = truesupports_websockets = false例では GPT-6 Astra(gpt-6-astra)を使用します。別のモデルでは、モデル広場から完全な ID をコピーして model を置き換えてください。GPT、Kimi、GLM のファイル認証構造は共通です。自動設定は GPT で利用できます。
auth.json を編集する
auth.json は config.toml と同じディレクトリにあります。auth.json がない場合は、そのディレクトリに新規作成してください。ファイルの内容を次の JSON にし、YOUR_API_KEY を自分の BetterToken API Key に置き換えて保存してください。
{ "auth_mode": "apikey", "OPENAI_API_KEY": "YOUR_API_KEY"}設定パラメーター
| パラメーター | 役割と配置 | デフォルトと例 |
|---|---|---|
model_provider | ユーザー設定のトップレベル。下の設定 ID を選びます。 | デフォルトは openai。この例は bettertoken。 |
model | トップレベル。モデル広場の完全な Model ID。 | 例は gpt-6-astra。必要に応じて変更します。 |
cli_auth_credentials_store | トップレベル。ログイン情報の保存先。 | この例は file。同じディレクトリの auth.json を読みます。 |
name | provider テーブル内。表示名のみ。 | BetterToken は Model ID ではありません。 |
base_url | provider テーブル内。モデル API の Base URL。 | https://bettertoken.ai/v1 を使い、Codex が /responses を追加します。 |
wire_api | provider テーブル内。リクエストのプロトコル。 | 現在は responses のみ対応。省略時も同じ値です。 |
requires_openai_auth | provider テーブル内。OpenAI 認証と認証情報ストアを使います。 | デフォルトは false。ここでは true。ログインファイルを維持するスイッチではありません。 |
supports_websockets | provider テーブル内。Responses WebSocket 対応。 | デフォルトは false。ここでは HTTP/SSE を使います。 |
auth_mode | auth.json 内。認証モード。 | ここでは apikey。公式 ChatGPT 認証を置き換えます。 |
OPENAI_API_KEY | auth.json 内。API 認証の Key。 | YOUR_API_KEY を BetterToken API Key に置き換えます。 |
このファイル認証は API Key モードに切り替えます。公式アカウントを維持する場合は公式ログインを維持する設定を使い、二つのモードを混在させないでください。違いは認証の目的であり、CLI、App、Extension の違いではありません。
任意の調整
この三つは任意の調整で、接続の必須条件ではありません。必要なら既存の [model_providers.bettertoken] テーブルに追加し、同名テーブルを重複作成しないでください。
request_max_retries = 4stream_max_retries = 8stream_idle_timeout_ms = 300000| パラメーター | 役割と配置 | デフォルトと例 |
|---|---|---|
request_max_retries | provider テーブル内。HTTP リクエストの最大再試行回数。 | デフォルトは 4。接続に応じて調整します。 |
stream_max_retries | provider テーブル内。ストリーム切断後の再接続回数。 | デフォルトは 5。8 は任意の独自設定です。 |
stream_idle_timeout_ms | provider テーブル内。ストリーム無通信時のタイムアウト、単位はミリ秒。 | デフォルトは 300000。タスク全体の制限時間ではありません。 |
設定の階層と古いキー
モデルや推論設定を [projects."<path>"] に入れないでください。プロジェクト固有のモデルは信頼済みプロジェクトの .codex/config.toml のトップレベルで設定できますが、provider と認証はユーザー設定に置きます。現在の profile は CODEX_HOME 内の NAME.config.toml を codex --profile NAME で選択します。古い [profiles.NAME] やトップレベルの profile は使いません。
再起動して確認する
両方のファイルを保存し、ターミナルで新しい Codex CLI セッションを直接起動します。
codexバックグラウンドプロセスを含めて Codex App を完全に終了し、再度開いて新しいローカルタスクを作成してください。使用する各クライアントで短いプロンプトを送信します。正常な応答でそのクライアントの接続を確認してください。
トラブルシューティング
401、403、ログイン要求が出た場合は、使用中のディレクトリ、auth.json の Key、auth_mode = apikey、cli_auth_credentials_store = file、requires_openai_auth = true を確認してください。プロバイダーやモデルのエラーでは、プロバイダー ID の一致、https://bettertoken.ai/v1、wire_api = responses、モデルの利用可否を確認します。変更が反映されない場合は設定の上書きを調べ、CLI と App が同じ CODEX_HOME を使用していることを確認してください。
関連ドキュメント
- Codex CLI の config.toml を設定する方法
- Codex の BetterToken 設定ガイド
- Codex CLI のサンドボックスと承認モードとは?
- OpenAI 互換 API と Anthropic 互換 API の違い

