Ccs
Switch between Claude accounts, Gemini, Copilot, OpenRouter (300+ models) via CLIProxyAPI OAuth proxy. Visual dashboard, remote proxy support, WebSearch fallback. Zero-config to production-ready.
Install / Use
/learn @kaitranntt/CcsQuality Score
Category
Development & EngineeringSupported Platforms
README
CCS - Claude Code Switch

The universal AI profile manager for Claude Code.
Run Claude, Gemini, GLM, and any Anthropic-compatible API - concurrently, without conflicts.
Features & Pricing | Documentation Hub
</div> <br>The Three Pillars
| Capability | What It Does | Manage Via | |------------|--------------|------------| | Multiple Claude Accounts | Run work + personal Claude subs simultaneously | Dashboard | | OAuth Providers | Gemini, Codex, Antigravity - zero API keys needed | Dashboard | | API Profiles | GLM, Kimi, or any Anthropic-compatible API | Dashboard |
<br>Quick Start
Looking for the full setup guide, command reference, provider guides, or troubleshooting? Start at https://docs.ccs.kaitran.ca.
Contribute And Report Safely
- Contributing guide: CONTRIBUTING.md
- Starter work: good first issue, help wanted
- Questions: open a question issue
- Security reports: SECURITY.md and the private advisory form
1. Install
npm install -g @kaitranntt/ccs
<details>
<summary>Alternative package managers</summary>
yarn global add @kaitranntt/ccs # yarn
pnpm add -g @kaitranntt/ccs # pnpm (70% less disk space)
bun add -g @kaitranntt/ccs # bun (30x faster)
</details>
2. Open Dashboard
ccs config
# Opens a local browser URL
CCS uses the runtime's system-default bind. If that bind is reachable beyond loopback, the CLI also prints bind/network details plus an auth reminder.
Force all-interface binding for remote devices:
ccs config --host 0.0.0.0
# Terminal prints the reachable URLs to open from the other device
If you expose the dashboard beyond localhost, protect it first with ccs config auth setup.
Use ccs config --host 127.0.0.1 to force local-only binding.
Dashboard updates hub: http://localhost:3000/updates
Want to run the dashboard in Docker or pull the prebuilt image? See docker/README.md.
3. Configure Your Accounts
The dashboard provides visual management for all account types:
- Claude Accounts: Isolation-first by default (work, personal, client), with explicit shared context opt-in
- OAuth Providers: One-click auth for Gemini, Codex, Antigravity, Kiro, Copilot
- AI Providers: Configure Gemini, Codex, Claude, Vertex, and OpenAI-compatible API keys under
CLIProxy -> AI Providers - API Profiles: Configure GLM, Kimi, OpenRouter, and other Anthropic-compatible APIs as CCS-native profiles
- Factory Droid: Track Droid install location and BYOK settings health
- Updates Center: Track support rollouts (Droid target, CLIProxy provider changes, WebSearch integrations)
- Health Monitor: Real-time status across all profiles
- Language Switcher: Toggle dashboard locale between English, Simplified Chinese, and Vietnamese
Analytics Dashboard

Live Auth Monitor

CLI Proxy API & Copilot Integration


WebSearch Fallback

