cc-switch
cc-switch is an open-source Rust project in the claude space with 94.1k GitHub stars. The repository is actively maintained, with recent commits.
MITPermissive — free to use in commercial and proprietary software, with attribution.View license →
Production readiness
5/5- Actively maintainedCommits in the last 6 months
- No known vulnerabilitiesNo OSV advisories
- Clear, usable licenseMIT (permissive)
- Proven adoptionWidely used
- Has documentationDocumentation indexed
cargo add cc-switchCC Switch
The All-in-One Manager for Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw & Hermes Agent
🌐 The Only Official Website: ccswitch.io
English | 中文 | 日本語 | Deutsch | Changelog
❤️Sponsor
MiniMax-M2.7 is a next-generation large language model designed for autonomous evolution and real-world productivity. Unlike traditional models, M2.7 actively participates in its own improvement through agent teams, dynamic tool use, and reinforcement learning loops. It delivers strong performance in software engineering (56.22% on SWE-Pro, 55.6% on VIBE-Pro, 57.0% on Terminal Bench 2) and excels in complex office workflows, achieving a leading 1495 ELO on GDPval-AA. With high-fidelity editing across Word, Excel, and PowerPoint, and a 97% adherence rate across 40+ complex skills, M2.7 sets a new standard for building AI-native workflows and organizations.
Click to get an exclusive 12% off the MiniMax Token Plan!
Why CC Switch?
Modern AI-powered coding relies on tools like Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw, and Hermes — but each has its own configuration format. Switching API providers means manually editing JSON, TOML, or .env files, and there is no unified way to manage MCP and Skills across multiple tools.
CC Switch gives you a single desktop app to manage all supported AI tools. Instead of editing config files by hand, you get a visual interface to import providers with one click, switch between them instantly, with 50+ built-in provider presets, unified MCP and Skills management, and system tray quick switching — all backed by a reliable SQLite database with atomic writes that protect your configs from corruption.
One App, Seven Tools — Manage Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw, and Hermes from a single interface
No More Manual Editing — 50+ provider presets including AWS Bedrock, NVIDIA NIM, and community relays; just pick and switch
Unified MCP & Skills Management — One panel to manage MCP servers and Skills across Claude, Codex, Gemini, OpenCode, and Hermes with bidirectional sync
System Tray Quick Switch — Switch providers instantly from the tray menu, no need to open the full app
Cloud Sync — Sync provider data across devices via Dropbox, OneDrive, iCloud, or WebDAV servers
Cross-Platform — Native desktop app for Windows, macOS, and Linux, built with Tauri 2
Built-in Utilities — Includes various utilities for first-launch login confirmation, signature bypass, plugin extension sync, and more
Screenshots
Main InterfaceAdd Provider

