Skip to main content

Configuration Schema Reference

Complete reference for the current development config.yaml version 14 source. This does not claim release availability. Location: ~/.ccs/config.yaml Format: YAML Current development source version: 14

Version History


Root Schema


CLIProxy Configuration

cliproxy.backend

Type: String (original | plus) Priority: HIGH Purpose: Select CLIProxy backend variant
Behavior:
  • original: CLIProxyAPI (works for agy, claude, codex, gemini, iflow, kimi, xai)
  • plus: CCS-maintained CLIProxyAPIPlus community fork for plus-only providers. Legacy deleted-upstream Plus installs migrate safely to original
  • Backend-specific binaries stored in ~/.ccs/cliproxy/bin/original/ and ~/.ccs/cliproxy/bin/plus/
  • Generated local CLIProxy configs also select the matching CPAMC dashboard: upstream CPAMC for original, maintained CCS dashboard fork for plus
Provider Requirements:
  • Require backend: plus: kiro, cursor, gitlab, codebuddy, kilo, qoder, and deprecated ghcp compatibility
  • Work on either backend: agy, claude, codex, gemini, iflow, kimi, xai
Use provider: xai in configuration and variant definitions. grok is a CLI-only alias and must not be stored as a provider ID. Use Cases:
  • Use original for the stable default backend and the standard provider set
  • Use plus only when you need Kiro, Cursor, GitLab Duo, CodeBuddy, Kilo AI, Qoder, or deprecated GitHub Copilot compatibility
Related: --backend CLI flag, provider compatibility

cliproxy.management_panel_repository

Type: String Priority: ADVANCED Purpose: Override the CPAMC dashboard repository written to generated CLIProxy config
Behavior:
  • When omitted, backend: original uses router-for-me/Cli-Proxy-API-Management-Center
  • When omitted, backend: plus uses kaitranntt/Cli-Proxy-API-Management-Center
  • When set, this value is written to remote-management.panel-github-repository
  • CCS regenerates stale local CLIProxy config when the expected panel repository changes
Use Cases:
  • Pin Plus users to the CCS-maintained management dashboard fork
  • Test or maintain a private CPAMC fork without editing generated CLIProxy files
Related: cliproxy.backend, CLIProxy control panel

cliproxy.variants.<name>.target

Type: String (claude | droid) Priority: HIGH Purpose: Route this variant to an alternative CLI target
Behavior:
  • claude (default): Use Claude Code CLI
  • droid: Use Droid CLI (@factory/cli)
  • codex: Use OpenAI Codex CLI
  • Overridden by --target CLI flag
Also available on:
  • profiles.<name>.target (API profiles)
  • cliproxy.variants.<name>.target (CLIProxy variant profiles)
  • Composite variant configs
Not supported for: cliproxy, copilot, and account

cliproxy.variants.<name>.auth

Type: Object Priority: HIGH Purpose: Per-variant auth override
Behavior:
  • Overrides global cliproxy.auth for specific variant
  • Useful for different auth credentials per variant
  • Both keys optional (falls back to global)
Use Cases:
  • Separate auth for dev/prod variants
  • Per-team auth credentials
  • Testing with different API keys

cliproxy.variants.<name>.port

Type: Integer (1-65535, recommended: 8318-8417) Priority: HIGH Purpose: Port isolation for concurrent variants
Behavior:
  • Assigns unique port for variant isolation
  • Allows multiple variants to run simultaneously
  • Accepts any valid port (1-65535), recommended range: 8318-8417 for CCS variants
  • Default: Auto-assigned if not specified
Use Cases:
  • Run dev and prod variants concurrently
  • Isolate variants for different teams
  • Avoid port conflicts in multi-user environments

cliproxy.auth.api_key

Type: String Priority: MEDIUM Purpose: Global API key for CLIProxyAPI
Behavior:
  • Used for CLIProxyAPI authentication
  • Sent in x-api-key header
  • Can be overridden per-variant via variants.<name>.auth.api_key
  • Default: "ccs-internal-managed"
Security: Store securely, do not commit to version control

cliproxy.auth.management_secret

