😎

Codex CLIをAzure OpenAIで利用する

に公開

はじめに

私はChat GPT Plusを契約しているのですが、codex利用中にLimitに到達してしまい、22時間待てと言われてしまいました・・・

いや、そんな待てないし!

と言うことで、制限中だけでもAzure OpenAIのAPIを利用できないかなという事で調べてみました。

注意事項

Azure OpenAIでgpt-5立てられてもCodex CLIから利用できないリージョンがあります。

Responses APIに対応している必要があり、それは下記のリージョンに限定されるので注意してください。

結論

つぎの2ステップで実現できます

  1. APIキーを環境変数に設定
  2. ~.codex\config.tomlに設定を記述する

APIキーを環境変数に設定

Windows

ユーザー環境変数に設定したい場合

setx AZURE_OPENAI_API_KEY "your-azure-openai-api-key"

システム環境変数に設定したい場合

setx AZURE_OPENAI_API_KEY "your-azure-openai-api-key" -m

Bash

export AZURE_OPENAI_API_KEY="your-azure-openai-api-key"

これだと永続化されないので、下記などの方法で~/.bashrcに保存することで永続化される

echo 'export AZURE_OPENAI_API_KEY="your-azure-openai-api-key"' >> ~/.bashrc

~.codex\config.tomlに設定を記述する

[model_providers.azure]
name = "Azure"
base_url = "https://<YOUR_RESOURCE_NAME>.openai.azure.com/openai/"
env_key = "AZURE_OPENAI_API_KEY"
query_params = { api-version = "2025-04-01-preview" }
wire_api = "responses"

<YOUR_RESOURCE_NAME>は、Azure Portal上のAI Foundaryのリソース名です。

その上で、つぎのように起動することでAzureで起動します。

codex --config model_provider=azure

statusコマンドでつぎのように表示されていたら成功です。

Modelのところを確認してください。Accountを見るとOpenAIのアカウントでもログインされていることもわかります。

/status
📂 Workspace
  • Path: ~
  • Approval Mode: on-request
  • Sandbox: workspace-write
  • AGENTS files: (none)

👤 Account
  • Signed in with ChatGPT
  • Login: xxxxxxxxxxxxxxxxxxxxxxxxxx
  • Plan: Plus

🧠 Model
  • Name: gpt-5
  • Provider: Azure
  • Reasoning Effort: Medium
  • Reasoning Summaries: Auto

💻 Client
  • CLI Version: 0.31.0

📊 Token Usage
  • Session ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • Input: 0
  • Output: 0
  • Total: 0 

Azure OpenAIで常時接続したい場合

model_providerを指定しない場合は、OpenAIのアカウントで接続されますが、常時Azureで接続したい場合は、つぎのようにします。

model = "gpt-5"
model_provider = "azure"

[model_providers.azure]
name = "Azure"
base_url = "https://<YOUR_RESOURCE_NAME>.openai.azure.com/openai/"
env_key = "AZURE_OPENAI_API_KEY"
query_params = { api-version = "2025-04-01-preview" }
wire_api = "responses"

[model_providers.azure]のようなtomlのブロックが来る前にmodel_providerを指定してください。

modelは指定しなくてもデプロイされているのがgpt-5しかなければそれで接続されますが、複数デプロイしていて選択したければ上記のように記述しておくと良いです。それ以外にもつぎのようなオプションを指定することが可能です。

model_reasoning_effort = "high"
model_reasoning_summary = "detailed"

以上!

Discussion