# 2.1 プロバイダーの追加

## 追加パネルを開く

メイン画面右上の **+** ボタンをクリックして、プロバイダー追加パネルを開きます。

パネルは 2 つのタブに分かれています：
- **アプリ専用プロバイダー**：現在選択中のアプリ（Claude Code / Claude Desktop / Codex / Gemini / OpenCode / OpenClaw / Hermes）専用
- **統一プロバイダー**：アプリ間で共有する設定

## プリセットで追加

プリセットは事前に設定されたプロバイダーテンプレートで、API Key を入力するだけで使用できます。

### 操作手順

1. 「プリセット」ドロップダウンからプロバイダーを選択
2. 名前とエンドポイントが自動入力される
3. **API Key** を入力
4. （任意）メモを入力
5. 「追加」をクリック

### 主なプリセット

#### Claude プリセット

| プリセット名 | 説明 |
|----------|------|
| Claude 公式 | Anthropic 公式アカウントでログイン |
| DeepSeek | DeepSeek モデル |
| 智谱 GLM | 智谱 AI の GLM モデル |
| 智谱 GLM en | 智谱 AI（英語版） |
| 百炼 | アリクラウド百炼（通义千問） |
| Kimi | Moonshot Kimi モデル |
| Kimi For Coding | Kimi プログラミング専用モデル |
| StepFun | StepFun モデル |
| ModelScope | 魔搭コミュニティ |
| KAT-Coder | KAT-Coder モデル |
| Longcat | Longcat AI |
| MiniMax | MiniMax モデル |
| MiniMax en | MiniMax（英語版） |
| DouBaoSeed | 豆包 Seed モデル |
| BaiLing | 百灵 AI |
| AiHubMix | AiHubMix 統合サービス |
| SiliconFlow | SiliconFlow |
| SiliconFlow en | SiliconFlow（英語版） |
| DMXAPI | DMXAPI 中継サービス |
| PackyCode | PackyCode 中継サービス ⭐ |
| Cubence | Cubence サービス |
| AIGoCode | AIGoCode サービス |
| RightCode | RightCode サービス |
| AICodeMirror | AICodeMirror サービス |
| OpenRouter | 統合ルーティングサービス |
| Nvidia | Nvidia AI サービス |
| Xiaomi MiMo | Xiaomi MiMo モデル |

> ⭐ は公式パートナーを示します。プリセットリストはバージョンの更新に伴い変更される場合があります。アプリ内の実際の表示を基準にしてください。

#### Claude Desktop プリセット

Claude Desktop パネルには、Claude Code のプリセットカタログから変換されたプロバイダープリセットが含まれます。追加時には次のモードを選択できます：

- **直結モード**：プロバイダーがネイティブの Anthropic Messages API を提供し、モデル名が Claude Desktop の認識できる三つの役割 ID（`claude-sonnet-*` / `claude-opus-*` / `claude-haiku-*`）で、Claude Desktop から直接アクセスできる場合
- **モデルマッピングモード**：三つの役割 ID 以外のモデル名（旧式 Claude ID や DeepSeek / Kimi などの非 Claude モデル）を CC Switch ローカルゲートウェイ経由で Sonnet / Opus / Haiku ルートへマッピング
- **Claude Desktop Official**：Claude Desktop の公式サインインモードへ戻す

詳しい手順は [2.6 Claude Desktop](./2.6-claude-desktop.md) を参照してください。

#### Codex プリセット

Codex プリセットは上流プロトコルにより 2 種類に分かれます。

**ネイティブ Responses プロトコル**（直接接続または標準プロキシ転送）：

| プリセット名 | 説明 |
|----------|------|
| OpenAI 公式 | OpenAI 公式アカウントでログイン |
| Azure OpenAI | Azure OpenAI サービス |
| AiHubMix | AiHubMix 統合サービス |
| DMXAPI | DMXAPI 中継サービス |
| PackyCode | PackyCode 中継サービス |
| OpenRouter | 統合ルーティングサービス |
| Cubence / AIGoCode / RightCode / AICodeMirror など | 各種中継サービス |

**Chat Completions プロトコル**（「ローカルルーティングが必要」トグルが必要。プロキシが自動変換）：