Features
Full Changelog | Release Notes
Provider Management
7 supported tools, 50+ presets — Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw, Hermes; copy your key and import with one click
Universal providers — One config syncs to Claude Code, Codex, and Gemini CLI
One-click switching, system tray quick access, drag-and-drop sorting, import/export
Proxy & Failover
Local proxy with hot-switching — Format conversion, auto-failover, circuit breaker, provider health monitoring, and request rectifier
App-level takeover — Independently proxy Claude, Codex, or Gemini, down to individual providers
MCP, Prompts & Skills
Unified MCP panel — Manage MCP servers across Claude, Codex, Gemini, OpenCode, and Hermes with bidirectional sync and Deep Link import
Prompts — Markdown editor with cross-app sync (CLAUDE.md / AGENTS.md / GEMINI.md) and backfill protection
Skills — One-click install from GitHub repos or ZIP files, custom repository management, with symlink and file copy support
Usage & Cost Tracking
Usage dashboard — Track spending, requests, and tokens with trend charts, detailed request logs, and custom per-model pricing
Session Manager & Workspace
Browse, search, and restore conversation history across supported session sources
Workspace editor (OpenClaw) — Edit agent files (AGENTS.md, SOUL.md, etc.) with Markdown preview
System & Platform
Cloud sync — Custom config directory (Dropbox, OneDrive, iCloud, NAS) and WebDAV server sync
Deep Link (
ccswitch://) — Import providers, MCP servers, prompts, and skills via URLDark / Light / System theme, auto-launch, auto-updater, atomic writes, auto-backups, i18n (zh/zh-TW/en/ja)
FAQ
CC Switch supports seven tools: Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw, and Hermes. Each tool has dedicated provider presets and configuration management.
For most tools, yes — restart your terminal or the CLI tool for changes to take effect. The exception is Claude Code, which currently supports hot-switching of provider data without a restart.
CC Switch provides a "Shared Config Snippet" feature to pass common data (beyond API keys and endpoints) between providers. Go to "Edit Provider" → "Shared Config Panel" → click "Extract from Current Provider" to save all common data. When creating a new provider, check "Write Shared Config" (enabled by default) to include plugin data in the new provider. All your configuration items are preserved in the default provider imported when you first launched the app.
CC Switch for macOS is code-signed and notarized by Apple. You can download and install it directly — no extra steps needed. We recommend using the .dmg installer.
CC Switch follows a "minimal intrusion" design principle — even if you uninstall the app, your CLI tools will continue to work normally. The system always keeps one active configuration, because deleting all configurations would make the corresponding CLI tool unusable. If you rarely use a specific CLI tool, you can hide it in Settings. To switch back to official login, see the next question.
Add an official provider from the preset list. After switching to it, run the Log out / Log in flow, and then you can freely switch between the official provider and third-party providers. Codex supports switching between different official providers, making it easy to switch between multiple Plus or Team accounts.
Database:
~/.cc-switch/cc-switch.db(SQLite — providers, MCP, prompts, skills)Local settings:
~/.cc-switch/settings.json(device-level UI preferences)Backups:
~/.cc-switch/backups/(auto-rotated, keeps 10 most recent)Skills:
~/.cc-switch/skills/(symlinked to corresponding apps by default)Skill Backups:
~/.cc-switch/skill-backups/(created automatically before uninstall, keeps 20 most recent)
Documentation
For detailed guides on every feature, check out the User Manual — covering provider management, MCP/Prompts/Skills, proxy & failover, and more.
Quick Start
Basic Usage
Add Provider: Click "Add Provider" → Choose a preset or create custom configuration
Switch Provider:
Main UI: Select provider → Click "Enable"
System Tray: Click provider name directly (instant effect)
Takes Effect: Restart your terminal or the corresponding CLI tool to apply changes (Claude Code does not require a restart)
Back to Official: Add an "Official Login" preset, restart the CLI tool, then follow its login/OAuth flow
MCP, Prompts, Skills & Sessions
MCP: Click the "MCP" button → Add servers via templates or custom config → Toggle per-app sync
Prompts: Click "Prompts" → Create presets with Markdown editor → Activate to sync to live files
Skills: Click "Skills" → Browse GitHub repos → One-click install to supported apps
Sessions: Click "Sessions" → Browse, search, and restore conversation history across supported session sources
Note: On first launch, you can manually import existing CLI tool configs as the default provider.
Download & Installation
System Requirements
Windows: Windows 10 and above
macOS: macOS 12 (Monterey) and above
Linux: Ubuntu 22.04+ / Debian 11+ / Fedora 34+ and other mainstream distributions
Windows Users
Download the latest CC-Switch-v{version}-Windows.msi installer or CC-Switch-v{version}-Windows-Portable.zip portable version from the Releases page.
macOS Users
Method 1: Install via Homebrew (Recommended)
brew install --cask cc-switch
Update:
brew upgrade --cask cc-switch
Method 2: Manual Download
Download CC-Switch-v{version}-macOS.dmg (recommended) or .zip from the Releases page.
Note: CC Switch for macOS is code-signed and notarized by Apple. You can install and open it directly.
Arch Linux Users
Install via paru (Recommended)
paru -S cc-switch-bin
Linux Users
Download the latest Linux build from the Releases page:
CC-Switch-v{version}-Linux.deb(Debian/Ubuntu)CC-Switch-v{version}-Linux.rpm(Fedora/RHEL/openSUSE)CC-Switch-v{version}-Linux.AppImage(Universal)
Flatpak: Not included in official releases. You can build it yourself from the
.deb— seeflatpak/README.mdfor instructions.
Design Principles
┌─────────────────────────────────────────────────────────────┐
│ Frontend (React + TS) │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Components │ │ Hooks │ │ TanStack Query │ │
│ │ (UI) │──│ (Bus. Logic) │──│ (Cache/Sync) │ │
│ └─────────────┘ └──────────────┘ └──────────────────┘ │
└────────────────────────┬────────────────────────────────────┘
│ Tauri IPC
┌────────────────────────▼────────────────────────────────────┐
│ Backend (Tauri + Rust) │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ Commands │ │ Services │ │ Models/Config │ │
│ │ (API Layer) │──│ (Bus. Layer) │──│ (Data) │ │
│ └─────────────┘ └──────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────┘
Core Design Patterns
SSOT (Single Source of Truth): All data stored in
~/.cc-switch/cc-switch.db(SQLite)Dual-layer Storage: SQLite for syncable data, JSON for device-level settings
Dual-way Sync: Write to live files on switch, backfill from live when editing active provider
Atomic Writes: Temp file + rename pattern prevents config corruption
Concurrency Safe: Mutex-protected database connection avoids race conditions
Layered Architecture: Clear separation (Commands → Services → DAO → Database)
Key Components
ProviderService: Provider CRUD, switching, backfill, sorting
McpService: MCP server management, import/export, live file sync
ProxyService: Local proxy mode with hot-switching and format conversion
SessionManager: Conversation history browsing across supported session sources
ConfigService: Config import/export, backup rotation
SpeedtestService: API endpoint latency measurement
Environment Requirements
Node.js 18+
pnpm 8+
Rust 1.85+
Tauri CLI 2.8+
Development Commands
# Install dependencies
pnpm install
# Dev mode (hot reload)
pnpm dev
# Type check
pnpm typecheck
# Format code
pnpm format
# Check code format
pnpm format:check
# Run frontend unit tests
pnpm test:unit
# Run tests in watch mode (recommended for development)
pnpm test:unit:watch
# Build application
pnpm build
# Build debug version
pnpm tauri build --debug
Rust Backend Development
cd src-tauri
# Format Rust code
cargo fmt
# Run clippy checks
cargo clippy
# Run backend tests
cargo test
# Run specific tests
cargo test test_name
# Run tests with test-hooks feature
cargo test --features test-hooks
Testing Guide
Frontend Testing:
Uses vitest as test framework
Uses MSW (Mock Service Worker) to mock Tauri API calls
Uses @testing-library/react for component testing
Running Tests:
# Run all tests
pnpm test:unit
# Watch mode (auto re-run)
pnpm test:unit:watch
# With coverage report
pnpm test:unit --coverage
Tech Stack
Frontend: React 18 · TypeScript · Vite · TailwindCSS 3.4 · TanStack Query v5 · react-i18next · react-hook-form · zod · shadcn/ui · @dnd-kit
Backend: Tauri 2.8 · Rust · serde · tokio · thiserror · tauri-plugin-updater/process/dialog/store/log
Testing: vitest · MSW · @testing-library/react
├── src/ # Frontend (React + TypeScript)
│ ├── components/
│ │ ├── providers/ # Provider management
│ │ ├── mcp/ # MCP panel
│ │ ├── prompts/ # Prompts management
│ │ ├── skills/ # Skills management
│ │ ├── sessions/ # Session Manager
│ │ ├── proxy/ # Proxy mode panel
│ │ ├── openclaw/ # OpenClaw config panels
│ │ ├── settings/ # Settings (Terminal/Backup/About)
│ │ ├── deeplink/ # Deep Link import
│ │ ├── env/ # Environment variable management
│ │ ├── universal/ # Cross-app configuration
│ │ ├── usage/ # Usage statistics
│ │ └── ui/ # shadcn/ui component library
│ ├── hooks/ # Custom hooks (business logic)
│ ├── lib/
│ │ ├── api/ # Tauri API wrapper (type-safe)
│ │ └── query/ # TanStack Query config
│ ├── locales/ # Translations (zh/zh-TW/en/ja)
│ ├── config/ # Presets (providers/mcp)
│ └── types/ # TypeScript definitions
├── src-tauri/ # Backend (Rust)
│ └── src/
│ ├── commands/ # Tauri command layer (by domain)
│ ├── services/ # Business logic layer
│ ├── database/ # SQLite DAO layer
│ ├── proxy/ # Proxy module
│ ├── session_manager/ # Session management
│ ├── deeplink/ # Deep Link handling
│ └── mcp/ # MCP sync module
├── tests/ # Frontend tests
└── assets/ # Screenshots & partner resources
Contributing
Issues and suggestions are welcome!
Before submitting PRs, please ensure:
Pass type check:
pnpm typecheckPass format check:
pnpm format:checkPass unit tests:
pnpm test:unit
For new features, please open an issue for discussion before submitting a PR. PRs for features that are not a good fit for the project may be closed.
Star History
License
MIT © Jason Young
On this page
- CC Switch
- The All-in-One Manager for Claude Code, Claude Desktop, Codex, Gemini CLI, OpenCode, OpenClaw & Hermes Agent
- 🌐 The Only Official Website:
- ❤️Sponsor
- Why CC Switch?
- Screenshots
- Features
- Provider Management
- Proxy & Failover
- MCP, Prompts & Skills
- Usage & Cost Tracking
- Session Manager & Workspace
- System & Platform
- FAQ
- Documentation
- Quick Start
- Basic Usage
- MCP, Prompts, Skills & Sessions
- Download & Installation
- System Requirements
- Windows Users
- macOS Users
- Arch Linux Users
- Linux Users
- Design Principles
- Environment Requirements
- Development Commands
- Rust Backend Development
- Testing Guide
- Tech Stack
- Contributing
- Star History
- License
