CC Switch 项目介绍
CC Switch
一句话定义:CC Switch 是一个基于 Tauri 2 的跨平台桌面应用,统一管理 Claude Code、Codex、Gemini CLI、OpenCode、OpenClaw 和 Hermes Agent 六大 AI 编程工具的供应商配置、MCP 服务器、Skills 和会话记录。
解决什么问题:这些 CLI 工具各自使用不同的配置文件格式(JSON、TOML、.env),切换 API 供应商需要手动编辑多个文件。CC Switch 提供可视化界面,一键导入/切换供应商,内置本地代理实现热切换与故障转移,并在一个面板中统一管理所有工具的 MCP 和 Skills。
核心能力
- 50+ 供应商预设,一键切换:覆盖 AWS Bedrock、NVIDIA NIM、各大社区中转平台,支持自定义供应商
- 本地代理 + 热切换:启动本地 HTTP 代理接管 CLI 工具的 API 请求,切换供应商无需重启 Claude Code
- 熔断器 + 故障转移队列:自动检测供应商健康度,失败请求自动切换到备用供应商
- SSOT 双写架构:SQLite 作为唯一真实数据源,Live 配置文件在代理接管时自动同步,崩溃后可恢复
- 统一 MCP 面板:跨 5 个应用管理 MCP 服务器,支持双向同步与 Deep Link 导入
- Skills 统一管理:从 GitHub 仓库一键安装 Skills,支持软链接与文件复制两种模式
- 云端同步:通过 Dropbox、OneDrive、iCloud 或自定义 WebDAV 服务器同步配置
- 用量统计:追踪支出、请求数和 Token 消耗,支持趋势图和自定义定价
技术栈
| 层 | 技术 |
|---|---|
| 前端 | React 18 + TypeScript + Vite + TailwindCSS 3.4 + TanStack Query v5 |
| UI 组件 | shadcn/ui + Radix UI + Framer Motion + CodeMirror + @dnd-kit |
| 后端 | Tauri 2.8 + Rust 1.85 + tokio 异步运行时 |
| 代理层 | axum 0.7 + hyper 1.0 + hyper-rustls |
| 数据库 | SQLite (rusqlite 0.31) 10 版 Schema,支持增量迁移 |
| 测试 | vitest + MSW + @testing-library/react |
架构概览
数据流关键模式
- SSOT (Single Source of Truth):所有数据存储在
~/.cc-switch/cc-switch.db(SQLite) - 双层存储:SQLite 存储可同步数据,JSON 存储设备级设置
- 双向同步:切换时写入 Live 文件,编辑活跃供应商时从 Live 回填
- 原子写入:临时文件 + rename 模式,防止配置损坏
- 并发安全:Mutex 保护的数据库连接,避免竞态条件
- 崩溃恢复:Live 配置备份 + 占位符检测,异常退出后自动恢复
快速体验
# macOS (Homebrew)brew install --cask cc-switch
# 或下载各平台安装包# Windows: .msi 安装包或便携版 .zip# Linux: .deb / .rpm / .AppImage安装后打开应用,首次启动会自动导入现有 CLI 工具的配置作为默认供应商,从预设列表中选择并点击「启用」即可切换。
教程导读
本教程分为两条路径:
AI 应用知识路径(ai/ 目录)——从 CC Switch 出发学习通用知识:
- 本地代理模式与 API 网关路由
- 熔断器模式与故障转移策略
- 请求整流与多协议格式转换
- SSOT 双写架构与崩溃恢复
编程核心路径(dev/ 目录)——学习 CC Switch 的工程实践:
- Tauri 2 分层架构
- SQLite Schema 迁移与数据持久化
- Deep Link 协议与跨平台注册
- 前端测试策略(vitest + MSW)
- 跨平台桌面适配