Files
ccs/docs/codebase-summary.md
T

11 KiB

CCS Codebase Summary

Overview

CCS (Claude Code Switch) is a TypeScript-based CLI tool that provides instant profile switching between multiple AI models (Claude Sonnet 4.5, GLM 4.6, GLMT, and Kimi). The project features a comprehensive architecture with TypeScript source, React UI dashboard, cross-platform shell scripts, and extensive automation. Current version includes a modern React 19 dashboard with real-time WebSocket integration, Vite build system, and shadcn/ui components.

Repository Structure

ccs/
├── src/                      # TypeScript source code (43 files)
│   ├── ccs.ts               # Main entry point (593 lines)
│   ├── commands/            # Modular command handlers (7 files)
│   ├── auth/                # Authentication system (3 files)
│   ├── cliproxy/            # CLIProxy integration (6 files)
│   ├── delegation/          # AI delegation system (6 files)
│   ├── glmt/                # GLMT thinking mode (7 files)
│   ├── management/          # System management (5 files)
│   ├── utils/               # Utilities (6 files)
│   └── types/               # TypeScript definitions (6 files)
├── ui/                      # React 19 Dashboard (Vite + shadcn/ui)
│   ├── src/
│   │   ├── App.tsx          # Main React app
│   │   ├── components/      # UI components
│   │   │   ├── ui/          # shadcn/ui components
│   │   │   └── *.tsx        # Custom components
│   │   ├── hooks/           # React hooks
│   │   ├── lib/             # Utilities
│   │   └── pages/           # Route pages
│   ├── public/              # Static assets
│   ├── package.json         # Dependencies
│   └── vite.config.ts       # Vite configuration
├── lib/                     # Cross-platform scripts
│   ├── ccs                  # Bash bootstrap
│   └── ccs.ps1              # PowerShell bootstrap
├── scripts/                 # Build and automation
│   ├── build.js             # TypeScript compilation
│   ├── postinstall.js       # Auto-configuration
│   └── sync-version.js      # Version sync
├── tests/                   # Test suites
│   ├── unit/                # Unit tests
│   ├── npm/                 # Package tests
│   └── native/              # Native install tests
└── docs/                    # Documentation
    ├── project-overview-pdr.md
    ├── code-standards.md
    ├── system-architecture.md
    └── project-roadmap.md

Key Components

TypeScript Core (src/)

  1. Main Entry Point (src/ccs.ts)

    • Command parsing and routing
    • Profile detection logic
    • Delegation flag handling (-p)
    • GLMT proxy lifecycle management
  2. Modular Commands (src/commands/)

    • version-command.ts: Version display
    • help-command.ts: Comprehensive help system
    • install-command.ts: Installation workflows
    • doctor-command.ts: System diagnostics
    • sync-command.ts: Configuration synchronization
    • shell-completion-command.ts: Shell completion
    • update-command.ts: Version updates with beta channel support
  3. Authentication System (src/auth/)

    • Profile detection and validation
    • Multi-account management
    • Profile registry operations
  4. CLIProxy Integration (src/cliproxy/)

    • OAuth-based provider integration
    • Binary manager for cliproxy executables, including the new version pin feature (see Recent Changes)
    • Auth handler for OAuth flows
    • Model Catalog: Manages available models (Gemini, Codex, AGY, Qwen, Iflow)
  5. AI Delegation (src/delegation/)

    • Headless Claude execution
    • Stream-JSON parsing
    • Real-time tool tracking
    • Session persistence
  6. GLMT System (src/glmt/)

    • HTTP proxy for thinking mode
    • Format transformation (Anthropic ↔ OpenAI)
    • Reasoning content handling
    • Debug logging
  7. Management (src/management/)

    • System diagnostics
    • Instance management
    • Shared data management
    • Recovery operations
  8. Utilities (src/utils/)

    • Cross-platform helpers
    • Shell execution
    • Package manager detection
    • Update checking

React Dashboard (ui/)

Technology Stack:

  • React 19 with TypeScript
  • Vite for fast development and building
  • shadcn/ui component library (Radix UI + Tailwind)
  • TanStack Query for server state
  • Real-time WebSocket integration
  • Dark mode support

Key Pages:

  • Dashboard: Overview, status, usage analytics, CLIProxy controls, and system health monitoring
  • API Profiles: Model configuration
  • CLIProxy: OAuth provider setup
  • Accounts: Account management
  • Health: System diagnostics
  • Settings: Configuration
  • Shared: Data sharing management

Components:

  • Modern UI with responsive design
  • Real-time updates via WebSocket
  • Professional theme with consistent styling
  • Accessibility-compliant components

Cross-Platform Scripts (lib/)

  1. Bash Bootstrap (lib/ccs)

    • Entrypoint for Unix/macOS
    • Delegates to Node.js via npx
    • Argument passthrough support
  2. PowerShell Bootstrap (lib/ccs.ps1)

    • Windows PowerShell support
    • Parameter splatting for arguments
    • Cross-platform parity with bash

Build & Automation (scripts/)

  1. Build System

    • TypeScript compilation to dist/
    • Source maps and declarations
    • Linting and formatting
  2. Post-Installation

    • Auto-configuration creation
    • Directory structure setup
    • Migration for version upgrades
  3. Quality Gates

    • Type checking (strict mode)
    • ESLint validation
    • Test execution
    • Code formatting

