# 環境変数の設定

> ⚡ まだ未接続？コマンド 1 行で設定完了：`curl -fsSL https://qcode.cc/install/claude-code.sh | bash`（Windows：`irm https://qcode.cc/install/claude-code.ps1 | iex`）。詳細は [ワンクリック設定スクリプト](/docs/getting-started/one-click-install)。

ほとんどの AI コーディングツールは、「どのサービスに接続するか、どのキーを使うか」を**環境変数**で決めます。この 2 つの情報を QCode.cc に向けるだけで、ツールはリクエストを当方へ送信します。本ページでは、設定すべき変数、設定場所、検証方法を説明します。

> 📖 `BASE_URL` の末尾を `/api` にすべきか別のプレフィックスにすべきか分からない？アクセスドメインの選び方は？まず [エンドポイントと API パス](/docs/getting-started/endpoints-and-api-paths) をご覧ください。ツールがまだ未インストールなら [インストール手順](/docs/getting-started/installation) を参照。

## 1. コアとなる 2 つの変数（Claude Code & Anthropic SDK）

Claude 系モデルへの接続に必要な環境変数は 2 つだけです：

```bash
export ANTHROPIC_BASE_URL="https://api.qcode.cc/api"
export ANTHROPIC_AUTH_TOKEN="cr_あなたのキー"
```