| プリセット名 | 説明 |
|----------|------|
| DeepSeek | DeepSeek モデル |
| Zhipu GLM / GLM en | Zhipu AI の GLM モデル |
| Kimi | Moonshot Kimi モデル |
| MiniMax / MiniMax en | MiniMax モデル |
| StepFun / StepFun en | StepFun Step モデル |
| Baidu Qianfan Coding Plan | 百度千帆コーディングプラン |
| Bailian | Alibaba Cloud 百錬（Qwen） |
| ModelScope | ModelScope コミュニティ |
| Longcat | Longcat AI |
| BaiLing | BaiLing AI |
| Xiaomi MiMo / MiMo Token Plan | Xiaomi MiMo モデル |
| Volcengine Agentplan | Volcengine Agent Plan |
| BytePlus | BytePlus サービス |
| DouBaoSeed | DouBao Seed モデル |
| SiliconFlow / SiliconFlow en | SiliconFlow |
| Novita AI | Novita AI サービス |
| Nvidia | Nvidia AI サービス |

> 💡 Chat Completions 系プリセットを選択すると、「ローカルルーティングが必要」トグルとモデルマッピング表が自動的に設定されます。詳細は下記の「Codex ローカルルーティングとモデルマッピング」セクションを参照してください。プリセット一覧は継続的に更新されます。アプリ内の表示を正としてください。

#### Gemini プリセット

| プリセット名 | 説明 |
|----------|------|
| Google 公式 | Google OAuth でログイン |
| PackyCode | PackyCode 中継サービス |
| Cubence | Cubence サービス |
| AIGoCode | AIGoCode サービス |
| AICodeMirror | AICodeMirror サービス |
| OpenRouter | 統合ルーティングサービス |
| カスタム | すべてのパラメータを手動設定 |

#### OpenCode プリセット

| プリセット名 | 説明 |
|----------|------|
| DeepSeek | DeepSeek モデル |
| 智谱 GLM | 智谱 AI の GLM モデル |
| 智谱 GLM en | 智谱 AI（英語版） |
| 百炼 | アリクラウド百炼 |
| Kimi k2.5 | Moonshot Kimi-k2.5 モデル |
| Kimi For Coding | Kimi プログラミング専用モデル |
| StepFun | StepFun モデル |
| ModelScope | 魔搭コミュニティ |
| KAT-Coder | KAT-Coder モデル |
| Longcat | Longcat AI |
| MiniMax | MiniMax モデル |
| MiniMax en | MiniMax（英語版） |
| DouBaoSeed | 豆包 Seed モデル |
| BaiLing | 百灵 AI |
| Xiaomi MiMo | Xiaomi MiMo モデル |
| AiHubMix | AiHubMix 統合サービス |
| DMXAPI | DMXAPI 中継サービス |
| OpenRouter | 統合ルーティングサービス |
| Nvidia | Nvidia AI サービス |
| PackyCode | PackyCode 中継サービス |
| Cubence | Cubence サービス |
| AIGoCode | AIGoCode サービス |
| RightCode | RightCode サービス |
| AICodeMirror | AICodeMirror サービス |
| OpenAI Compatible | OpenAI 互換インターフェース |
| Oh My OpenCode | Oh My OpenCode サービス |

> プリセットリストは継続的に更新されています。アプリ内の実際の表示を基準にしてください。

#### OpenClaw プリセット

| プリセット名 | 説明 |
|----------|------|
| DeepSeek | DeepSeek モデル |
| 智谱 GLM | 智谱 AI の GLM モデル |
| 智谱 GLM en | 智谱 AI（英語版） |
| Qwen Coder | 通义千問コーディングモデル |
| Kimi k2.5 | Moonshot Kimi-k2.5 モデル |
| Kimi For Coding | Kimi プログラミング専用モデル |
| StepFun | StepFun モデル |
| MiniMax | MiniMax モデル |
| MiniMax en | MiniMax（英語版） |
| KAT-Coder | KAT-Coder モデル |
| Longcat | Longcat AI |
| DouBaoSeed | 豆包 Seed モデル |
| BaiLing | 百灵 AI |
| Xiaomi MiMo | Xiaomi MiMo モデル |
| AiHubMix | AiHubMix 統合サービス |
| DMXAPI | DMXAPI 中継サービス |
| OpenRouter | 統合ルーティングサービス |
| ModelScope | 魔搭コミュニティ |
| SiliconFlow | SiliconFlow |
| SiliconFlow en | SiliconFlow（英語版） |
| Nvidia | Nvidia AI サービス |
| PackyCode | PackyCode 中継サービス |
| Cubence | Cubence サービス |
| AIGoCode | AIGoCode サービス |
| RightCode | RightCode サービス |
| AICodeMirror | AICodeMirror サービス |
| AICoding | AICoding サービス |
| CrazyRouter | CrazyRouter サービス |
| SSSAiCode | SSSAiCode サービス |
| AWS Bedrock | AWS Bedrock サービス |
| OpenAI Compatible | OpenAI 互換インターフェース |

