CodexでOpenAI互換APIを設定する方法

Codexにカスタムモデルプロバイダーを追加し、Responses API、正しいBase URL、環境変数のAPI Keyで接続する手順を解説します。安全な検証、トラブルシューティング、ロールバックまでまとめます。

CodexでOpenAI互換APIを設定する方法

OpenAI互換APIをCodex CLIに接続するには、ユーザー設定にカスタムモデルプロバイダーを追加し、プロバイダーのBase URL、API Keyを格納する環境変数、responsesプロトコルを指定します。/v1/chat/completionsに対応しているだけでは不十分です。現在のCodexはResponses APIを使用します。以下の--profileを使う4ステップはCodex CLI向けです。

BetterTokenで必要な組み合わせは、base_url = "https://www.bettertoken.ai/v1?utm_source=blog&utm_medium=organic_content&utm_campaign=SEO-016&utm_content=openai-sovmestimyy-api-codex-podklyuchenie"env_key = "BETTERTOKEN_API_KEY"wire_api = "responses"です。BetterTokenの最新Codexガイドを開き、自分専用のAPI Keyを作成して、Setupまたはmodel plazaから現在の完全なModel IDをコピーしてください。グループ名とmappingは変更される可能性があるため、古い例から流用しないでください。この設定は従量課金の独立したAPIワークフローであり、ChatGPTサブスクリプションの機能を利用するものではありません。

準備するもの

  • 公式Codex CLIのインストールに必要なNode.jsとnpm。
  • 自分のBetterTokenアカウント、自分専用のAPI Key、Setupまたはmodel plazaに表示される現在の完全なModel ID。
  • 1回の短いリクエストに使える残高またはテスト枠。
  • macOS/Linuxのターミナル、またはWindows PowerShell。以下では両方のコマンドを示します。
  • 別のプロバイダーを使う場合は、Responses API、SSEストリーミング、必要なtool callsへの対応確認。

設定前に互換性を確認する

Codexの要件プロバイダーに確認すること重要な理由
Responses API/v1/responsesとストリーミングに対応しているかChat CompletionsだけではResponses APIを代替できないため
Bearer認証環境変数からキーを渡せるか公開されるTOMLに秘密情報を保存しないため
Model ID自分のキーで利用できる正確なIDは何かモデルの表示名とAPI IDが異なる場合があるため
SSEストリーミング長い応答や接続切断をどう処理するかCodexは応答をストリーミングで受信するため
Tool calls必要なResponsesのツールとフィールドに対応しているか「OpenAI互換」が機能全体の互換性を保証するわけではないため

プロバイダーがChat Completionsの例しか掲載しておらず、Responses APIについて説明していない場合は、先に対応状況を確認するか、小さなテストを実行してください。一般的なチャットクライアントの設定を確認せずにCodexへ転用しないでください。

ステップ1. Codex CLIをインストールまたは更新する

npm install -g @openai/codex codex --version

現在の設定フィールドは、Codex公式Config Referenceで確認してください。2026年8月14日時点では、model_providermodel_providers内のエントリを選択し、env_keyはキーを格納する環境変数を指定します。また、wire_apiでサポートされる値はresponsesのみです。

ステップ2. 独立したプロファイルファイルを作成する

現在のOpenAI Config Referenceで、名前付きプロファイルの標準パスは$CODEX_HOME/bt.config.tomlです。CODEX_HOMEのデフォルトは通常、macOS/Linuxでは~/.codex、Windowsでは%USERPROFILE%\.codexですが、カスタム値が設定されている場合はその値が優先され、実際のパスも変わります。

macOS/Linuxでは、環境変数を変更せずにディレクトリを確認します。

printf '%s\n' "${CODEX_HOME:-$HOME/.codex}"

PowerShellでは次を実行します。

if ($env:CODEX_HOME) { $env:CODEX_HOME } else { Join-Path $env:USERPROFILE ".codex" }

このコマンドで表示されたディレクトリにbt.config.tomlを作成します。

model = "YOUR_MODEL_ID" model_provider = "bettertoken" [model_providers.bettertoken] name = "BetterToken" base_url = "https://www.bettertoken.ai/v1?utm_source=blog&utm_medium=organic_content&utm_campaign=SEO-016&utm_content=openai-sovmestimyy-api-codex-podklyuchenie" env_key = "BETTERTOKEN_API_KEY" wire_api = "responses" requires_openai_auth = false request_max_retries = 4 stream_max_retries = 8 stream_idle_timeout_ms = 300000 supports_websockets = false

ファイル$CODEX_HOME/bt.config.toml--profile btに対応します。このプロファイルはメインの$CODEX_HOME/config.tomlを置き換えないため、公式プロバイダーの設定はそのまま利用できます。YOUR_MODEL_IDは、Setup、model plaza、または最新ガイドに表示される現在のAPI IDへ置き換えてください。モデル見出しの表示名とAPI IDが異なる場合は、表示名を使わないでください。

Codexはプロバイダーのアドレスに/responsesを自動で追加します。そのためBase URLは/v1で終わらせ、/v1/responsesにはしません。完全なパスを指定すると、パスが重複します。

ステップ3. API Keyを環境変数に設定する

macOS/Linuxでは次を実行します。

export BETTERTOKEN_API_KEY="YOUR_API_KEY"

永続的に設定する場合は、保護されたシークレットマネージャーか、適切な権限を設定したシェルの初期化ファイルを使用してください。キーをリポジトリ、.env.example、README、または共有PCのシェル履歴に残るコマンドへ追加しないでください。

