背景

随着 AI 编程工具的爆发式增长,我们终端里跑的 CLI 工具越来越多:Claude Code、Codex、Gemini CLI、OpenCode、OpenClaw,以及即将支持的 Hermes Agent。每个工具都有自己独立的配置格式——JSON、TOML、.env 文件散落在不同的隐藏目录里。

当你需要从智谱 GLM 切换到 SiliconFlow,或者想给不同工具配置不同的 API 供应商时,就得挨个去改这些配置文件。更不用说 MCP 服务器、Skills、系统提示词这些扩展配置了——它们各自为政,管理起来相当折磨。

CC Switch 就是为了解决这个问题而生的。它是一个 All-in-One 配置管理工具,用一个统一的界面管理所有 AI CLI 工具的供应商、MCP、Prompts 和 Skills。

两个版本:桌面 GUI + CLI

CC Switch 提供两种形态:

特性 桌面版 (cc-switch) CLI 版 (cc-switch-cli)
技术栈 Tauri 2 + React + Rust 纯 Rust + ratatui TUI
安装大小 ~50MB ~15MB
交互方式 图形界面 + 系统托盘 终端交互式 TUI + 命令行
适合场景 日常开发、频繁切换 服务器/SSH 远程、自动化
GitHub farion1231/cc-switch SaladDay/cc-switch-cli
官网 ccswitch.io -

简单选:有 GUI 就用桌面版,服务器或 SSH 远程就用 CLI 版。两者数据完全兼容,WebDAV 云同步也互通。

安装

桌面版

macOS(推荐 Homebrew)

1brew tap farion1231/ccswitch
2brew install --cask cc-switch

Linux(Debian/Ubuntu)

1# 从 Releases 页面下载 .deb 包后:
2sudo dpkg -i CC-Switch-v{版本号}-Linux.deb

Arch Linux

1paru -S cc-switch-bin

Windows:下载 MSI 安装包或 ZIP 绿色版,从 Releases 获取。

CLI 版

1# 一键安装(macOS/Linux)
2curl -fsSL https://github.com/SaladDay/cc-switch-cli/releases/latest/download/install.sh | bash

安装后二进制位于 ~/.local/bin/cc-switch,确保该目录在 PATH 中。

核心功能

1. 供应商管理——50+ 预设,一键切换

这是 CC Switch 最核心的功能。它内置了 50+ 供应商预设,覆盖了:

  • 国内模型:智谱 GLM、MiniMax、DeepSeek、Kimi(月之暗面)、通义千问、百川等
  • 国际平台:Anthropic 官方、OpenAI/Codex、Google/Gemini、AWS Bedrock、NVIDIA NIM
  • API 中转服务:SiliconFlow、PackyCode、AICodeMirror 等

添加供应商只需要三步:

  1. 点击「添加供应商」
  2. 选择预设(自动填充端点地址)
  3. 填入 API Key,点「添加」

切换时,桌面版点「启用」按钮,CLI 版运行:

1cc-switch provider list          # 列出所有供应商
2cc-switch provider switch <id>   # 切换到指定供应商
3cc-switch provider current       # 查看当前启用的供应商
4cc-switch provider speedtest <id> # 测试 API 延迟

切换后各工具的生效方式:

应用 生效方式
Claude Code 即时生效(热重载)
Codex 需重启终端
Gemini CLI 即时生效(每次请求重读配置)
OpenCode 需重启终端
OpenClaw 需重启终端

2. 共享配置面板——换供应商不丢插件配置

这是很多用户踩过的坑:切换供应商后,原来配置的插件、环境变量全丢了。CC Switch 的「共享配置」机制解决了这个问题——

在「编辑供应商 → 共享配置面板」中点击「从当前供应商提取」,把所有通用配置保存下来。新建供应商时勾选「写入共享配置」,插件数据就自动带过来了。

CLI 版对应命令:

1# 查看共享配置
2cc-switch --app claude config common show
3
4# 设置共享配置
5cc-switch --app claude config common set --snippet '{"env":{"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC":1},"includeCoAuthoredBy":false}'
6
7# 清除共享配置
8cc-switch --app claude config common clear

3. MCP 服务器统一管理

四个 AI CLI 工具(Claude、Codex、Gemini、OpenCode)都支持 MCP 协议,但配置方式各不相同。CC Switch 提供统一的 MCP 面板:

  • 从模板添加常见 MCP 服务器
  • Deep Link 一键导入
  • 按应用启用/禁用,双向同步
1cc-switch mcp list                 # 列出所有 MCP 服务器
2cc-switch mcp add                  # 添加(交互式)
3cc-switch mcp enable <id> --app claude   # 为指定应用启用
4cc-switch mcp sync                 # 同步到实际配置文件
5cc-switch mcp import --app claude  # 从实际配置导入

4. Prompts(系统提示词)管理

为不同的项目/场景创建不同的系统提示词预设,一键切换:

1cc-switch prompts list               # 列出预设
2cc-switch prompts activate <id>      # 激活预设
3cc-switch prompts create [name]      # 创建预设
4cc-switch prompts edit <id>          # 编辑预设

跨应用自动同步到对应文件:CLAUDE.mdAGENTS.mdGEMINI.md