Type: String Priority: MEDIUM Purpose: Global management secret for CLIProxyAPI
Behavior:
  • Used for CLIProxyAPI management endpoints
  • Sent in x-management-secret header
  • Can be overridden per-variant via variants.<name>.auth.management_secret
  • Default: "ccs"
Use Cases:
  • Separate auth for management vs API operations
  • Enhanced security for admin endpoints

cliproxy.kiro_no_incognito

Type: Boolean Priority: MEDIUM Purpose: Disable incognito mode for Kiro provider
Behavior:
  • true: Use normal browser mode (default, saves cookies/session)
  • false: Force incognito mode
Use Cases:
  • Persistent AWS SSO login for Kiro
  • Avoid re-entering credentials on each auth
  • Development/testing with saved browser state
Related: --no-incognito CLI flag

cliproxy.routing.strategy

Type: String (round-robin | fill-first) Priority: MEDIUM Purpose: Persist the proxy-wide routing strategy CCS should prefer
Behavior:
  • round-robin: Spread requests across matching healthy accounts
  • fill-first: Drain one healthy account before touching backups
  • Default stays round-robin until you explicitly change it
Related: ccs cliproxy routing, dashboard /cliproxy routing guidance card

cliproxy.retry

Type: Object Priority: MEDIUM Purpose: Configure CLIProxy request retries globally
0 / 0 keeps retries disabled. Invalid persisted values fall back to 0 when CCS generates local CLIProxy configuration. These values apply to the whole CLIProxy target, not individual providers. Retrying 403 responses can consume additional quota in multi-account pools. For a local target, CCS persists this block, regenerates the local CLIProxy configuration, and attempts a live update. If live application fails, CCS reports a config-only result and keeps the generated values for the next proxy start. For a remote target, CCS applies and persists the values through the remote management API without writing local cliproxy.retry configuration. This is separate from max-retry-credentials, which caps the number of pool credentials attempted for a single request. Related: dashboard /cliproxy routing card, Account Pools

cliproxy.logging.enabled

Type: Boolean Priority: LOW Purpose: Enable CLIProxy logging to disk
Behavior:
  • false: No disk logging (default, prevents bloat)
  • true: Write logs to ~/.ccs/cliproxy/logs/
Warning: Logging can consume significant disk space. Enable only for debugging.

cliproxy.logging.request_log

Type: Boolean Priority: LOW Purpose: Enable detailed request logging
Behavior:
  • false: Log errors/warnings only
  • true: Log all HTTP requests/responses
  • Requires logging.enabled: true
Warning: Very verbose. Use only for troubleshooting specific issues.

CCS Logging Configuration

Top-level logging controls CCS-owned structured runtime logs. This is separate from cliproxy.logging, which controls CLIProxy runtime files.

logging.enabled

Type: Boolean Priority: MEDIUM Purpose: Enable CCS-owned structured runtime logging

logging.level

Type: String (error | warn | info | debug) Priority: MEDIUM Purpose: Minimum log level written to disk

logging.rotate_mb

Type: Integer Priority: LOW Purpose: Rotate the current log file when it reaches this size in MB

logging.retain_days

Type: Integer Priority: LOW Purpose: Keep archived log segments for this many days

logging.redact

Type: Boolean Priority: HIGH Purpose: Redact sensitive values before persistence

logging.live_buffer_size

Type: Integer Priority: LOW Purpose: Keep this many recent entries in memory for dashboard reads

cliproxy.token_refresh.enabled

Type: Boolean Priority: MEDIUM Purpose: Enable background token refresh worker
Behavior:
  • false: On-demand refresh only (5 min before expiry)
  • true: Background worker refreshes tokens at intervals
Use Cases:
  • Long-running services needing proactive refresh
  • Preventing mid-request token expiry
  • CI/CD environments with extended sessions

cliproxy.token_refresh.interval_minutes

Type: Integer (minutes) Priority: LOW Purpose: Background refresh check interval
Behavior:
  • Worker checks all tokens every N minutes
  • Only refreshes tokens approaching expiry

cliproxy.token_refresh.preemptive_minutes

Type: Integer (minutes) Priority: LOW Purpose: Refresh tokens expiring within N minutes
Behavior:
  • Tokens expiring within this window are refreshed
  • Higher values = more proactive refresh
  • Prevents UND_ERR_SOCKET errors from stale tokens

