README_ZH.md
<a href="https://trendshift.io/repositories/15372" target="_blank"></a>
</div><details open> <summary>点击折叠</summary>
MiniMax M2.7 是 MiniMax 首个深度参与自我迭代的模型,可自主构建复杂 Agent Harness,并基于 Agent Teams、复杂 Skills、Tool Search Tool 等能力完成高复杂度生产力任务;其在软件工程、端到端项目交付及办公场景中表现优异,多项评测接近行业领先水平,同时具备稳定的复杂任务执行、环境交互能力以及良好的情商与身份保持能力。
点击此处享 MiniMax Token Plan 专属 88 折优惠!
现代 AI 编程依赖于 Claude Code、Codex、Gemini CLI、OpenCode 和 OpenClaw 等 CLI 工具——但每个工具都有自己的配置格式。切换 API 供应商意味着手动编辑 JSON、TOML 或 .env 文件,而在多个工具之间缺乏一个统一管理 MCP, SKILLS 的方式。
CC Switch 为你提供一个桌面应用来管理所有五个 CLI 工具。无需手动编辑配置文件,你将获得一个可视化界面,一键将供应商导入应用,一键在不同的供应商之间进行切换,内置 50+ 供应商预设、统一的 MCP, SKILLS 管理以及系统托盘即时切换功能——所有操作都基于可靠的 SQLite 数据库和原子写入机制,保护你的配置不被损坏。
| 主界面 | 添加供应商 |
|---|---|
ccswitch://) — 通过 URL 一键导入供应商、MCP 服务器、提示词和技能CC Switch 支持五个工具:Claude Code、Codex、Gemini CLI、OpenCode 和 OpenClaw。每个工具都有专属的供应商预设和配置管理。
</details> <details> <summary><strong>切换供应商后需要重启终端吗?</strong></summary>大多数工具需要重启终端或 CLI 工具才能使更改生效。例外的是 Claude Code,它目前支持供应商数据的热切换,无需重启。
</details> <details> <summary><strong>切换供应商之后我的插件配置怎么不见了?</strong></summary>CC Switch 使用“通用配置片段”功能,在不同的供应商之间传递 Key 和请求地址之外的通用数据,您可以在“编辑供应商”菜单的“通用配置面板”里,点击“从当前供应商提取”,把所有的通用数据提取到通用配置中,之后在新建“供应商”的时候,只要勾选“写入通用配置”(默认勾选),就会把插件等数据写入到新的供应商配置中。您的所有配置项都会保存在运行本软件的时候,第一次导入的默认供应商里面,不会丢失。
</details> <details> <summary><strong>macOS 安装</strong></summary>CC Switch macOS 版本已通过 Apple 代码签名和公证,可直接下载安装,无需额外操作。推荐使用 .dmg 安装包。
本软件的设计原则是“最小侵入性”,即使卸载本软件,也不会影响应用的正常使用。
所以系统总会保留一个正在激活中的配置,因为如果将所有配置全部删除,该应用将无法正常使用。如果你不经常使用某个对应的应用,可以在设置中关掉该应用的显示。如果你想切换回官方登录,可以参考下条。
</details> <details> <summary><strong>如何切换回官方登录?</strong></summary>可以在预设供应商里面添加一个官方供应商。切换过去之后,执行一遍 Log out / Log in 流程,之后便可以在官方供应商和第三方供应商之间随意切换。CodeX 可以在不同官方供应商之间进行切换,方便多个 Plus 或者 Team 账号之间切换。
</details> <details> <summary><strong>我的数据存储在哪里?</strong></summary>~/.cc-switch/cc-switch.db(SQLite — 供应商、MCP、提示词、技能)~/.cc-switch/settings.json(设备级 UI 偏好设置)~/.cc-switch/backups/(自动轮换,保留最近 10 个)~/.cc-switch/skills/(默认通过软链接连接到对应应用)~/.cc-switch/skill-backups/(卸载前自动创建,保留最近 20 个)如需了解各项功能的详细使用方法,请查阅 用户手册 — 涵盖供应商管理、MCP/Prompts/Skills、代理与故障转移等全部功能。
注意:首次启动可以手动导入现有 CLI 工具配置作为默认供应商。
从 Releases 页面下载最新版本的 CC-Switch-v{版本号}-Windows.msi 安装包或 CC-Switch-v{版本号}-Windows-Portable.zip 绿色版。
方式一:通过 Homebrew 安装(推荐)
brew tap farion1231/ccswitch
brew install --cask cc-switch
更新:
brew upgrade --cask cc-switch
方式二:手动下载
从 Releases 页面下载 CC-Switch-v{版本号}-macOS.dmg(推荐)或 .zip。
注意:CC Switch macOS 版本已通过 Apple 代码签名和公证,可直接安装打开。
通过 paru 安装(推荐)
paru -S cc-switch-bin
从 Releases 页面下载最新版本的 Linux 安装包:
CC-Switch-v{版本号}-Linux.deb(Debian/Ubuntu)CC-Switch-v{版本号}-Linux.rpm(Fedora/RHEL/openSUSE)CC-Switch-v{版本号}-Linux.AppImage(通用)<details> <summary><strong>架构总览</strong></summary>Flatpak:官方 Release 不包含 Flatpak 包。如需使用,可从
.deb自行构建 — 参见flatpak/README.md。
┌─────────────────────────────────────────────────────────────┐
│ 前端 (React + TS) │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Components │ │ Hooks │ │ TanStack Query │ │
│ │ (UI) │──│ (业务逻辑) │──│ (缓存/同步) │ │
│ └─────────────┘ └──────────────┘ └──────────────────┘ │
└────────────────────────┬────────────────────────────────────┘
│ Tauri IPC
┌────────────────────────▼────────────────────────────────────┐
│ 后端 (Tauri + Rust) │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Commands │ │ Services │ │ Models/Config │ │
│ │ (API 层) │──│ (业务层) │──│ (数据) │ │
│ └─────────────┘ └──────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────┘
核心设计模式
~/.cc-switch/cc-switch.db(SQLite)核心组件
# 安装依赖
pnpm install
# 开发模式(热重载)
pnpm dev
# 类型检查
pnpm typecheck
# 代码格式化
pnpm format
# 检查代码格式
pnpm format:check
# 运行前端单元测试
pnpm test:unit
# 监听模式运行测试(推荐开发时使用)
pnpm test:unit:watch
# 构建应用
pnpm build
# 构建调试版本
pnpm tauri build --debug
cd src-tauri
# 格式化 Rust 代码
cargo fmt
# 运行 clippy 检查
cargo clippy
# 运行后端测试
cargo test
# 运行特定测试
cargo test test_name
# 运行带测试 hooks 的测试
cargo test --features test-hooks
前端测试:
运行测试:
# 运行所有测试
pnpm test:unit
# 监听模式(自动重跑)
pnpm test:unit:watch
# 带覆盖率报告
pnpm test:unit --coverage
前端:React 18 · TypeScript · Vite · TailwindCSS 3.4 · TanStack Query v5 · react-i18next · react-hook-form · zod · shadcn/ui · @dnd-kit
后端:Tauri 2.8 · Rust · serde · tokio · thiserror · tauri-plugin-updater/process/dialog/store/log
测试:vitest · MSW · @testing-library/react
</details> <details> <summary><strong>项目结构</strong></summary>├── src/ # 前端 (React + TypeScript)
│ ├── components/
│ │ ├── providers/ # 供应商管理
│ │ ├── mcp/ # MCP 面板
│ │ ├── prompts/ # Prompts 管理
│ │ ├── skills/ # Skills 管理
│ │ ├── sessions/ # 会话管理器
│ │ ├── proxy/ # Proxy 模式面板
│ │ ├── openclaw/ # OpenClaw 配置面板
│ │ ├── settings/ # 设置(终端/备份/关于)
│ │ ├── deeplink/ # Deep Link 导入
│ │ ├── env/ # 环境变量管理
│ │ ├── universal/ # 跨应用配置
│ │ ├── usage/ # 用量统计
│ │ └── ui/ # shadcn/ui 组件库
│ ├── hooks/ # 自定义 hooks(业务逻辑)
│ ├── lib/
│ │ ├── api/ # Tauri API 封装(类型安全)
│ │ └── query/ # TanStack Query 配置
│ ├── locales/ # 翻译 (zh/en/ja)
│ ├── config/ # 预设 (providers/mcp)
│ └── types/ # TypeScript 类型定义
├── src-tauri/ # 后端 (Rust)
│ └── src/
│ ├── commands/ # Tauri 命令层(按领域)
│ ├── services/ # 业务逻辑层
│ ├── database/ # SQLite DAO 层
│ ├── proxy/ # Proxy 模块
│ ├── session_manager/ # 会话管理
│ ├── deeplink/ # Deep Link 处理
│ └── mcp/ # MCP 同步模块
├── tests/ # 前端测试
└── assets/ # 截图 & 合作商资源
欢迎提交 Issue 反馈问题和建议!
提交 PR 前请确保:
pnpm typecheckpnpm format:checkpnpm test:unit新功能开发前,欢迎先开 Issue 讨论实现方案,不适合项目的功能性 PR 有可能会被关闭。
MIT © Jason Young