## モデル自動取得

プロバイダーの追加や編集時に、プロバイダーのエンドポイントから利用可能なモデルを自動検出でき、モデル ID の手動コピー＆ペーストの手間を省けます。

1. **API Key** と **エンドポイントアドレス** が入力されていることを確認
2. モデル入力フィールドの横にある **モデル取得** ボタン（ダウンロードアイコン）をクリック
3. CC Switch が設定された API Key で OpenAI 互換の `/v1/models` エンドポイントを呼び出し
4. カテゴリ別にグループ化されたドロップダウンからモデルを選択

この機能は **Claude Code / Claude Desktop / Codex / Gemini / OpenCode / OpenClaw / Hermes** のうちモデル項目を持つプロバイダーフォームで利用でき、`/v1/models` エンドポイントをサポートするプロバイダーに対応します。Codex OAuth 系プロバイダーでは、必要に応じて ChatGPT Codex バックエンドからライブモデル一覧を取得します。

**よくあるエラー：**
- **認証失敗（401/403）**：API Key が正しいか確認してください
- **エンドポイント未対応（404/405）**：プロバイダーが `/v1/models` エンドポイントを公開していません。手動でモデル ID を入力してください
- **解析失敗**：レスポンスが OpenAI 互換フォーマットに準拠していません
- **タイムアウト**：エンドポイントの応答が遅いです。後ほど再試行するかネットワークを確認してください

## カスタム設定

「カスタム」プリセットを選択した場合、JSON 設定を手動で編集する必要があります。

### Claude 設定形式

```json
{
  "env": {
    "ANTHROPIC_API_KEY": "your-api-key",
    "ANTHROPIC_BASE_URL": "https://api.example.com"
  }
}
```

| フィールド | 必須 | 説明 |
|------|------|------|
| `ANTHROPIC_API_KEY` | はい | API キー |
| `ANTHROPIC_BASE_URL` | いいえ | カスタムエンドポイントアドレス |
| `ANTHROPIC_AUTH_TOKEN` | いいえ | API_KEY の代替認証方式 |

### Codex 設定形式

Codex は 2 つの設定ファイルを使用します：

**1. auth.json**（`~/.codex/auth.json`）- API キーを保存：

```json
{
  "OPENAI_API_KEY": "your-api-key"
}
```

**2. config.toml**（`~/.codex/config.toml`）- モデルとエンドポイントの設定を保存：

```toml
# 基本設定
model_provider = "custom"
model = "gpt-5.2"
model_reasoning_effort = "high"
disable_response_storage = true

# カスタムプロバイダー設定
[model_providers.custom]
name = "custom"
base_url = "https://api.example.com/v1"
wire_api = "responses"
requires_openai_auth = true
```

**auth.json フィールド説明**：

| フィールド | 必須 | 説明 |
|------|------|------|
| `OPENAI_API_KEY` | はい | API キー |

**config.toml フィールド説明**：

| フィールド | 必須 | 説明 |
|------|------|------|
| `model_provider` | はい | モデルプロバイダー名（`[model_providers.xxx]` と一致する必要あり） |
| `model` | はい | 使用するモデル（例：`gpt-5.2`、`gpt-4o`） |
| `model_reasoning_effort` | いいえ | 推論強度：`low` / `medium` / `high` |
| `disable_response_storage` | いいえ | レスポンス保存を無効にするかどうか |
| `goals` | いいえ | `[features]` 配下で `true` にすると Codex の `/goal` モードを有効化します。必要なプロバイダーでは、プロバイダー編集画面のスイッチで切り替えられます |
| `base_url` | はい | API エンドポイントアドレス |
| `wire_api` | いいえ | API プロトコルタイプ（通常 `responses`） |
| `requires_openai_auth` | いいえ | OpenAI 認証方式を使用するかどうか |

API Key またはカスタムエンドポイントのプロバイダーへ切り替えた後、Codex が `/goal` を認識しているのに目標を設定できない場合は、プロバイダー編集画面の **Goal mode** スイッチを有効にしてください。CC Switch はそのプロバイダーの `~/.codex/config.toml` の `[features]` に `goals = true` を書き込みます。その後、Codex を再起動してください。Goal mode 有効化後に想定より頻繁に承認を求められる場合は、Codex の設定画面を再読み込みし、`approval_policy` と `sandbox_mode` が意図した権限と一致しているか確認してください。