5. Skills 管理

从 GitHub 仓库一键安装 Skills 到所有支持的应用:

1cc-switch skills list                # 列出已安装 Skills
2cc-switch skills discover <query>    # 搜索可用 Skills
3cc-switch skills install <name>      # 安装
4cc-switch skills sync                # 同步到应用目录
5cc-switch skills repos add <repo>    # 添加自定义 Skill 仓库

支持 symlink 和文件复制两种同步方式。

6. 本地代理与故障转移

CC Switch 内置本地代理服务,支持:

  • 热切换:代理运行时切换后端供应商
  • 自动故障转移:主供应商不可用时自动切换到备用
  • 熔断器:检测供应商健康状态,避免反复请求故障节点
  • 格式转换:将不同格式的 API 请求转换为目标格式
  • 按应用独立代理:可以只代理 Claude、Codex 或 Gemini 中的某一个
1cc-switch proxy show                 # 查看代理配置和路由
2cc-switch proxy enable               # 启用代理
3cc-switch proxy disable              # 禁用代理
4cc-switch proxy serve                # 前台运行(调试用)

7. 用量追踪

内置用量统计面板,记录每个供应商的:

  • Token 消耗量和趋势图
  • 请求次数
  • 花费金额(支持自定义模型定价)
  • 详细请求日志

8. 云同步

支持通过 Dropbox、OneDrive、iCloud 或 WebDAV 服务器同步配置到多设备。CLI 版同样兼容:

1cc-switch config webdav show                              # 查看 WebDAV 配置
2cc-switch config webdav set --base-url <url> --username <user> --password <pass> --enable
3cc-switch config webdav jianguoyun --username <user> --password <password>  # 坚果云快捷方式
4cc-switch config webdav upload                                                # 上传
5cc-switch config webdav download                                              # 下载
1# 检查环境变量冲突
2cc-switch env check --app claude
3
4# 列出相关环境变量
5cc-switch env list --app claude
6
7# 检查本地 CLI 工具是否已安装
8cc-switch env tools

Deep Link(ccswitch://)支持通过 URL 一键导入供应商、MCP、Prompts 和 Skills 配置,特别适合团队分享配置。

实际使用场景

场景一:国内开发者使用第三方 API 中转

 1# 1. 添加 SiliconFlow 供应商
 2cc-switch provider add
 3# 选择 SiliconFlow 预设 → 填入 API Key → 添加
 4
 5# 2. 切换使用
 6cc-switch provider switch <siliconflow-id>
 7
 8# 3. 验证
 9claude
10> 你好

Claude Code 即时生效,其他工具重启终端即可。

场景二:多账号切换

比如你有多个 Anthropic 账号,分别用于个人和公司项目:

  1. 在 CC Switch 中添加两个「官方登录」预设
  2. 切换到一个预设,登录对应的账号
  3. 需要换号时,切换另一个预设重新登录

Codex 支持在不同官方 Provider 之间切换,方便在多个 Plus 或 Team 账号间轮换。

场景三:服务器环境(CLI 版)

在 SSH 远程服务器上:

1# 启动交互式 TUI
2cc-switch
3
4# 或直接命令行操作
5cc-switch provider add          # 交互式添加
6cc-switch provider switch 1     # 切换到 ID 为 1 的供应商
7cc-switch mcp sync              # 同步 MCP 配置
8cc-switch skills install web-search  # 安装搜索 Skill

不需要 X11 或桌面环境,纯终端操作。

数据存储

~/.cc-switch/
├── cc-switch.db          # SQLite 数据库(供应商、MCP、Prompts、Skills)
├── settings.json          # 本地设置(设备级偏好)
├── backups/               # 自动备份(保留最近 10 份)
├── skills/                # 已安装的 Skills 源文件
└── skill-backups/         # 卸载前自动备份(保留最近 20 份)

配置目录可通过 CC_SWITCH_CONFIG_DIR 环境变量自定义。写入采用 原子写入(临时文件 + 重命名),防止配置损坏。并发安全通过 Mutex/RwLock 保护。

架构概览

桌面版采用 Tauri 2 架构:

┌─────────────────────────────────────────────────┐
│              前端 (React + TypeScript)            │
│  组件 (UI) → Hooks (业务逻辑) → TanStack Query    │
└────────────────────┬────────────────────────────┘
                     │ Tauri IPC
┌────────────────────▼────────────────────────────┐
│              后端 (Tauri + Rust)                  │
│  Commands (API层) → Services (业务层) → DAO → DB  │
└─────────────────────────────────────────────────┘

CLI 版复用桌面版 100% 的服务层代码,只是把前端换成了 ratatui TUI 和命令行入口。

总结

CC Switch 解决了一个很实际的问题:AI CLI 工具越来越多,配置管理越来越散。它用一个工具把供应商切换、MCP 管理、Prompts、Skills 全部统一起来,省去了手动编辑 JSON/TOML/.env 文件的麻烦。

  • 桌面版适合日常开发使用,图形界面直观,系统托盘一键切换
  • CLI 版适合服务器、SSH 远程、自动化脚本场景

两者数据兼容,按需选择即可。


相关链接