Architecture
CCS is designed with simplicity and reliability in mind. The architecture follows YAGNI, KISS, and DRY principles.Core Components
Account Profiles
Isolated Claude instances with separate credentials and session data
OAuth Providers
CLIProxy-based providers (Gemini, Codex, Agy) with zero config
API Profiles
Settings-based profiles for GLM, Kimi, and custom providers
Profile Resolution
Smart profile detection that checks CLIProxy → Settings → Account profiles in order
Claude CLI Spawn
Spawns Claude CLI with resolved profile settings via
--settings flagProfile Mechanisms (Priority Order)
- CLIProxy hardcoded: gemini, codex, agy → OAuth-based, zero config
- CLIProxy variants:
config.cliproxysection → user-defined providers - Settings-based:
config.profilessection → GLM, Kimi - Account-based:
profiles.json→ isolated instances viaCLAUDE_CONFIG_DIR
Execution Flow
1
Parse Arguments
Smart detection of profile vs CLI flags
2
Resolve Profile
Check CLIProxy → Settings → Account profiles
3
Configure Environment
Set env vars, CLAUDE_CONFIG_DIR if needed
4
Spawn Claude
Execute
claude --settings <path> [args]Directory Structure
Design Principles
Non-Invasive
- Never modifies
~/.claude/settings.json - Uses
--settingsflag for delegation - Claude CLI manages its own state
Idempotent
- All install operations safe to run multiple times
- Profile creation handles existing directories
- No side effects on repeated runs
Cross-Platform Parity
- Same behavior on macOS, Linux, Windows
- Node.js handles platform differences
- Unified codebase for all platforms
Technology Stack
| Component | Technology |
|---|---|
| CLI | Node.js (ES modules) |
| Build | Bun + TypeScript |
| Dashboard | React + Vite |
| Package | npm |
Performance
| Operation | Time |
|---|---|
| Profile switch | < 10ms |
| First account activation | ~20-35ms |
| Subsequent activation | ~5-10ms |
| Dashboard startup | ~300ms |