- **`ANTHROPIC_BASE_URL`** —— アクセスアドレス。`/api` プレフィックスまでを指定します。SDK が自動で `/v1/messages` を付加します。
- **`ANTHROPIC_AUTH_TOKEN`** —— QCode.cc のキー。`cr_` で始まり、[QCode.cc コンソール](https://qcode.cc/dashboard) で発行します。

> **`AUTH_TOKEN` について**：これは本サービスの慣例です —— 中継キーは常に `ANTHROPIC_AUTH_TOKEN` に入れます（公式への直接接続用の `ANTHROPIC_API_KEY` ではありません）。Claude Code はこれを Bearer トークンとして送信します。ツールが `ANTHROPIC_API_KEY` しか認識しない場合は、同じ `cr_` キーをそこに入れても動作します。

> **⚠️ 末尾にスラッシュを付けない**：`https://api.qcode.cc/api` と書き、`https://api.qcode.cc/api/` と**しない**でください。SDK が `/v1/messages` を付加するため、余分なスラッシュがあると `//v1/messages` になり 404 を返します。

この 2 つの変数は Claude Code でも、Anthropic 公式 SDK（Python / TypeScript）でも機能します —— SDK も `ANTHROPIC_BASE_URL` を読み取り、あるいはクライアント生成時に `base_url=` を渡せます。

## 2. ツール別対応表

ツールによって読み取る環境変数が異なります。お使いのツールに合わせてください：

| ツール | 環境変数 | 設定値 |
|--------|---------|--------|
| Claude Code | `ANTHROPIC_BASE_URL`<br>`ANTHROPIC_AUTH_TOKEN` | `https://api.qcode.cc/api`<br>`cr_あなたのキー` |
| Anthropic SDK（Python/JS） | `ANTHROPIC_BASE_URL`<br>`ANTHROPIC_AUTH_TOKEN` | `https://api.qcode.cc/api`<br>`cr_あなたのキー` |
| Codex CLI | `~/.codex` 設定内の `base_url` | `https://api.qcode.cc/openai` |
| OpenAI 互換ツール | `OPENAI_BASE_URL`<br>`OPENAI_API_KEY` | `https://api.qcode.cc/openai/v1`<br>`cr_あなたのキー` |
| Gemini / Antigravity | base URL | `https://api.qcode.cc/gemini` |

いくつかの補足：

- **Codex CLI** は上流の特定に `OPENAI_BASE_URL` を読みません。`~/.codex` 設定ファイル内の `base_url` を使います（末尾は `/openai`、OpenAI Responses プロトコル）。詳しい書き方は [エンドポイントと API パス](/docs/getting-started/endpoints-and-api-paths) を参照。
- **OpenAI 互換ツール**（OpenAI 公式 SDK、LangChain、各種汎用クライアント）は `OPENAI_BASE_URL` と `OPENAI_API_KEY` を認識し、base は `/openai/v1` まで指定します。
- **Gemini / Antigravity**：base は `/gemini` まででよく、SDK が自分で `/v1beta/` を付加します。同じ `cr_` キーが共通で使えます。

> **1 つのキーで 3 プロトコル共通**：あなたの `cr_` キーはプロトコルを区別しません —— `/api` なら Anthropic、`/openai/v1` なら OpenAI、`/gemini` なら Google Gemini。ツールを変えるときは BASE_URL を変えるだけで、キーはそのままです。

### 利用可能なモデル一覧

接続を設定したら、ツールのプロトコルに応じてモデル名を選びます（詳細は [エンドポイントと API パス](/docs/getting-started/endpoints-and-api-paths)）：

- **Claude 系**（日常の既定は 5 系）：`claude-sonnet-5`（1M、バランス）、`claude-opus-5`（1M、現行旗艦）、`claude-fable-5`（1M、最上位）、`claude-sonnet-4-6` / `claude-opus-4-8` / `claude-opus-4-7`（前世代、販売継続）、`claude-haiku-4-5`（200K）
- **GPT 系**：`gpt-5.6-terra`（推奨）、`gpt-5.6-sol`、`gpt-5.6-luna`、`gpt-5.5`、`gpt-5.4`、`gpt-5.6-mini`、`gpt-5.6-nano`
- **Gemini 系**：`gemini-2.5-pro`、`gemini-3.5-flash`、`gemini-2.5-flash`
- **国内系**（GLM / Kimi / DeepSeek / Qwen）：`glm-5.3`、`kimi-k3`、`deepseek-v4-pro`、`qwen3.8-max` など。[国内系モデルの接続](/docs/usage/cn-models)
- **画像**：`gpt-image-2`（エンドポイント `https://api.qcode.cc/qcode-img/v1`）

> **Claude Code のコンテキスト長**：Claude Code のデフォルトウィンドウは **200K**。**1M コンテキスト**はオプトインで、`claude-opus-5`、`claude-sonnet-5`、`claude-fable-5`、`claude-opus-4-8`、`claude-sonnet-4-6` が対応しています。

## 3. 設定場所

環境変数をどこに設定するかで、その有効範囲が決まります。一般的な 3 つの方法：

**① シェル設定ファイル（永続・グローバル）** —— `~/.zshrc`（macOS / zsh）または `~/.bashrc`（Linux / bash）に書き込むと、新しいターミナルを開くたびに自動で有効になります：

```bash
echo 'export ANTHROPIC_BASE_URL="https://api.qcode.cc/api"' >> ~/.zshrc
echo 'export ANTHROPIC_AUTH_TOKEN="cr_あなたのキー"' >> ~/.zshrc
source ~/.zshrc
```

bash ユーザーは `~/.zshrc` を `~/.bashrc` に置き換えてください。

**② プロジェクト単位の `.env`（永続・プロジェクト別）** —— プロジェクトのルートに `.env` ファイルを置くと、そのプロジェクトだけに適用され、プロジェクトごとに異なるキーを使うのに便利です：

```bash
ANTHROPIC_BASE_URL=https://api.qcode.cc/api
ANTHROPIC_AUTH_TOKEN=cr_あなたのキー
```

> `.env` にはキーが含まれます。`.gitignore` に追加し、リポジトリにコミットしないでください。

**③ ツール独自の設定（ツール別）** —— 一部のツールは独自の設定ファイルや UI を持ちます。例えば Codex CLI の `~/.codex`、各エディタプラグインの設定パネルなど。これらの設定はそのツールだけに適用されます。

**永続 vs セッション単位**：上記 3 つはいずれも**永続**設定です。**現在のターミナルセッション**だけで一時的に試したい場合は、`export`（macOS/Linux）または `$env:`（Windows PowerShell）を使います。ターミナルを閉じると無効になります：

```bash
# macOS / Linux、セッション単位
export ANTHROPIC_BASE_URL="https://api.qcode.cc/api"
export ANTHROPIC_AUTH_TOKEN="cr_あなたのキー"
```

```powershell
# Windows PowerShell、セッション単位
$env:ANTHROPIC_BASE_URL = "https://api.qcode.cc/api"
$env:ANTHROPIC_AUTH_TOKEN = "cr_あなたのキー"
```

> **優先順位の注意**：プロセス起動時に読み取られる環境変数は、設定ファイルより優先されます。シェル設定を編集したら `source` するか新しいターミナルを開いてください。同じ変数を複数の場所で設定した場合、プロセスが実際に継承したものが有効になります。

## 4. 🇨🇳 中国本土のユーザーへの注意

中国本土のユーザーは、BASE_URL のホストを `api.qcode.cc` から `asia.qcode.cc`（アジアノード、HK/JP の近い方、地理的に最も近く、最低遅延）に変更することを推奨します：

```bash
export ANTHROPIC_BASE_URL="https://asia.qcode.cc/api"
export ANTHROPIC_AUTH_TOKEN="cr_あなたのキー"
```

他のプロトコルも同様です：OpenAI 互換ツールは `https://asia.qcode.cc/openai/v1`、Codex は `https://asia.qcode.cc/openai`、Gemini は `https://asia.qcode.cc/gemini`。4 つのアクセスドメインは機能が完全に同一で、同じキーで自由に切り替えられます。`asia` が不安定なときは `api.qcode.cc`（グローバル Route 53 ルーティング）に戻してください。詳細は [エンドポイントと API パス](/docs/getting-started/endpoints-and-api-paths)。

## 5. 検証

変数を設定したら、まず値が正しいか確認します：

```bash
echo $ANTHROPIC_BASE_URL
echo $ANTHROPIC_AUTH_TOKEN
```

次に curl でアクセスアドレスが到達可能か確認します（**キーなし**で、パスとネットワークのみ検証）：

```bash
curl -s -o /dev/null -w '%{http_code}' \
  -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \
  https://api.qcode.cc/v1/models
# → 200 = ネットワーク・パス・キーすべて OK
```

**解釈**：`200` ならネットワーク・エンドポイント・キーのすべてが正常です。`401` はキーが無効か正しく送信されていない（`cr_` プレフィックスまで完全にコピーしたか確認）、`404` はパスプレフィックスの誤りがほとんどです。注意：**キーなし**でアクセスすると HTML の紹介ページ（HTTP 200）が返ります——エラーではなく、キーが付いていないサインです。詳細な curl テストは [エンドポイントと API 形式](/docs/getting-started/endpoints-and-api-paths)。

実際のキーでエンドツーエンドのテストを実行します：

```bash
curl -X POST https://api.qcode.cc/api/v1/messages \
  -H "x-api-key: $ANTHROPIC_AUTH_TOKEN" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{"model":"claude-sonnet-5","max_tokens":64,"messages":[{"role":"user","content":"ping"}]}'
```

正常な JSON レスポンスが返れば、環境変数の設定は完了です。作業を始められます。

> 各リクエストのモデル・コンテキスト長・使用量を確認したいですか？すべてのアクセスドメインのリクエストは [probe.qcode.cc](https://probe.qcode.cc) に報告されます。`cr_` キーを入力すれば閲覧できます。

## 6. ゲートウェイ接続時に役立つ変数

Claude Code をサードパーティ製ゲートウェイ（QCode 含む）に接続する際、次の公式変数が関わります。出典：[公式環境変数リファレンス](https://code.claude.com/docs/en/env-vars) と [ゲートウェイ接続ガイド](https://code.claude.com/docs/en/llm-gateway-connect)（2026-09-18 確認）。

| 変数 | 使う場面 |
|---|---|
| `ANTHROPIC_DEFAULT_MODEL` | **新規セッションの既定モデル**を設定（2.1.236・2026-08-19 以降）。`ANTHROPIC_MODEL` との違い：セッション中の `/model` 選択はこれを上書きし、再起動後も保持される。`ANTHROPIC_MODEL` は起動のたびに再適用される |
| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` | `/model` ピッカーがゲートウェイのモデル一覧を読む（共有 Key 環境対策で公式既定はオフ）。QCode 接続時に一覧へ出るのは **Claude 系 ID** のみ（名前に `claude` / `anthropic` を含むものだけ収録）。**国内系モデルは出てこない**ため、引き続き `ANTHROPIC_MODEL` / `ANTHROPIC_DEFAULT_MODEL` で指定する |
| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` | `anthropic-beta` ヘッダーとベータ ツール項目を除去。ゲートウェイが `Unexpected value(s) … anthropic-beta` で 400 を返す場合に有効化 |
| `CLAUDE_CODE_DISABLE_ARTIFACT=1` | Artifact ツールを無効化（設定後はどの UI でも再開できない）。Claude Code 2.1.265–2.1.267 が送るツールスキーマは厳格なゲートウェイに全面拒否（400）されるため、公式修正は 2.1.268 以上へのアップグレード。急ぐ場合はこの変数で応急処置 |
| `CLAUDE_CODE_ATTRIBUTION_HEADER=0` | 公式の定義：system prompt 冒頭の attribution ブロック（クライアント版とプロンプト指紋）を削除。**抑止効果が得られるかは当方で未実測**で、推奨でもない。公式ドキュメントを読んで判断してください |

---

> 💡 まだキーをお持ちでない、またはモデルごとの料金を知りたいですか？[QCode.cc 料金ページ](https://qcode.cc/pricing) で自分に合ったプランを選んでください。