# 4.2 アプリケーション接管

## 機能説明

アプリケーション接管とは、CC Switch のプロキシが特定アプリの API リクエストを接管することです。

接管を有効にすると：
- アプリの API リクエストがローカルプロキシ経由で転送される
- リクエストログと使用量の統計を記録できる
- フェイルオーバー機能を使用できる

## 前提条件

アプリケーション接管機能を使用する前に、プロキシサービスを起動する必要があります。

## 接管の有効化

### 操作場所

設定 → 詳細 → プロキシサービス → アプリケーション接管エリア

### 操作手順

1. プロキシサービスが起動していることを確認
2. 「アプリケーション接管」エリアを見つける
3. 必要なアプリのスイッチをオンにする

### 接管スイッチ

| スイッチ | 作用 |
|------|------|
| Claude 接管 | Claude Code のリクエストを接管 |
| Codex 接管 | Codex のリクエストを接管 |
| Gemini 接管 | Gemini CLI のリクエストを接管 |

複数のアプリの接管を同時に有効にできます。

## 接管の仕組み

### 設定の変更

接管を有効にすると、CC Switch はアプリの設定ファイルを変更し、API エンドポイントをローカルプロキシに向けます。

**Claude 設定の変更**：

```json
// 接管前
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.anthropic.com"
  }
}

// 接管後
{
  "env": {
    "ANTHROPIC_BASE_URL": "http://127.0.0.1:15721"
  }
}
```

**Codex 設定の変更**：

```toml
# 接管前
base_url = "https://api.openai.com/v1"

# 接管後
base_url = "http://127.0.0.1:15721/v1"
```

**Gemini 設定の変更**：

```bash
# 接管前
GOOGLE_GEMINI_BASE_URL=https://generativelanguage.googleapis.com

# 接管後
GOOGLE_GEMINI_BASE_URL=http://127.0.0.1:15721
```

### リクエストの転送

プロキシがリクエストを受信すると：

1. リクエスト元を識別（Claude/Codex/Gemini）
2. そのアプリで現在有効なプロバイダーを検索
3. プロバイダーの実際のエンドポイントにリクエストを転送
4. リクエストログを記録
5. アプリにレスポンスを返却

## 接管ステータスの表示

### メイン画面の表示

接管を有効にすると、メイン画面に以下の変化があります：

- **プロキシ Logo の色**：無色から緑に変化
- **プロバイダーカード**：現在アクティブなプロバイダーに緑の枠が表示

### プロバイダーカードの状態

| 状態 | 枠の色 | 説明 |
|------|----------|------|
| 現在有効 | 青 | 設定ファイル内のプロバイダー（非プロキシモード） |
| プロキシアクティブ | 緑 | プロキシが実際に使用しているプロバイダー |
| 通常 | デフォルト | 使用されていないプロバイダー |

## 接管の無効化

### 操作手順

1. プロキシパネルで対応するアプリの接管スイッチをオフにする
2. またはプロキシサービスを直接停止

### 設定の復元

接管を無効にすると、CC Switch は以下を実行します：

1. アプリの設定を接管前の状態に復元
2. 現在のリクエストログを保存

## 接管とプロバイダーの切り替え

### 接管モードでのプロバイダー切り替え

接管モードでプロバイダーを切り替える場合：

1. メイン画面でプロバイダーの「有効化」ボタンをクリック
2. プロキシが新しいプロバイダーを使用してリクエストを即座に転送
3. **CLI ツールの再起動は不要**

これが接管モードの大きなメリットです：プロバイダーの切り替えが即座に反映されます。

### 非接管モードでのプロバイダー切り替え

非接管モードでプロバイダーを切り替える場合：

1. 設定ファイルを変更
2. CLI ツールの再起動が必要

## 複数アプリの接管

複数のアプリを同時に接管でき、それぞれ独立して管理されます：

- 独立したプロバイダー設定
- 独立したフェイルオーバーキュー
- 独立したリクエスト統計

## 使用シーン

### シーン 1：使用量の監視

接管 + ログ記録を有効にして、API の使用状況を監視します。

### シーン 2：素早い切り替え

接管を有効にすると、プロバイダーの切り替えに CLI ツールの再起動が不要になります。

### シーン 3：フェイルオーバー

接管の有効化はフェイルオーバー機能を使用するための前提条件です。

## 注意事項

### パフォーマンスへの影響

プロキシにより少量のレイテンシ（通常 < 10ms）が追加されますが、ほとんどのシーンでは無視できます。

### ネットワーク要件

接管モードでは、CLI ツールがローカルプロキシアドレスにアクセスできる必要があります。

### 設定のバックアップ

接管を有効にする前に、CC Switch は元の設定をバックアップし、無効化時に復元します。

## よくある質問

### 接管後にリクエストが失敗する

確認事項：
- プロキシサービスが正常に実行されているか
- プロバイダーの設定が正しいか
- ネットワークが正常か

### 接管を無効にしても設定が復元されない

考えられる原因：
- プロキシの異常終了
- 設定ファイルが他のプログラムに変更された

解決方法：
- プロバイダーを手動で編集して保存し直す
- または接管を再度有効にしてから無効にする
