kaitranntt 4ccde8a3f0 fix(auth): use unified config for account profile touch in ccs.ts
Account profiles in unified config mode were failing with "Profile not found"
because touchProfile() only checked legacy profiles.json. Now checks unified
config first with hasAccountUnified() and calls touchAccountUnified() when
the profile exists there, falling back to legacy touchProfile() otherwise.

Fixes #98
2025-12-14 01:17:22 -05:00
2025-12-13 08:05:02 +00:00
2025-12-14 06:08:27 +00:00

CCS - Claude Code Switch

CCS Logo

The universal AI profile manager for Claude Code.

Run Claude, Gemini, GLM, and any Anthropic-compatible API - concurrently, without conflicts.

License npm PoweredBy

Features & Pricing | Documentation


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

Quick Start

1. Install

npm install -g @kaitranntt/ccs
Alternative package managers
yarn global add @kaitranntt/ccs    # yarn
pnpm add -g @kaitranntt/ccs        # pnpm (70% less disk space)
bun add -g @kaitranntt/ccs         # bun (30x faster)

2. Open Dashboard

ccs config
# Opens http://localhost:3000

3. Configure Your Accounts

The dashboard provides visual management for all account types:

  • Claude Accounts: Create isolated instances (work, personal, client)
  • OAuth Providers: One-click auth for Gemini, Codex, Antigravity
  • API Profiles: Configure GLM, Kimi with your keys
  • Health Monitor: Real-time status across all profiles

Analytics (Light/Dark Theme)

Analytics Light

Analytics Dark

API Profiles & OAuth Providers

API Profiles

CLIProxy


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
Antigravity OAuth ccs agy Alternative routing
GLM API Key ccs glm Cost-optimized execution
Kimi API Key ccs kimi Long-context, thinking mode

OAuth providers authenticate via browser on first run. Tokens are cached in ~/.ccs/cliproxy/auth/.

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 agy       # Antigravity (OAuth)
ccs gemini    # Gemini (OAuth)
ccs glm       # GLM (API key)

Parallel Workflows

Run multiple terminals with different providers:

# Terminal 1: Planning (Claude Pro)
ccs work "design the authentication system"

# Terminal 2: Execution (GLM - cost optimized)
ccs glm "implement the user service from the plan"

# Terminal 3: Review (Gemini)
ccs gemini "review the implementation for security issues"

Multi-Account Claude

Create isolated Claude instances for work/personal separation:

ccs auth create work

# Run concurrently in separate terminals
ccs work "implement feature"    # Terminal 1
ccs  "review code"              # Terminal 2 (personal account)

Maintenance

Health Check

ccs doctor

Verifies: Claude CLI, config files, symlinks, permissions.

Update

ccs update              # Update to latest
ccs update --force      # Force reinstall
ccs update --beta       # Install dev channel

Sync Shared Items

ccs sync

Re-creates symlinks for shared commands, skills, and settings.


Configuration

CCS auto-creates config on install. Dashboard is the recommended way to manage settings.

Config location: ~/.ccs/config.yaml

Custom Claude CLI path

If Claude CLI is installed in a non-standard location:

export CCS_CLAUDE_PATH="/path/to/claude"              # Unix
$env:CCS_CLAUDE_PATH = "D:\Tools\Claude\claude.exe"   # Windows
Windows symlink support

Enable Developer Mode for true symlinks:

  1. SettingsPrivacy & SecurityFor developers
  2. Enable Developer Mode
  3. Reinstall: npm install -g @kaitranntt/ccs

Without Developer Mode, CCS falls back to copying directories.


Documentation

Topic Link
Installation docs.ccs.kaitran.ca/getting-started/installation
Configuration docs.ccs.kaitran.ca/getting-started/configuration
OAuth Providers docs.ccs.kaitran.ca/providers/oauth-providers
Multi-Account Claude docs.ccs.kaitran.ca/providers/claude-accounts
API Profiles docs.ccs.kaitran.ca/providers/api-profiles
CLI Reference docs.ccs.kaitran.ca/reference/cli-commands
Architecture docs.ccs.kaitran.ca/reference/architecture
Troubleshooting docs.ccs.kaitran.ca/reference/troubleshooting

Uninstall

npm uninstall -g @kaitranntt/ccs
Alternative package managers
yarn global remove @kaitranntt/ccs
pnpm remove -g @kaitranntt/ccs
bun remove -g @kaitranntt/ccs

Philosophy

  • YAGNI: No features "just in case"
  • KISS: Simple, focused implementation
  • DRY: One source of truth (config)

Contributing

See CONTRIBUTING.md.


License

MIT License - see LICENSE.

S
Description
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.
Readme MIT
33 MiB
Languages
TypeScript 81.4%
HTML 8.1%
JavaScript 7.1%
Swift 1.7%
Shell 1%
Other 0.6%