cliproxy.token_refresh.max_retries

Type: Integer Priority: LOW Purpose: Maximum refresh retry attempts
Behavior:
  • Retries on transient failures
  • Logs warning after max retries exceeded
  • Does not re-authenticate (requires user action)

cliproxy.token_refresh.verbose

Type: Boolean Priority: LOW Purpose: Enable debug logging for token refresh
Behavior:
  • Logs all refresh attempts to console
  • Useful for debugging token issues
  • Output: timestamps, providers, success/failure

cliproxy.oauth_model_alias

Type: Object Priority: HIGH Purpose: Store provider-scoped OAuth model aliases in the CCS unified config
Behavior:
  • cliproxy.oauth_model_alias is the CCS unified config key
  • CCS generates the upstream oauth-model-alias block inside local CLIProxy config from this structured input
  • Each provider maps to an ordered array of { name, alias, fork? }
  • name is the upstream model ID, alias is the client-visible model ID, and fork: true keeps both names visible when upstream supports it
  • Entries are deduplicated and replaced by client alias within each provider
  • Configured aliases replace matching generated aliases in place, while unmatched existing aliases and provider sections stay in order
  • Unknown provider sections are preserved during regeneration
Why This Matters:
  • Lets CCS keep user-owned aliases separate from generated upstream config
  • Prevents regeneration from deleting custom provider alias sections
  • Supports a Codex fast alias such as gpt-5.6-sol-fast without inventing a new upstream model ID
Generated Output: The local CLIProxy config still writes the upstream dashed section name:

cliproxy.payload

Type: Object Priority: HIGH Purpose: Store scoped request override rules for generated CLIProxy config
Behavior:
  • cliproxy.payload.override is an ordered array of scoped override rules
  • Each rule must define models and params
  • Model selectors can include name, optional protocol, and any extra selector constraints supported by CLIProxy
  • CCS preserves extra selector fields and extra payload subsections that are not part of the override list
  • A configured override replaces an existing one only when the full predicate matches aside from params
  • Distinct predicates remain distinct even if they target the same model
  • Matching configured rules win over existing generated-config rules during regeneration
Why This Matters:
  • Keeps manual payload sections intact while CCS refreshes generated config
  • Lets a Codex-specific alias pair with service_tier: priority in a stable way
  • Preserves extra match constraints instead of flattening them away
Generated Output: The local CLIProxy config writes the upstream payload block and keeps the match rule aligned with the alias:

CLIProxy Server Configuration

cliproxy_server.fallback.enabled

Type: Boolean Priority: HIGH Purpose: Enable fallback to local proxy if remote fails
Behavior:
  • true: Try local proxy if remote unreachable
  • false: Fail with PROXY_ERROR if remote fails
Use Cases:
  • Graceful degradation for network issues
  • Offline work capability
  • Testing without remote infrastructure
Related: --remote-only CLI flag

cliproxy_server.fallback.auto_start

Type: Boolean Priority: MEDIUM Purpose: Auto-start local proxy on fallback
Behavior:
  • false: Use existing local proxy only
  • true: Spawn local proxy if not running
Use Cases:
  • Seamless fallback without manual intervention
  • Ensure proxy always available

cliproxy_server.remote.management_key

Type: String Priority: MEDIUM Purpose: Separate management key for remote proxy
Behavior:
  • Used for management endpoints on remote proxy
  • Falls back to auth_token if not specified
  • Allows separate credentials for API vs management
Security: Use different keys for production environments

cliproxy_server.remote.timeout

Type: Integer (milliseconds) Priority: LOW Purpose: Health check timeout for remote proxy
Behavior:
  • Used for initial health check only
  • Higher values for slow networks
  • Does NOT affect API request timeouts
Related: --proxy-timeout CLI flag

OpenAI-Compatible Local Proxy Configuration

Controls the local Anthropic-compatible proxy used when a Claude-target API profile points at an OpenAI-compatible chat-completions endpoint.

proxy.port

Type: Integer Priority: MEDIUM Purpose: Preferred shared local proxy port
Behavior:
  • Used as the preferred starting port for compatible profiles
  • Legacy 3456 is treated as unset unless explicitly pinned at launch
  • Overridden by --port and proxy.profile_ports.<profile>