Built-in Providers
| Provider | Auth Type | Command | Best For |
|----------|-----------|---------|----------|
| Claude | Subscription | ccs | Default, strategic planning |
| Gemini | OAuth | ccs gemini | Zero-config, fast iteration |
| Codex | OAuth | ccs codex | Code generation |
| Copilot | OAuth | ccs copilot or ccs ghcp | GitHub Copilot models |
| Cursor IDE | Local Token | ccs cursor | Cursor subscription models via local daemon |
| Kiro | OAuth (AWS default) | ccs kiro | AWS CodeWhisperer (Claude-powered) |
| Antigravity | OAuth | ccs agy | Alternative routing |
| OpenRouter | API Key | ccs openrouter | 300+ models, unified API |
| Ollama | Local | ccs ollama | Local open-source models, privacy |
| llama.cpp | Local | ccs llamacpp | Local GGUF inference via llama.cpp server |
| Ollama Cloud | API Key | ccs ollama-cloud | Cloud-hosted open-source models |
| GLM | API Key | ccs glm | Cost-optimized execution |
| KM (Kimi API) | API Key | ccs km | Long-context, thinking mode |
| Kimi (OAuth) | OAuth | ccs kimi | Device-code OAuth via CLIProxy |
| Azure Foundry | API Key | ccs foundry | Claude via Microsoft Azure |
| Minimax | API Key | ccs mm | M2 series, 1M context |
| DeepSeek | API Key | ccs deepseek | V3.2 and R1 reasoning |
| Novita AI | API Key | ccs api create --preset novita | Anthropic-compatible Novita endpoint for Claude Code |
| Qwen (OAuth) | OAuth | ccs qwen | Qwen Code via CLIProxy |
| Qwen API | API Key | ccs api create --preset qwen | DashScope Anthropic-compatible API |
| Alibaba Coding Plan | API Key | ccs api create --preset alibaba-coding-plan | Model Studio Coding Plan endpoint |
OpenRouter Integration (v7.0.0): CCS v7.0.0 adds OpenRouter with interactive model picker, dynamic discovery, and tier mapping (opus/sonnet/haiku). Create via ccs api create --preset openrouter or dashboard.
Alibaba Coding Plan Integration: Configure via ccs api create --preset alibaba-coding-plan (or preset alias alibaba) with Coding Plan keys (sk-sp-...) and endpoint https://coding-intl.dashscope.aliyuncs.com/apps/anthropic.
Ollama Integration: Run local open-source models (qwen3-coder, gpt-oss:20b) with full privacy. Use ccs api create --preset ollama - requires Ollama v0.14.0+ installed. For cloud models, use ccs api create --preset ollama-cloud.
Copilot config behavior: Opening the dashboard or other read-only Copilot endpoints does not rewrite
~/.ccs/copilot.settings.json. If CCS detects deprecated Copilot model IDs such asraptor-mini, it shows warnings immediately and only persists replacements when you explicitly save the Copilot configuration.
llama.cpp Integration: Run a local llama.cpp OpenAI-compatible server and create a profile with ccs api create --preset llamacpp. CCS defaults to http://127.0.0.1:8080, matching the standard llama.cpp server port.
Azure Foundry: Use ccs api create --preset foundry to set up Claude via Microsoft Azure AI Foundry. Requires Azure resource and API key from ai.azure.com.

OAuth providers authenticate via browser on first run. Tokens are cached in
~/.ccs/cliproxy/auth/.
Kiro / Copilot account naming: Manual nicknames are optional. If the provider does not expose an email, CCS derives a safe internal identifier automatically and you can rename it later.
AI Providers dashboard: Configure CLIProxy-managed API key families at
ccs config->CLIProxy->AI Providers. UseAPI Profilesonly for CCS-native Anthropic-compatible profiles.
Powered by:
- CLIProxyAPIPlus - Extended OAuth proxy with Kiro (@fuko2935, @Ravens2121) and Copilot (@em4go) support
- CLIProxyAPI - Core OAuth proxy for Gemini, Codex, Antigravity
- copilot-api - GitHub Copilot API integration
<br>[!TIP] Need more? CCS supports any Anthropic-compatible API. Create custom profiles for self-hosted LLMs, enterprise gateways, or alternative providers. See API Profiles documentation.
Usage
Basic Commands
ccs # Default Claude session
ccs gemini # Gemini (OAuth)
ccs codex # OpenAI Codex (OAuth)
ccs cursor # Cursor IDE integration (token import + local daemon)
ccs kiro # Kiro/AWS CodeWhisperer (OAuth)
ccs ghcp # GitHub Copilot (OAuth device flow)
ccs agy # Antigravity (OAuth)
ccs qwen # Qwen Code (OAuth via CLIProxy)
ccs ollama # Local Ollama (no API key needed)
ccs llamacpp # Local llama.cpp (no API key needed)
ccs glm # GLM (API key)
ccs km # Kimi API profile (API key)
ccs api create --preset alibaba-coding-plan # Alibaba Coding Plan profile
ccs api discover --register # Auto-register orphan *.settings.json
ccs api copy glm glm-backup # Duplicate profile config + settings
ccs api export glm --out ./glm.ccs-profile.json # Export for cross-device transfer
ccs api import ./glm.ccs-profile.json # Import exported profile bundle
Runtime Aliases (built-in bins / argv[0] pattern)
Built-in Droid runtime aliases are installed with the package:
ccs-droid glm # explicit alias
ccsd glm # legacy shortcut
Need additional alias names? First create the matching symlink or another launcher that
preserves the invoked basename, then map that name with CCS_TARGET_ALIASES (preferred) or legacy
CCS_DROID_ALIASES:
ln -s "$(command -v ccs)" /usr/local/bin/mydroid
CCS_TARGET_ALIASES='droid=mydroid'
# Legacy fallback still supported:
CCS