値そのものを表示せず、変数が設定されていることだけを確認します。

test -n "$BETTERTOKEN_API_KEY" && echo "BETTERTOKEN_API_KEY is set"

Windows PowerShellでは、現在のウィンドウに値を設定し、次回以降のセッション用にも保存します。

$env:BETTERTOKEN_API_KEY = "YOUR_API_KEY" [Environment]::SetEnvironmentVariable("BETTERTOKEN_API_KEY", "YOUR_API_KEY", "User") if ($env:BETTERTOKEN_API_KEY) { "BETTERTOKEN_API_KEY is set" }

ステップ4. CLIプロファイルを起動して安全にテストする

codex --profile bt

最初のテストには、ファイルを変更しない短い指示を使います。

1行だけで回答してください: CODEX_PROVIDER_OK。ファイルを変更せず、コマンドも実行しないでください。

エラーなく応答し、選択したModel IDが使われ、リクエストと使用量がBetterToken Workspaceに表示されれば、接続を確認できます。その後、テスト用ファイルを1つだけ読み取り、問題がなければ作業プロジェクトでの変更を許可します。

ここまでの--profileを使う4ステップはCodex CLIだけに適用されます。Codex Desktopでは、現在のBetterToken CodexガイドでDesktopに適用される設定方法と起動方法を確認してください。VS Code Extensionでは専用ガイドに従い、確認せずにCLIプロファイルや認証方法を転用しないでください。

エラー別のトラブルシューティング

プロファイルが見つからない、または設定が反映されない

3つの文字列が完全に一致しているか確認します。ファイル名はbt.config.toml、コマンドには--profile btmodel_provider = "bettertoken"[model_providers.bettertoken]テーブルに対応している必要があります。その後、Codexを完全に終了し、新しいターミナルを開いて短いテストをやり直してください。

古いOpenAI環境変数が想定した経路を上書きする場合があります。macOS/Linuxでは値を表示せず、設定の有無だけを確認してから解除します。

test -n "$OPENAI_API_KEY" && echo "OPENAI_API_KEY is set" test -n "$OPENAI_BASE_URL" && echo "OPENAI_BASE_URL is set" unset OPENAI_API_KEY OPENAI_BASE_URL

PowerShellでは、現在のセッションと今後のユーザーセッションから削除します。

Remove-Item Env:OPENAI_API_KEY -ErrorAction SilentlyContinue Remove-Item Env:OPENAI_BASE_URL -ErrorAction SilentlyContinue [Environment]::SetEnvironmentVariable("OPENAI_API_KEY", $null, "User") [Environment]::SetEnvironmentVariable("OPENAI_BASE_URL", $null, "User")

削除後は新しいターミナルを開き、BETTERTOKEN_API_KEYだけを設定し直して、codex --profile btを実行します。

404またはJSONではなくHTMLが返る

エンドポイントの組み立てが誤っている可能性が高い状態です。base_url/responses/chat/completions、余分なプロキシパスが含まれていないか確認してください。BetterTokenでは`https://www.bettertoken.ai/v1%60%E3%82%92%E3%81%9D%E3%81%AE%E3%81%BE%E3%81%BE%E4%BD%BF%E3%81%84%E3%81%BE%E3%81%99%E3%80%82?utm_source=blog&utm_medium=organic_content&utm_campaign=SEO-016&utm_content=openai-sovmestimyy-api-codex-podklyuchenie

401または403

env_keyの名前、同じプロセスで環境変数を参照できること、キーの権限を確認します。キーがログなどへ漏れた可能性がある場合は、無効化して新しいキーを作成してください。

model not found

Setup、model plaza、または最新のCodexガイドから現在の完全なModel IDをコピーし直し、自分のキーで利用できることを確認してください。バージョンの接尾辞を推測したり、古いグループ名が今後も変わらないと考えたりしないでください。

Chat Completionsまたは未対応フィールドのエラー

wire_api = "responses"になっていることと、必要なCodex機能を含むResponses APIをプロバイダーが実装していることを確認します。chatに変更しても解決しません。現在のCodexリファレンスでサポートされているのはresponsesだけです。

ストリーミングが始まった後に切断される

まず小さなリクエストを1回だけ再実行します。その後、プロキシ、タイムアウト、SSEへの対応を確認してください。上限なしに再試行回数を増やすと、リクエストと使用量が重複する可能性があります。

公式設定を失わずにロールバックする方法

プロバイダーは独立した$CODEX_HOME/bt.config.tomlに保存されているため、現在のCLIセッションを終了し、--profile btを付けずにCodexを起動すれば、メインの$CODEX_HOME/config.tomlが再び適用されます。auth.jsonを削除したり、公式トークンをサードパーティーのAPI Keyへ置き換えたりしないでください。Codex Desktopでは現在のガイド、VS Code Extensionでは専用ガイドに従ってロールバックしてください。

まとめ

OpenAI互換APIをCodex CLIへ接続するには、Responses API、正しいBase URL、利用可能なModel ID、環境変数に設定したキーという4要素を一致させる必要があります。これらを独立したプロファイルに設定し、安全なテストを実行して使用量を確認してください。

古い設定フィールドをコピーしないよう、BetterTokenの最新Codex設定ガイドを確認し、自分専用のAPI Keyを作成して、CLIのbtプロファイルで最初の読み取り専用リクエストを実行してください。

LLM ワークフローを最適化しませんか?

単一 API でモデルを接続し、キーと AI コストを管理できます。