### Gemini 設定形式

```json
{
  "env": {
    "GEMINI_API_KEY": "your-api-key",
    "GOOGLE_GEMINI_BASE_URL": "https://api.example.com"
  }
}
```

| フィールド | 必須 | 説明 |
|------|------|------|
| `GEMINI_API_KEY` | はい | API キー |
| `GOOGLE_GEMINI_BASE_URL` | いいえ | カスタムエンドポイントアドレス |
| `GEMINI_MODEL` | いいえ | モデルの指定 |

> 認証タイプは CC Switch が自動的に検出します（PackyCode API プロキシ / Google OAuth / 汎用 API Key）。手動設定は不要です。

## 統一プロバイダー

統一プロバイダーは Claude Code / Codex / Gemini 間で設定を共有でき、複数の API 形式をサポートする中継サービスに適しています。

### 統一プロバイダーの作成

1. 「統一プロバイダー」タブに切り替え
2. 「統一プロバイダーを追加」をクリック
3. 共通設定を入力：
   - 名前
   - API Key
   - エンドポイントアドレス
4. 同期するアプリにチェック（Claude Code / Codex / Gemini）
5. 保存

### 同期の仕組み

統一プロバイダーはチェックしたアプリに自動的に同期されます：

- 統一プロバイダーを変更すると、関連するすべてのアプリの設定が同期更新される
- 統一プロバイダーを削除すると、関連するアプリの設定も削除される

### 保存して同期

統一プロバイダーの編集時に選択できます：

| 操作 | 説明 |
|------|------|
| 保存 | 設定のみ保存、すぐに同期しない |
| 保存して同期 | 設定を保存し、有効なすべてのアプリに即座に同期 |

### 手動同期

手動で同期をトリガーする場合：

1. 統一プロバイダーカードの「同期」ボタンをクリック
2. 同期操作を確認
3. 各アプリの関連プロバイダーの設定が上書きされる

## プロバイダーのインポート

CC Switch は 2 つの方法でプロバイダー設定をインポートできます：

### 方法 1：ディープリンクでインポート

`ccswitch://` プロトコルリンクでワンクリックインポート：

1. ディープリンクをクリックまたはアクセス
2. CC Switch が自動的に開き、インポート確認を表示
3. 設定情報をプレビュー
4. 「インポートを確認」をクリック

