Documentation Index
Fetch the complete documentation index at: https://docs.ccs.kaitran.ca/llms.txt
Use this file to discover all available pages before exploring further.
Composite Variants
Composite variants let you assign different CLIProxy providers to each model tier (opus/sonnet/haiku). For example: Codex for opus, Claude for sonnet, and Codex Mini for haiku — each with its own fallback and thinking budget. CLIProxy variants are user-defined provider configurations layered on top of a base provider. Simple variants inherit all settings from a base provider with optional overrides. Composite variants extend this by assigning different providers per model tier.Simple Variants
Create a variant from a base CLIProxy provider:- Custom nickname
- Model override
- Droid target routing:
ccs cliproxy create my-codex --provider codex --target droid
~/.ccs/config.yaml under cliproxy.variants and become available as profile names:
Composite Variants
Composite variants let you assign different CLIProxy providers to each model tier (opus/sonnet/haiku). For example: Codex for opus, Claude for sonnet, and Codex Mini for haiku — each with its own fallback and thinking budget.Quick Start
How It Works
- Each tier (opus/sonnet/haiku) maps independently to a provider + model pair
default_tierdetermines which tierANTHROPIC_MODELresolves to when no tier is specified- Routing uses the root CLIProxy URL with model-based routing (not provider-specific URLs)
- Settings written to
~/.ccs/composite-<name>.settings.json
Type Definition
CLI Commands
Fallback Logic
Each tier supports an optionalfallback block. On provider error (4xx/5xx, quota exceeded, rate limit, ECONNREFUSED):
- Detect which tier failed via model name in stderr
- Apply fallback
provider+modelfor that tier only - Retry the request with the updated config
Per-Tier Thinking
Override the thinking budget independently per tier viathinking in CompositeTierConfig.
Priority (highest to lowest):
- CLI
--thinkingflag - Per-tier
thinkingin composite config - Global
thinkingconfig - Provider defaults
xhigh, high, medium, off, or a numeric token budget string.
Dashboard CRUD
| Method | Endpoint | Notes |
|---|---|---|
POST | /api/cliproxy | type: composite, all 3 tiers required |
PUT | /api/cliproxy/:name | Partial tier update supported |
DELETE | /api/cliproxy/:name | Checks for active sessions before removing |
GET | /api/cliproxy | Lists all variants with type, tiers, and port |
Validation Rules
- All 3 tiers required on create; partial updates allowed on edit
- Each tier must have a valid
providerand non-emptymodel - Circular fallback detection enforced at save time
kiroandghcpproviders require the Plus backend
Switch to the Plus backend if you need kiro or ghcp in any tier: set
cliproxy.backend: plus in ~/.ccs/config.yaml.Storage
| Path | Purpose |
|---|---|
~/.ccs/config.yaml | Variant definition under cliproxy.variants[name] |
~/.ccs/composite-<name>.settings.json | Generated runtime settings file |