proxy.profile_ports

Type: Object Priority: HIGH Purpose: Exact per-profile local proxy port pins
Behavior:
  • Lets multiple OpenAI-compatible profiles run at the same time
  • ccs proxy status <profile> and ccs proxy activate <profile> report the actual running port

proxy.routing

Type: Object Priority: MEDIUM Purpose: Request-time routing for compatible proxy profiles
Behavior:
  • Supports profile:model, profile, and exact model-id selectors
  • Applies scenario routes for background, thinking, long-context, and web-search requests
  • longContextThreshold uses an approximate token estimate
Related: OpenAI-Compatible Provider Routing

Browser Automation Configuration

Controls Claude Browser Attach and Codex Browser Tools.

browser.claude

Type: Object Priority: HIGH Purpose: Configure Claude Browser Attach Fields:
  • enabled: turn the Claude attach lane on or off
  • policy: manual or auto
  • user_data_dir: Chrome user-data directory for attach mode
  • devtools_port: expected Chrome remote debugging port
  • eval_mode: disabled, readonly, or readwrite

browser.codex

Type: Object Priority: HIGH Purpose: Configure Codex Browser Tools Fields:
  • enabled: turn managed Codex browser tooling on or off
  • policy: manual or auto
  • eval_mode: disabled, readonly, or readwrite
Behavior:
  • New installs default both lanes to disabled/manual
  • manual hides browser tooling until a launch uses --browser
  • --no-browser suppresses tooling even when policy is auto
Related: Browser Automation

Quota Management Configuration

Supported Quota Providers

The following providers support quota tracking and rotation via ccs cliproxy quota and the quota_management section:

quota_management.mode

Type: String (auto | manual | hybrid) Priority: MEDIUM Purpose: Account selection strategy for OAuth providers
Behavior:
  • auto: CCS selects account based on quota/tier automatically
  • manual: Only use paused/forced_default settings
  • hybrid: Auto-selection respects manual overrides (recommended)

quota_management.auto.preflight_check

Type: Boolean Priority: HIGH Purpose: Check quota before starting Claude session
Behavior:
  • true: Check account quota before request, auto-switch if exhausted
  • false: Skip pre-flight check, rely on 429 error handling
Use Cases:
  • Prevent delays from exhausted accounts
  • Smoother multi-account experience

quota_management.auto.exhaustion_threshold

Type: Integer (0-100, percentage) Priority: LOW Purpose: Quota % below which account is “exhausted”
Behavior:
  • Accounts below threshold are skipped in rotation
  • Prevents using nearly-exhausted accounts

quota_management.auto.tier_priority

Type: Array of strings Priority: LOW Purpose: Account tier preference order
Behavior:
  • Accounts sorted by tier priority, then by quota %
  • Tiers not in list get lowest priority
Available Tiers:
  • ultra - Ultra subscription accounts
  • pro - Pro subscription accounts
  • free - Free tier accounts

quota_management.auto.cooldown_minutes

Type: Integer (minutes) Priority: LOW Purpose: Skip exhausted accounts for N minutes
Behavior:
  • Exhausted accounts are skipped for cooldown period
  • Prevents repeated failed attempts on same account

quota_management.manual.paused_accounts

Type: Array of strings Priority: HIGH Purpose: Accounts to skip in rotation
Behavior:
  • Listed accounts are never selected automatically
  • Set via ccs cliproxy pause <provider> <account>
  • Remove via ccs cliproxy resume <provider> <account>

quota_management.manual.forced_default

Type: String | null Priority: HIGH Purpose: Force specific account for all requests
Behavior:
  • null: Normal account rotation
  • <email>: Always use this account
Use Cases:
  • Testing specific account
  • Temporarily override rotation

quota_management.manual.tier_lock

Type: String | null Priority: MEDIUM Purpose: Only use accounts of specific tier
Behavior:
  • null: Use all tiers
  • paid: Only paid accounts
  • free: Only free accounts

Global Environment Variables

global_env.enabled

Type: Boolean Priority: MEDIUM Purpose: Enable global env var injection
Behavior:
  • true: Inject global_env.env into all non-Claude profiles
  • false: Disable feature
