# 5.4 環境変数の競合

## 機能説明

CC Switch は、システム環境変数とアプリ設定の競合を自動的に検出し、設定が意図せず上書きされるのを防ぎます。

**検出される環境変数**：
- `ANTHROPIC_API_KEY` - Claude API キー
- `ANTHROPIC_BASE_URL` - Claude API エンドポイント
- `OPENAI_API_KEY` - OpenAI API キー
- `GEMINI_API_KEY` - Gemini API キー
- その他の関連環境変数

## 競合の警告

競合が検出されると、画面の上部に黄色い警告バナーが表示されます：

```
⚠️ 環境変数の競合を検出
X 個の環境変数が CC Switch の設定と競合する可能性があります
[展開] [閉じる]
```

## 競合の詳細を確認

「展開」ボタンをクリックして詳細情報を表示します：

| フィールド | 説明 |
|------|------|
| 変数名 | 環境変数名 |
| 変数値 | 現在設定されている値 |
| ソース | 変数の出処 |

### ソースの種類

| ソース | 説明 |
|------|------|
| ユーザーレジストリ | Windows のユーザーレベル環境変数 |
| システムレジストリ | Windows のシステムレベル環境変数 |
| Shell 設定 | macOS/Linux の Shell 設定ファイル |
| システム環境 | システムレベルの環境変数 |

## 競合の処理

### 削除する変数の選択

1. 削除する環境変数にチェックを入れる
2. または「すべて選択」ですべての競合変数を選択

### 変数の削除

1. 「選択を削除」ボタンをクリック
2. 削除操作を確認
3. CC Switch が自動的にバックアップしてから、選択した変数を削除

### 自動バックアップ

削除前に自動的にバックアップが作成されます：

- バックアップの場所：`~/.cc-switch/env-backups/`
- バックアップ形式：JSON ファイル
- 変数名、値、ソースなどの情報を含む

## 警告を無視する

競合が使用に影響しないことが確認できる場合：

1. 警告バナーの右側にある「閉じる」ボタンをクリック
2. 警告が一時的に非表示になる
3. 次回の起動時に再度検出が行われる

## 手動での処理

CC Switch 経由で削除したくない場合は、手動で処理できます：

### Windows

1. 「システムのプロパティ → 詳細 → 環境変数」を開く
2. ユーザー変数またはシステム変数で競合する変数を見つける
3. 変数を削除または変更

### macOS / Linux

1. Shell 設定ファイル（例：`~/.zshrc`、`~/.bashrc`）を編集
2. 関連する `export` 文を削除またはコメントアウト
3. 設定を再読み込み：`source ~/.zshrc`

## なぜ競合が発生するのか

環境変数の優先度は通常、設定ファイルよりも高く、以下の問題を引き起こす可能性があります：

- CC Switch で設定したプロバイダー設定が上書きされる
- API リクエストが間違ったエンドポイントに送信される
- 間違った API キーが使用される

## ベストプラクティス

1. **CC Switch で設定を管理**：システム環境変数に API キーを設定しないようにする
2. **定期的に確認**：競合の警告に注意し、速やかに対処
3. **重要な変数のバックアップ**：削除前にバックアップを確認

## 削除した変数の復元

環境変数を誤って削除した場合：

1. バックアップファイルを見つける：`~/.cc-switch/env-backups/`
2. 対応する JSON ファイルを開く
3. システム環境に手動で変数を復元