Technology Stack

Core Technologies

  • TypeScript 5.3+: 100% type coverage, zero any types
  • Node.js 14+: Runtime environment
  • Bun: Package manager (10-25x faster than npm)
  • React 19: Modern UI with concurrent features
  • Vite: Fast build tool and dev server

UI Libraries

  • shadcn/ui: Modern component library
  • Radix UI: Accessible component primitives
  • Tailwind CSS: Utility-first styling
  • Lucide React: Icon library
  • React Router: Client-side routing
  • TanStack Query: Server state management

Development Tools

  • ESLint: Code linting with strict rules
  • Prettier: Code formatting
  • Mocha: Test framework
  • Chai: Assertion library
  • Semantic Release: Automated versioning

Key Features

Profile Management

  • Settings-based profiles: glm, glmt, kimi
  • Account-based profiles: work, personal
  • CLIProxy providers: OAuth-based integration
  • Instant switching: Zero-downtime profile changes

AI Delegation System

  • Headless execution: -p flag for delegation
  • Real-time tracking: 13+ Claude Code tools
  • Stream-JSON parsing: Live tool visibility
  • Session persistence: :continue support
  • Cost tracking: Usage statistics

GLMT Thinking Mode

  • Embedded proxy: HTTP server for format conversion
  • Reasoning support: GLM 4.6 with thinking blocks
  • Debug logging: File-based logging with timestamps
  • Configuration: Temperature, max tokens, timeouts

Web Dashboard

  • Real-time UI: WebSocket for live updates
  • Modern interface: Responsive, accessible design
  • Configuration: Visual profile and settings management
  • Health monitoring: System diagnostics dashboard
  • Dark mode: Theme switching support

Cross-Platform Support

  • Universal: macOS, Linux, Windows
  • Shell completion: Bash, Zsh, Fish, PowerShell
  • Consistent behavior: Unified across platforms
  • Windows fallbacks: Copy when symlinks unavailable

Development Workflow

  • TypeScript strict: Maximum type safety
  • Automated releases: Semantic versioning
  • Quality gates: Pre-commit validation
  • Comprehensive tests: Unit, integration, native

Recent Changes

Version Pin Feature (Issue #88)

  • Description: Users can now explicitly pin a specific version of CLIProxy using ccs cliproxy --install <version>. This creates a .version-pin file, preventing automatic updates and ensuring stability for specific project requirements.

Profile Persistence Fix (Issue #82)

  • Description: Relaxed configuration validation rules to prevent unintended data loss when handling user profiles, improving robustness and user experience.

UI Dashboard Capabilities

  • Description: The web-based UI now provides comprehensive dashboard functionalities, including usage analytics, CLIProxy controls, and system health monitoring, enhancing user visibility and control.

Multi-Provider Support

  • Description: The CLIProxy now supports multiple AI model providers, including Gemini, Codex, AGY, Qwen, and Iflow, offering greater flexibility and choice for users.

Unified Config System

  • Description: A consolidated configuration system ensures consistent management of settings, feature flags, and secrets across the CLI and its components.

Architecture Patterns

Modular Design

  • Single responsibility: Each module focused
  • Clear interfaces: TypeScript contracts
  • Dependency injection: Testable architecture
  • Error boundaries: Graceful error handling

Configuration Management

  • Unified Config System: Consolidated management of settings, feature flags, and secrets across the CLI and its components (see Recent Changes).
  • Shared data: Symlinks for commands, skills, agents
  • Isolated state: Profile-specific sessions, logs
  • Auto-recovery: Self-healing configurations
  • Migration support: Seamless upgrades

Performance Optimization

  • Lazy loading: On-demand initialization
  • Stream processing: Real-time parsing
  • Minimal overhead: Direct CLI execution
  • Efficient builds: Vite and Bun optimization

Statistics (as of v4.5.0)

  • Total files: 163 files
  • TypeScript files: 43 source files
  • Lines of code: ~8,000 lines TypeScript
  • Test coverage: 90%+ critical paths
  • Platform support: 3 OS (macOS, Linux, Windows)
  • Shell completions: 4 shells supported
  • AI models: 4+ models integrated
  • Languages: TypeScript, React, Bash, PowerShell

Development Standards

Code Quality

  • Zero any types: 100% type coverage
  • Strict ESLint: All errors enforced
  • Pre-commit hooks: Automated validation
  • Semantic releases: Automated versioning

Testing Strategy

  • Unit tests: Module isolation
  • Integration tests: Cross-module flows
  • Platform tests: OS-specific behavior
  • Native tests: Shell script validation

Documentation

  • Living docs: Updated with releases
  • Code examples: Real usage patterns
  • Architecture docs: System design
  • API references: Complete coverage

Future Roadmap

v4.6-v4.7 (UI Enhancements)

  • Sidebar redesign with modern UX
  • Enhanced dashboard visualizations
  • Real-time collaboration features
  • Mobile-responsive improvements

v5.0+ (Next Generation)

  • AI-powered automation
  • Plugin system
  • Enterprise features
  • Ecosystem expansion

This codebase demonstrates a mature, well-architected TypeScript application with modern React UI, comprehensive testing, and cross-platform support. The modular design enables easy maintenance and extension while maintaining high quality standards.