Use Cases:
  • Disable Claude Code telemetry for proxy providers
  • Set common env vars across all profiles

global_env.env

Type: Object (key-value pairs) Priority: MEDIUM Purpose: Environment variables for all non-Claude profiles
Behavior:
  • Applied to settings-based and CLIProxy profiles
  • NOT applied to native Claude or account-based profiles
  • Merged with profile-specific env vars
Default Values:
  • DISABLE_BUG_COMMAND: "1"
  • DISABLE_ERROR_REPORTING: "1"
  • DISABLE_TELEMETRY: "1"
Use Cases:
  • Disable Claude Code telemetry globally
  • Set API base URLs
  • Configure logging levels

WebSearch Configuration

websearch.providers.gemini.model

Type: String Priority: LOW Purpose: Gemini model for WebSearch feature
Behavior:
  • Used by WebSearch hook for third-party profiles
  • Free tier: 1000 requests/day
  • Falls back to OpenCode/Grok if fails
Available Models:
  • gemini-2.5-flash (default, fastest)
  • gemini-2.5-pro (more accurate)

websearch.providers.gemini.timeout

Type: Integer (seconds) Priority: LOW Purpose: Gemini CLI timeout for WebSearch
Behavior:
  • Max time for single WebSearch request
  • Prevents hanging on slow responses
  • Falls back to next provider on timeout

websearch.providers.opencode

Type: Object Priority: LOW Purpose: OpenCode provider configuration
Behavior:
  • Free provider via Zen platform
  • Requires OpenCode CLI installed
  • Fallback option after Gemini
Activation:
  • Set enabled: true
  • Install: npm install -g opencode

websearch.providers.grok

Type: Object Priority: LOW Purpose: Grok CLI provider configuration
Behavior:
  • Requires GROK_API_KEY environment variable
  • Paid API, better quality than free providers
  • Last fallback option
Activation:
  • Set enabled: true
  • Set GROK_API_KEY env var
  • Install: npm install -g @vibe-kit/grok-cli

Copilot Configuration (Deprecated)

Copilot configuration remains available for existing compatibility setups. New provider setup should prefer Codex or another active provider.

copilot.account_type

Type: String (individual | business | enterprise) Priority: LOW Purpose: GitHub Copilot subscription type
Behavior:
  • individual: Personal subscription
  • business: Enterprise/team subscription
  • enterprise: Enterprise subscription
Use Cases:
  • Billing/usage tracking
  • Feature access control

copilot.rate_limit

Type: Integer | null Priority: LOW Purpose: Rate limiting for Copilot API
Behavior:
  • null: No rate limiting
  • Integer: Seconds between requests
Use Cases:
  • Prevent API abuse
  • Control costs for business accounts

copilot.wait_on_limit

Type: Boolean Priority: LOW Purpose: Wait vs fail on rate limit
Behavior:
  • true: Wait until rate limit window resets
  • false: Fail with error immediately

Configuration Patterns

Priority Resolution

CCS resolves configuration values in this order:
  1. CLI Flags (highest priority)
  2. Environment Variables
  3. config.yaml
  4. Defaults (lowest priority)
Example:
Result: CLI flag wins, then env var, then config file

Variant Isolation Pattern

Run multiple variants concurrently without conflicts:
Usage:

Remote Proxy with Fallback Pattern

Graceful degradation for network issues:
Behavior:
  1. Try remote proxy at https://proxy.example.com:8443
  2. If unreachable after 5s, fall back to local proxy
  3. Auto-start local proxy if not running
  4. Use local proxy on port 8317

Thinking Configuration

Controls thinking/reasoning budget injection for CLIProxy providers.

thinking.mode

Type: String (auto | off | manual) Priority: HIGH Purpose: Thinking mode control
Behavior:
  • auto: Apply tier-based defaults (opus→high, sonnet→medium, haiku→low)
  • off: Disable thinking entirely
  • manual: Use explicit override value

thinking.override

Type: String | Integer Priority: MEDIUM Purpose: Manual override value for thinking budget
Behavior:
  • Used when mode: manual
  • Can be level name (e.g., “high”, “medium”, “low”) or numeric budget
  • Applies to all providers unless overridden

