# 2.2 切换供应商

## 主界面切换

在供应商列表中，点击目标供应商卡片的「启用」按钮。

### 切换流程

1. 点击「启用」按钮
2. CC Switch 更新配置文件
3. 卡片状态变为「当前启用」
4. Claude/Gemini 即时生效，Codex 需重启终端

### 状态指示

| 状态 | 显示 | 说明 |
|------|------|------|
| 当前启用 | 蓝色边框 + 标签 | 配置文件中的当前供应商 |
| 代理活跃 | 绿色边框 | 代理模式下实际使用的供应商 |
| 普通 | 默认样式 | 未启用的供应商 |

## 托盘快速切换

通过系统托盘可以快速切换，无需打开主界面。

### 操作步骤

1. 右键点击系统托盘的 CC Switch 图标
2. 将鼠标悬停在对应应用的子菜单上（如 "Claude · 当前供应商"）
3. 点击要切换到的供应商名称
4. 切换完成，托盘会短暂提示

### 托盘菜单结构

v3.13.0 起，托盘菜单从原来的扁平列表重构为**按应用分组的分级子菜单**，为每个应用独立建立子菜单：

| 子菜单      | 说明                                         |
| ----------- | -------------------------------------------- |
| Claude      | Claude 所有供应商（含 Codex OAuth 反向代理） |
| Codex       | Codex 所有供应商                             |
| Gemini      | Gemini 所有供应商                            |

**重构带来的好处**：

- **防止菜单溢出**：有大量供应商时，扁平列表会超出屏幕高度；分级子菜单天然支持无限扩展
- **子菜单标题显示当前激活供应商与用量摘要**：无需打开子菜单即可知道 Claude / Codex / Gemini 当前使用哪个供应商，以及可用的缓存用量信息
- **按应用隔离操作**：切换 Claude 的供应商不会干扰到 Codex 或 Gemini 的视图

> 💡 **提示**：后台常驻 + 轻量模式 + 分级子菜单的组合特别适合频繁切换多个应用的重度用户。参考 [1.5 个性化配置 → 轻量模式](../1-getting-started/1.5-settings.md)。

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

## 生效方式

### Claude Code

**切换后即时生效**，无需重启。

Claude Code 支持热重载，会自动检测配置文件变更并重新加载。

### Codex

切换后需要重启：
- 关闭当前终端窗口
- 重新打开终端

### Gemini CLI

**切换后即时生效**，无需重启。

Gemini CLI 每次请求都会重新读取 `.env` 文件。

## 配置文件变更

切换供应商时，CC Switch 会修改以下文件：

### Claude

```
~/.claude/settings.json
```

修改内容：
```json
{
  "env": {
    "ANTHROPIC_API_KEY": "新的 API Key",
    "ANTHROPIC_BASE_URL": "新的端点"
  }
}
```

### Codex

```
~/.codex/auth.json
~/.codex/config.toml（如有额外配置）
```

### Gemini

```
~/.gemini/.env
~/.gemini/settings.json
```

## 切换失败处理

如果切换失败，可能的原因：

### 配置文件被锁定

其他程序正在使用配置文件。

**解决方法**：关闭正在运行的 CLI 工具，再尝试切换。

### 权限不足

没有写入配置文件的权限。

**解决方法**：检查配置目录的权限设置。

### 配置格式错误

供应商配置的 JSON 格式有误。

**解决方法**：编辑供应商，检查并修复 JSON 格式。
