# Codex

Codex は Responses API でモデルを呼び出します。config.toml に NezhaGate を指すプロバイダーを追加すれば、NezhaGate の GPT モデルでコーディングできます。

> https://nezhagate.com/ja/docs/integrations/codex

対象バージョン：Codex CLI 0.160

## 始める前に

- Codex CLI をインストールするか、VS Code、Cursor、Windsurf に Codex 拡張機能をインストールし、コンソールで API キーを作成します。

- Codex は OpenAI の Responses API（`/v1/responses`）しか使わず、NezhaGate はこのエンドポイントで GPT モデルを提供しています。Claude、Gemini やその他のモデルを使うには、対話エンドポイントか、[Claude Code](https://nezhagate.com/ja/docs/integrations/claude-code) のようなツールをお使いください。

Codex で使えるモデル：

`gpt-5.6-sol` · `gpt-5.6-terra` · `gpt-5.6-luna` · `gpt-5.5` · `gpt-6-astra` · `gpt-6.1-sol` · `gpt-6-sol` · `gpt-6-luna`

## config.toml にプロバイダーを追加する

`~/.codex/config.toml` を開き（Windows では `%USERPROFILE%\.codex\config.toml`）、なければ新規作成して、次を追加します：

```
model = "gpt-6.1-sol"
model_provider = "nezhagate"
web_search = "disabled"

[model_providers.nezhagate]
name = "NezhaGate"
base_url = "https://nezhagate.com/v1"
wire_api = "responses"
env_key = "NEZHAGATE_API_KEY"
```

- `model` や `model_provider` のようなトップレベルの設定は、最初の `[...]` テーブルより前に書く必要があります。そうしないと、Codex はそれをそのテーブルの内容として読み込んでしまいます。

- `web_search = "disabled"`：Codex 組み込みのウェブ検索は OpenAI がホストするツールに依存しており、ほかのプロバイダー経由では動作が保証されないため、オフにしてください。

- プロバイダーはユーザーレベルの config.toml に書く必要があります。プロジェクト内の `.codex/config.toml` で `model_provider` を設定しても無視されます。プロバイダー ID に `openai`、`ollama`、`lmstudio` は使えません。これらは Codex の予約語です。

## API キーを設定する

Codex は `NEZHAGATE_API_KEY` 環境変数からキーを読み取り（上の `env_key` の値です）、`Authorization: Bearer` として送信します。`codex login` は不要です。

```
export NEZHAGATE_API_KEY=YOUR_API_KEY
codex
```

```
setx NEZHAGATE_API_KEY "YOUR_API_KEY"
```

macOS / Linux では、`export` の行を `~/.zshrc` か `~/.bashrc` に書いておくと、ずっと有効になります。Windows では `setx` を実行した後、ターミナルや VS Code を開き直すと環境変数が読み込まれます。

## 実行とテスト

下のコマンドを実行してください。`gateway-ok` という返答があれば接続成功です：

```
codex exec "Reply with exactly: gateway-ok"
```

- Codex で `/status` と入力すると、現在のモデルとプロバイダーを確認できます。

- モデルを切り替えるには、起動時に `codex -m gpt-6.1-sol` を使うか、config.toml の `model` を変更します。Codex の `/model` メニューには、Codex 自身に組み込まれたモデルだけが並び、NezhaGate のモデル一覧は表示されません。

- そのあと、ツールが必要な依頼（例えば、このディレクトリのファイルを一覧表示させる）をして、ツール呼び出しも動くことを確認してください。

## IDE 拡張機能

VS Code、Cursor、Windsurf の Codex 拡張機能は、同じ config.toml を読み込みます。拡張機能パネルの歯車アイコン → **Codex Settings** → **Open config.toml**。編集後はエディターを再起動してください。ターミナルから起動していないエディターの場合は、API キーの環境変数が見えているか確認してください。

## よくあるエラー

**Missing environment variable: `NEZHAGATE_API_KEY`**

Codex を起動したプロセスからその環境変数が見えていません。実行前に同じターミナルで設定してください。IDE やデスクトップアプリは再起動し、Windows では `setx` の後にもう一度開き直してください。

**`wire_api = "chat"` is no longer supported**

古い設定です。`wire_api` を `"responses"` に変更してください。

**unexpected status 401**

キーが正しくありません。コピーし忘れや余分な空白がないか、キーが停止されていないかを確認してください。

**unexpected status 404**

`base_url` に `/v1` が付いていません。`https://nezhagate.com/v1` としてください。Codex が自動で `/responses` を付け足します。

**Claude、Gemini などGPT 以外のモデルを選んだときのエラー**

Codex は `/v1/responses` しか使わず、NezhaGate はこのエンドポイントで GPT モデルだけを提供しています。上に挙げた GPT モデルのいずれかに切り替えてください。

**stream disconnected before completion**

ストリームが完了前に切断されました。多くはローカルのプロキシやネットワークが原因です。再試行してください。繰り返し起こる場合はプロキシの設定を確認してください。
