Skip to main content

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 flag

Profile Mechanisms (Priority Order)

  1. CLIProxy hardcoded: gemini, codex, agy → OAuth-based, zero config
  2. CLIProxy variants: config.cliproxy section → user-defined providers
  3. Settings-based: config.profiles section → GLM, Kimi
  4. Account-based: profiles.json → isolated instances via CLAUDE_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

~/.ccs/
├── config.json           # Main configuration
├── profiles.json         # Account profile metadata
├── glm.settings.json     # GLM settings file
├── kimi.settings.json    # Kimi settings file

├── instances/            # Account profile instances
│   ├── work/
│   │   ├── .credentials.json
│   │   ├── session-env/
│   │   └── ...
│   └── personal/

├── cliproxy/             # OAuth provider data
│   └── auth/
│       ├── user@email-projectid.json      # gemini
│       ├── codex-user@email.json          # codex
│       └── antigravity-user_email.json    # antigravity

└── shared/               # Symlinked across profiles
    ├── commands/
    ├── skills/
    └── agents/

Design Principles

Non-Invasive

  • Never modifies ~/.claude/settings.json
  • Uses --settings flag 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

ComponentTechnology
CLINode.js (ES modules)
BuildBun + TypeScript
DashboardReact + Vite
Packagenpm

Performance

OperationTime
Profile switch< 10ms
First account activation~20-35ms
Subsequent activation~5-10ms
Dashboard startup~300ms