**ディープリンクの取得方法**：
- 他の人からの共有で取得
- [オンライン生成ツール](https://farion1231.github.io/cc-switch/deplink.html) で作成

### 方法 2：データベースバックアップからインポート

SQL バックアップファイルから一括インポート：

1. 「設定 → 詳細 → データ管理」を開く
2. 「ファイルを選択」をクリック
3. 以前にエクスポートした `.sql` バックアップファイルを選択
4. 「インポート」をクリック
5. 既存の設定の上書きを確認

**インポート内容**：
- すべてのプロバイダー設定
- MCP サーバー設定
- Prompts プリセット
- 使用量ログ

> **注意**：インポートは既存のデータベースを上書きするため、事前に現在の設定をエクスポートしてバックアップすることをお勧めします。エクスポートファイル名の形式は `cc-switch-export-{タイムスタンプ}.sql` です。

## Codex OAuth リバースプロキシ（Claude プロバイダー）

v3.13.0 より、CC Switch は **Codex OAuth リバースプロキシ** 経路を追加しました。**ChatGPT アカウント** を使って Claude Code 内から Codex サービスを再利用できます。

> **位置ヒント**：この機能は **新しい Claude プロバイダーカードタイプ** として表示され、Codex 側のプリセットではありません。追加後は通常の API Key プロバイダーと並んで Claude のプロバイダーリストに表示されます。

### 前提条件

- ログイン可能な **ChatGPT アカウント**
- `auth.openai.com` および `chatgpt.com` にアクセスできる
- **利用前に必ず本節末尾の [⚠️ リスク通知](#️-リスク通知重要) をお読みください**

### 2 つの入口

以下のどちらの入口からでも開始できます：

#### 入口 A：プロバイダー追加パネルから（新規ユーザー推奨）

1. **Claude** アプリに切り替える
2. 右上の **+** ボタンをクリックしてプロバイダー追加パネルを開く
3. プリセットリストの第三者カテゴリから **Codex (ChatGPT Plus/Pro)** プリセットを選択（UI に表示される名称を優先）
4. まだ ChatGPT アカウントにログインしていない場合、パネルが **自動的に** ログインフローへ誘導します（下記「ログインフロー」を参照）
5. ログイン成功後、プロバイダーフォームにログイン済みアカウントが表示されるので「保存」をクリックして完了

#### 入口 B：OAuth 認証センターから（マルチアカウント管理に適する）

1. **設定 → OAuth 認証センター** を開く（タブに **Beta** マーク）
2. **ChatGPT (Codex OAuth)** セクションで **ChatGPT でログイン** ボタンをクリック
3. ログインフローを完了（下記参照）
4. ログイン完了後、**Claude** アプリに戻る → **プロバイダーの追加** → 同じ Codex (ChatGPT Plus/Pro) プリセットを選択
5. フォーム内の「アカウント選択」ドロップダウンから、先ほどログインしたアカウントを選択して保存

### ログインフロー（Device Code）

どちらの入口から入っても、ログインフローは同一です：

1. **認証コードを取得**：CC Switch が OpenAI Device Code フローを呼び出し、以下を表示：
   - **認証コード**（約 8 文字、例：`ABCD-1234`）
   - 認証コード右側の **コピー** ボタン
   - その下の認証 URL `https://auth.openai.com/codex/device`
   - 「認証を待っています...」のアニメーション表示
2. **ブラウザ認証**：リンクをクリック（または URL を手動で訪問）し、ブラウザで：
   - ChatGPT アカウントにログイン
   - 先ほどコピーした認証コードを入力
   - 認証を確認
3. **自動ポーリング完了**：CC Switch はバックグラウンドで OpenAI サーバーをポーリングし、認証成功を検知すると待機画面を自動的に閉じます
4. **ログイン済みアカウントを表示**：ログインした ChatGPT アカウント（ログインメール）が **OAuth 認証センター → ログイン済みアカウント** リストに表示されます

> ⏱️ **認証コードの有効期限は約 15 分** です。タイムアウトすると「Device Code の有効期限切れ」が表示されるので、**再試行** をクリックして新しい認証コードを取得してください。

### 有効化と使用

Codex OAuth プロバイダーを追加・保存した後：

1. Claude のプロバイダーリストから探す
2. カードの **有効化** ボタンをクリック —— 通常のプロバイダーと同じ
3. Claude Code CLI がリバースプロキシ経由で Codex サービスを使用します
4. トレイメニューの **Claude** サブメニューにもこのプロバイダーが表示され、素早く切り替え可能

> **内部動作**：CC Switch はリクエストを `https://chatgpt.com/backend-api/codex` にルーティングし、base URL が強制的に書き換えられます —— フォームにエンドポイントを手動入力する **必要はありません**。API フォーマットは `openai_responses` に固定されます。

### デフォルトモデル

Codex OAuth プリセットのデフォルトモデルマッピング：

| 役割          | デフォルトモデル |
| ------------- | ---------------- |
| メインモデル  | `gpt-5.4`        |
| Sonnet 役割   | `gpt-5.4`        |
| Opus 役割     | `gpt-5.4`        |
| Haiku 役割    | `gpt-5.4-mini`   |

v3.15.0 以降、Codex OAuth のモデル選択は固定リストだけに依存しません。モデルセレクターを開くと、CC Switch は必要に応じて ChatGPT Codex バックエンドから利用可能モデルを取得します。デフォルトマッピングは引き続き上書きできます。

プロバイダーの JSON エディタで `ANTHROPIC_MODEL` などの環境変数を上書きしてカスタマイズできます。

### マルチアカウント管理（OAuth 認証センター）

**OAuth 認証センター** は複数の ChatGPT アカウントの同時管理をサポートします：

| 操作                       | 説明                                                                   |
| -------------------------- | ---------------------------------------------------------------------- |
| 別のアカウントを追加       | 「別のアカウントを追加」をクリックしてログインフローを繰り返す         |
| デフォルトに設定           | アカウント行の「デフォルトに設定」をクリック —— 新規プロバイダーに適用 |
| プロバイダー用に選択       | プロバイダーフォームの「アカウント選択」ドロップダウンで特定アカウントを指定 |
| アカウントを削除           | アカウント右側の赤い × をクリックして削除（Token がクリアされる）      |
| すべてのアカウントをログアウト | 下部の「すべてのアカウントをログアウト」ボタンで一括クリア         |

> **使用シーン**：チームで開発マシンを共有する場合、各メンバーの ChatGPT アカウントごとに 1 つのプロバイダーを作成し、トレイメニューから素早く切り替えできます。

### Token 自動更新

- Token は **有効期限の 60 秒前** に自動更新され、すべてバックグラウンドで処理されるため手動介入は不要です
- Refresh Token はローカルデータディレクトリに保存され、どこにもアップロードされません
- Token のエクスポートは **サポートされていません**（漏洩防止）

### クォータ表示

ログインしてプロバイダーを有効化すると、**プロバイダーカード下部** に自動的にアカウントクォータが表示されます：

| 表示要素         | 例                  | カラールール                                  |
| ---------------- | ------------------- | --------------------------------------------- |
| 使用率           | `45%`               | < 70% 緑、70–89% オレンジ、≥ 90% 赤           |
| リセットまでの時間 | `7d12h 後にリセット` | ChatGPT アカウントのスライディングウィンドウまたは日次制限 |
| 更新ボタン       | 円形の矢印          | 手動でクォータを再取得                        |

> ⚠️ **セッション期限切れ**：Token が完全に無効になった（自動更新できない）場合、カード下部に黄色い警告枠「セッション期限切れ」が表示されます。**OAuth 認証センター** からこのアカウントを削除し、再ログインしてください。

### よくある失敗

| シナリオ                    | 表示                              | 解決方法                                      |
| --------------------------- | --------------------------------- | --------------------------------------------- |
| 認証コードタイムアウト      | 「Device Code の有効期限切れ」   | 「再試行」をクリックして新しい認証コードを取得 |
| ブラウザで認証拒否          | 「ユーザーが認証を拒否」          | 再ログインしブラウザで「認証」をクリック       |
| ネットワークエラー          | 具体的なエラー情報を表示          | ネットワーク接続を確認、OpenAI ドメインへのアクセス可否を確認 |
| ログイン前にプロバイダー作成 | 「ChatGPT アカウントにログインしてください」 | 先に OAuth 認証センターでログインを完了       |
| Token 更新失敗              | クォータ欄に「セッション期限切れ」 | アカウントを削除して再ログイン                |
| クォータ取得失敗            | クォータ欄に「取得失敗」          | 「更新」ボタンをクリックして再試行             |

### ⚠️ リスク通知（重要）

Codex OAuth リバースプロキシは **リバースエンジニアリングされた OAuth フロー** で ChatGPT アカウントの Codex サービスにアクセスします。有効化前に必ず以下のリスクをご理解ください：

1. **利用規約違反**：OpenAI の利用規約に違反する可能性があります。同規約は未承認の自動化アクセス、サービスの複製、および既定のアクセス経路の迂回を禁止しています
2. **アカウントリスク**：OpenAI は異常な使用パターンを疑わしい自動化として検知し、ChatGPT アカウントに一時的または永続的な制限を課す可能性があります
3. **長期的な可用性は保証されません**：OpenAI は認証および検出メカニズムをいつでも更新する可能性があり、現在利用可能な方法が将来ブロックされる可能性があります

**この機能を有効化することは、すべてのリスクを自己責任で負うことを意味します**。CC Switch は本機能の使用による一切のアカウント制限、警告、サービス停止について責任を負いません。

> 📖 完全な免責事項と背景は [v3.13.0 Release Notes](../../../release-notes/v3.13.0-ja.md#️-リスク通知) をご覧ください。

## 高度なオプション

### API フォーマット（Claude のみ）

サードパーティ API を使用する Claude プロバイダーを追加する際、高度なオプションセクションで正しい **API フォーマット** を選択する必要がある場合があります：

| フォーマット | 説明 | 使用場面 |
|------|------|------|
| **Anthropic Messages** | ネイティブ Anthropic API フォーマット（デフォルト） | Anthropic API に直接接続、または互換プロキシ |
| **OpenAI Chat Completions** | OpenAI Chat API フォーマット、プロキシが自動変換 | プロバイダーが OpenAI Chat フォーマットのみ対応 |
| **OpenAI Responses API** | OpenAI Responses API フォーマット、プロキシが自動変換 | プロバイダーが OpenAI Responses フォーマットのみ対応 |

> **注意**：API フォーマットの変換はプロキシサービスが担当します。Anthropic 以外のフォーマットを使用する場合、リクエスト/レスポンスの正しい変換のためにプロキシが接管有効の状態で稼働している必要があります。詳しくは [4.1 プロキシサービス](../4-proxy/4.1-service.md) をご覧ください。

デフォルト以外の API フォーマットが設定されている場合、高度なオプションセクションが自動展開されます。

### 完全URLエンドポイントモード

v3.13.0 で追加された高度なオプション。デフォルトでは、CC Switch は設定された `base_url` を **プレフィックス** として扱い、`/v1/chat/completions` などの固定パスを後ろに連結します。一部のベンダー（非標準の URL レイアウトを必要とする第三者サービスなど）では、この連結方式ではリクエストが失敗します。

**有効化方法**：

1. プロバイダーを編集し、「高度なオプション」を展開
2. **完全 URL モード** チェックボックスにチェックを入れる
3. **完全なアップストリームエンドポイント**（プレフィックスではなく）を `base_url` に入力

**例の比較**：

| モード                  | `base_url` の記入例                               | 実際のリクエスト先                                |
| ----------------------- | ------------------------------------------------ | ------------------------------------------------ |
| デフォルト（プレフィックス連結） | `https://api.example.com`                      | `https://api.example.com/v1/chat/completions`    |
| **完全 URL モード**     | `https://api.example.com/custom/path/messages`   | `https://api.example.com/custom/path/messages`   |

**使用シーン**：
- ベンダーが非標準パスを要求する場合（`/v1/chat/completions` 以外）
- ベンダーに多階層のパス構造がある場合
- ベンダー専用の API ゲートウェイパス

> **ヒント**：プロキシ転送および Stream Check のいずれも「完全 URL モード」の設定に従うため、有効化後に追加調整は不要です。このオプションを無効化すると、パス連結はデフォルトの動作に戻ります。

### Claude 共通設定クイックトグル

Claude プロバイダーの編集時、JSON エディタの上部に **クイックトグル** が利用できます：

| トグル | 効果 | 設定変更 |
|------|------|------|
| **帰属情報を非表示** | コミット/PR の帰属メタデータをクリア | `attribution: {commit: "", pr: ""}` を設定 |
| **チームメイトを有効化** | エージェントチーム機能を有効化 | `env.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS = "1"` を設定 |
| **ツール検索を有効化** | ツール検索機能を有効化 | `env.ENABLE_TOOL_SEARCH = "true"` を設定 |
| **最大強度思考** | エフォートレベルを max に設定 | `env.CLAUDE_CODE_EFFORT_LEVEL = "max"` を設定 |
| **自動アップグレードを無効化** | Claude Code の自動更新を防止 | `env.DISABLE_AUTOUPDATER = "1"` を設定 |

トグルのチェックを外すと、対応する設定エントリが完全に削除されます。変更は JSON エディタにリアルタイムで反映されます。

また、**共通設定を書き込み** チェックボックスを有効にすると、グローバル設定スニペットをプロバイダーにマージできます。**共通設定を編集** をクリックして共有スニペットをカスタマイズできます。

### Codex ローカルルーティングとモデルマッピング

一部の第三者プロバイダーは **OpenAI Chat Completions** プロトコルのみをサポートするか、非 GPT モデル名（DeepSeek、Kimi、MiniMax など）を使用します。Codex はネイティブには OpenAI Responses API と GPT 系列モデルのみを認識するため、これらのプロバイダーでは CC Switch がローカルでプロトコルとモデルを変換する必要があります。

#### ローカルルーティングが必要

Codex プロバイダーの編集時、**ローカルルーティングが必要** トグルが利用できます：

- **有効にするタイミング**：プロバイダーが Chat Completions プロトコルを使用する、またはモデル名が Codex デフォルトの GPT 系列でない場合
- **有効時**：CC Switch のローカルプロキシが、Codex の送信する Responses リクエストを上流の Chat Completions に変換し、レスポンス（ストリーミング SSE、推論内容、ツール呼び出しを含む）を Responses 形式に再変換します
- **前提条件**：変換を有効にするには[ローカルルーティング](../4-proxy/4.1-service.md)を起動し、Codex の引き継ぎを有効にする必要があります。使用中はローカルルーティングを起動したままにしてください

> 💡 DeepSeek や Kimi などの Chat 形式プリセットを選択すると、このトグルはデフォルトで有効になっており、手動設定は不要です。

#### モデルマッピング

**ローカルルーティングが必要** を有効にすると、その下に **モデルマッピング** 表が表示され、このプロバイダーで利用可能なモデルを宣言できます：

| フィールド | 説明 |
|------|------|
| モデル ID | 上流の実際のモデル名（例：`deepseek-v4-flash`） |
| 表示名 | （任意）`/model` コマンドに表示される名称 |
| コンテキストウィンドウ | （任意）モデルのコンテキスト長 |

- マッピング表は Codex の `model_catalog_json` を生成し、`/model` コマンドでこれらの第三者モデル名を表示できるようにします
- リストの内容はそのまま保存され、モデルリストの唯一の情報源となります
- 変更後、モデルリストを更新するには **Codex の再起動が必要** です（`model_catalog_json` は Codex 起動時に読み込まれます）

#### 思考能力（Reasoning）の自動判定

ローカルルーティングを有効にすると、CC Switch はプロバイダーの「思考」（reasoning）インターフェースを**自動判定**し、Codex が送る思考リクエストを上流が理解できるパラメータに変換します（**手動設定は不要**）。判定はプロバイダーの名前・エンドポイント・モデル名に基づきます：

- **集約 / ホスティングプラットフォーム優先**：OpenRouter、SiliconFlow などはプラットフォーム規則で処理（同じモデルでもプラットフォームごとに思考インターフェースが全く異なる場合があるため）
- **それ以外はモデルブランド別**：DeepSeek、Kimi / Moonshot、Zhipu GLM、Qwen、MiniMax、Xiaomi MiMo、StepFun などにそれぞれ規則あり

プロバイダーの「思考」能力は 2 種類に分かれます：

| 能力 | 意味 | 代表的なプロバイダー |
|------|------|----------------------|
| **思考レベル対応** | 思考の強度を調整可能（low / medium / high など） | DeepSeek、OpenRouter、StepFun（`step-3.5-flash-2603` のみ） |
| **オン / オフ切替のみ** | 思考のオン / オフのみ、**レベルは無効** | Kimi、Zhipu GLM、Qwen、MiniMax、Xiaomi MiMo、SiliconFlow |

> ⚠️ **一部のプロバイダーでは思考レベルが効きません**：オン / オフ切替のみのプロバイダーでは、Codex で思考レベル（`model_reasoning_effort` の low / medium / high）を変えても**効果はありません**——CC Switch はこれらの上流にレベルを送りません（API がパラメータを受け付けず、無理に送るとリクエストが拒否される可能性があるため）。これらのプロバイダーの思考は**デフォルトでオン**で、「調整」ではなく「オン / オフ」で動作します。実際にレベル変更が効くのは、思考レベルに対応したプロバイダー（DeepSeek、OpenRouter など）だけです。

> 💡 **判定は名前 / エンドポイント / モデル名のキーワードマッチング**であり、実際の能力探索ではありません。公式ドメイン（`api.deepseek.com`、`api.moonshot.cn` など）は常に認識されますが、ドメインとモデル名を書き換えた中継サービスでは判定できないことがあり、その場合は思考パラメータが一切注入されません。

### Codex 1M コンテキストウィンドウ

Codex プロバイダーの追加時、**1M コンテキストウィンドウを有効化** トグルが利用できます：

- **有効時**：config.toml に `model_context_window = 1000000` を設定し、`model_auto_compact_token_limit = 900000` を自動入力
- **無効時**：両方のフィールドを削除

トグルがオンの場合に表示されるテキストフィールドで、自動コンパクト制限をカスタマイズできます。v3.15.0 以降、このトグルは Codex プロバイダーの新規追加時のみ表示されます。既存プロバイダーの編集時は、必要に応じて高度な設定で該当フィールドを直接調整してください。

### カスタムアイコン

名前の左側にあるアイコンエリアをクリックすると：

- プリセットアイコンを選択
- アイコンの色をカスタマイズ

### Web サイトリンク

プロバイダーの公式サイトやコンソールのアドレスを入力して、素早くアクセスできます：

- プロバイダーカードのリンクアイコンをクリックすると直接開く
- 残額の確認や API Key の取得などに使用

### メモ

以下のようなメモ情報を追加できます：

- アカウントの用途（個人/仕事）
- プランの情報
- 有効期限

メモはプロバイダーカードに表示され、検索にも対応しています。

### エンドポイント速度テスト

プロバイダーを追加した後、API エンドポイントの速度テストができます：

1. プロバイダーカードの「テスト」ボタンをクリック
2. テストパネルで複数のエンドポイント URL を追加
3. 「テスト」をクリックして実行
4. レイテンシが最も低いエンドポイントを選択

**テスト結果**：
- 緑：レイテンシ < 500ms（優秀）
- 黄：レイテンシ 500-1000ms（普通）
- 赤：レイテンシ > 1000ms（遅い）

![image-20260108005327817](../../assets/image-20260108005327817.png)