thinking.tier_defaults

Type: Object Priority: LOW Purpose: Tier-to-thinking level mapping
Behavior:
  • Maps Claude tier names to thinking level names
  • Used when mode: auto
  • Customizable per tier

thinking.provider_overrides

Type: Object Priority: LOW Purpose: Per-provider tier defaults
Behavior:
  • Overrides global tier defaults for specific providers
  • Useful for provider-specific configurations

thinking.show_warnings

Type: Boolean Priority: LOW Purpose: Show warnings when values are clamped
Behavior:
  • true: Show warning when budget values are adjusted
  • false: Silent clamping

Official Channels Configuration

Controls runtime-only auto-enable for Anthropic’s official Claude channels.

channels.selected

Type: Array of strings Priority: HIGH Purpose: Select which official channel plugins CCS auto-adds at launch
Behavior:
  • Accepted values: telegram, discord, imessage
  • all is accepted by the CLI helper, but config.yaml stores the explicit array
  • CCS adds --channels with every selected ready official plugin at runtime
  • Applies only to native Claude default and account sessions
  • Ignored for API-key profiles, CLIProxy, Copilot, Cursor proxy, and Droid target flows
  • iMessage is macOS-only
  • Telegram and Discord use Claude channel env files for bot tokens
Claude bot tokens are not stored in config.yaml. CCS writes them to Claude’s official channel env files: ~/.claude/channels/telegram/.env as TELEGRAM_BOT_TOKEN and ~/.claude/channels/discord/.env as DISCORD_BOT_TOKEN.

channels.unattended

Type: Boolean Priority: HIGH Purpose: Also add runtime --dangerously-skip-permissions
Behavior:
  • true: Adds --dangerously-skip-permissions only when at least one selected official channel is auto-enabled
  • false: Leaves permission mode unchanged
  • Explicit user permission flags override this default
This is runtime-only and high risk. CCS does not persist bypass permissions into Claude settings.

Image Analysis Configuration

Controls MCP-first image/PDF analysis for third-party launches.

image_analysis.enabled

Type: Boolean Priority: HIGH Purpose: Enable image analysis via CLIProxy
Behavior:
  • true: Expose the managed ImageAnalysis path when the runtime is healthy
  • false: Disable image analysis

image_analysis.timeout

Type: Integer (seconds) Priority: LOW Purpose: Timeout for vision analysis requests
Behavior:
  • Max time for single vision analysis request
  • Prevents hanging on slow responses

image_analysis.provider_models

Type: Object Priority: MEDIUM Purpose: Provider-to-model mapping for vision analysis
Behavior:
  • Maps provider names to vision model IDs
  • Customizable per provider
  • Defaults provided for all supported providers

image_analysis.fallback_backend

Type: String Priority: MEDIUM Purpose: Default backend for bridge-backed profiles that need image analysis

image_analysis.profile_backends

Type: Object Priority: MEDIUM Purpose: Override the resolved image-analysis backend for specific settings profiles

Dashboard Authentication

Optional username/password protection for the CCS dashboard.
See Dashboard Authentication for full setup guide.

dashboard_auth.enabled

Type: Boolean Priority: HIGH Purpose: Enable dashboard login requirement
Behavior:
  • false: Dashboard accessible without login (default)
  • true: Requires username/password to access dashboard

dashboard_auth.username

Type: String Priority: HIGH Purpose: Login username

dashboard_auth.password_hash

Type: String (bcrypt hash) Priority: HIGH Purpose: Bcrypt-hashed password
Generate hash:
Never store plain-text passwords. Always use bcrypt hash.

dashboard_auth.session_timeout_hours

Type: Integer Priority: LOW Purpose: Session duration before re-login required

Dashboard Auth Environment Variables

Environment variables override config.yaml values.

Continuity Configuration

Available since v9 (CCS v7.51.0)
Cross-profile continuity inheritance lets API profiles and CLIProxy variant profiles reuse an account profile’s workspace context (CLAUDE_CONFIG_DIR). This shares conversation history, project files, and session state across profiles, which means the inherited profile is no longer isolated from that source account lane.

continuity.inherit_from_account

Type: Object (map of profile names to account names) Priority: MEDIUM Purpose: Inherit workspace continuity from an account profile
Behavior:
  • Maps a non-account profile name to an account profile name
  • When the mapped profile runs with target: claude, it uses the account’s CLAUDE_CONFIG_DIR
  • Conversation history, project state, and sessions are shared with that account profile
  • The inherited profile and source account now reuse the same underlying Claude config directory
  • Only applies when target='claude' — has no effect on target: droid profiles
  • Never applies to account profiles themselves
Supported profile types:
  • Settings-based profiles (profiles.<name>)
  • CLIProxy variant profiles (cliproxy.variants.<name>)
  • Built-in API presets (glm, albb, etc.)
Not supported for:
  • Account profiles (type: account)
  • Copilot profiles
Example use case — share session context between Claude and GLM:
Legacy support: The root-level continuity_inherit_from_account key in config.json is still supported for backward compatibility but deprecated. Migrate to continuity.inherit_from_account in config.yaml.

Migration from v12 to v13

Version 13 adds OpenAI-compatible local proxy settings and browser automation settings. Migration is automatic. Changes:
  • Added proxy section for local compatible-provider proxy ports and routing
  • Added browser section for Claude Browser Attach and Codex Browser Tools
  • New installs default browser lanes to disabled/manual
Required Action: None. Run ccs doctor --fix if you want CCS to rewrite the current config file with the latest commented template.

Migration from v8 to v9

Version 9 adds cross-profile continuity inheritance. Migration is automatic. Changes:
  • Added continuity section with inherit_from_account mapping
  • Config version bumped from 8 to 9
Action Required:
  • None (automatic migration with empty defaults)
  • Optional: Configure continuity.inherit_from_account to share workspace context between profiles

Migration from v7 to v8

Version 8 adds thinking/reasoning budget and image analysis configuration. Migration is automatic. Changes:
  • Added thinking section for reasoning budget control
  • Added image_analysis section for vision model configuration
  • Updated config version from 7 to 8
Action Required:
  • None (automatic migration with defaults)
  • Optional: Customize thinking levels or vision models

Migration from v6 to v7

Version 7 adds quota management for hybrid auto+manual account control. Migration is automatic. Changes:
  • Added quota_management section
  • Added tier-based quota prioritization
  • Added manual account controls (pause/force/tier-lock)
Action Required:
  • None (automatic migration with defaults)
  • Optional: Configure quota management preferences

Migration from v5 to v6

Version 6 adds customizable auth tokens. Migration is automatic. Changes:
  • Added cliproxy.auth.api_key (default: "ccs-internal-managed")
  • Added cliproxy.auth.management_secret (default: "ccs")
  • Added cliproxy.variants.<name>.auth for per-variant override
  • Added cliproxy_server.remote.management_key for separate management auth
Action Required:
  • None (automatic migration with defaults)
  • Optional: Customize auth keys for enhanced security

Validation Rules

CCS validates configuration on load. Common errors: Schema Errors:
  • version must be integer >= 1
  • Ports must be 1-65535
  • Boolean fields reject non-boolean values
Semantic Errors:
  • Variant names must not conflict with built-in providers
  • Profile names cannot be reserved words
  • Email addresses must be valid format
  • Hostnames must be valid DNS/IP
Recovery:
  • Run ccs doctor --fix for auto-repair
  • Run ccs migrate for version upgrades
  • Delete corrupt config and run ccs setup

Docker Deployment Configuration

Auto-generated section written by ccs docker up. Stores paths and defaults for the Docker deployment stack.

docker.compose_file

Type: String (file path) Priority: LOW Purpose: Path to the generated Docker Compose file
Behavior:
  • Auto-written by ccs docker up
  • Points to the bundled compose file in ~/.ccs/docker/
  • Override only if using a custom compose setup

docker.host

Type: String | null Priority: MEDIUM Purpose: Default SSH target for remote Docker operations
Behavior:
  • null: All ccs docker commands target localhost
  • "user@host": All ccs docker commands default to remote target
  • Overridden by --host CLI flag per-command

Full Docker Section Example

The docker section is auto-generated by ccs docker up or ccs docker config. Manual editing is rarely needed.