Background
Heavy AI coding users increasingly rely on multiple AI providers and subscriptions:
- Claude Max
- Z.ai / GLM
- OpenAI
- Gemini
- Codex
- OpenRouter
A single developer may also have multiple machines and multiple active coding environments.
Current tooling optimizes for provider integration, but not for subscription management or developer workflow.
As a result, users face several recurring problems:
- Manual login/logout
- Remembering which provider/account has remaining quota
- Maintaining duplicated configuration across machines
- Switching providers when quota is exhausted
- Fragmented MCP and Claude Code settings
⸻
Goal
Provide a lightweight wrapper around AI coding CLIs that offers a unified developer experience without acting as an API proxy or account pool.
The project should manage profiles, not requests.
It should never aggregate multiple Claude subscriptions into a shared backend.
⸻
Non Goals
The project will NOT:
- Implement request routing
- Pool multiple Claude subscriptions
- Load balance requests
- Bypass subscription limits
- Expose an API endpoint
- Proxy model traffic
Each provider continues to be used exactly as intended.
The wrapper only decides which local profile to launch.
⸻
User Stories
As a heavy Claude Code user
I want to switch between providers with one command
so I don’t need to remember configuration details.
⸻
As a developer with multiple subscriptions
I want to know which profile still has quota
so I don’t waste time opening dashboards.
⸻
As a multi-machine user
I want all my profile definitions synchronized
so every machine behaves the same way.
⸻
As a power user
I want providers to be interchangeable
without changing my workflow.
⸻
UX
Example:
cc claude
cc glm
cc openai
cc gemini
cc codex
or
cc use claude-work
cc use glm
⸻
Quota inspection:
cc quota
Example output:
Claude Work ████████░░ 78%
Claude Personal ██░░░░░░░░ 18%
GLM Max ██████░░░░ 61%
OpenAI Pay-as-you-go
Gemini Unlimited
⸻
Profile listing:
cc profiles
Output:
claude-work
claude-personal
glm
openai
gemini
⸻
Current profile:
cc current
⸻
Profile Definition
Each profile contains:
- Provider
- Authentication method
- Config directory
- Environment variables
- Optional model override
- Optional MCP configuration
- Optional hooks
- Optional working directory
Example:
name: claude-work
provider: claude
config_dir: ~/.claude/work
env:
ANTHROPIC_BASE_URL: ...
model: sonnet
⸻
Authentication
The wrapper never owns authentication.
Authentication remains provider-native.
Examples:
Claude
- OAuth login
- Existing Claude Code session
OpenAI
GLM
Gemini
The wrapper only selects which credentials should be active.
⸻
Quota
Provide a unified quota dashboard.
Supported sources:
- Claude /usage
- Claude /status
- GLM usage endpoint
- OpenAI API usage
- Gemini usage (if available)
Unknown providers should report:
Unavailable
instead of guessing.
⸻
Configuration
Support multiple configuration scopes:
Global
~/.cc/
Machine
~/.cc.local/
Project
.project/.cc/
Priority:
Project
↓
Machine
↓
Global
⸻
Commands
Core
cc use
cc current
cc profiles
cc quota
cc doctor
Management
cc profile add
cc profile remove
cc profile edit
cc profile clone
Utilities
cc sync
cc export
cc import
⸻
Multi-Machine
Optional synchronization via:
- Git
- Dropbox
- iCloud
- Syncthing
Profiles should be portable.
Authentication should remain local whenever possible.
⸻
Design Principles
- No proxy
- No request interception
- No request pooling
- No account aggregation
- Provider-native authentication
- Transparent configuration
- Fast switching (<1 second)
⸻
Future Ideas
- Status bar integration
- Raycast extension
- macOS menu bar app
- TUI dashboard
- Provider recommendation
- Session history
- Cost analytics
- Daily usage reports
- Project-specific default profile
⸻
Success Metrics
- Switching profiles requires one command.
- No manual login/logout during normal workflow.
- Time to switch providers is under one second.
- All provider configuration is managed in one place.
- No network proxy is required.
- Existing provider CLIs remain unmodified.
Background
Heavy AI coding users increasingly rely on multiple AI providers and subscriptions:
A single developer may also have multiple machines and multiple active coding environments.
Current tooling optimizes for provider integration, but not for subscription management or developer workflow.
As a result, users face several recurring problems:
⸻
Goal
Provide a lightweight wrapper around AI coding CLIs that offers a unified developer experience without acting as an API proxy or account pool.
The project should manage profiles, not requests.
It should never aggregate multiple Claude subscriptions into a shared backend.
⸻
Non Goals
The project will NOT:
Each provider continues to be used exactly as intended.
The wrapper only decides which local profile to launch.
⸻
User Stories
As a heavy Claude Code user
I want to switch between providers with one command
so I don’t need to remember configuration details.
⸻
As a developer with multiple subscriptions
I want to know which profile still has quota
so I don’t waste time opening dashboards.
⸻
As a multi-machine user
I want all my profile definitions synchronized
so every machine behaves the same way.
⸻
As a power user
I want providers to be interchangeable
without changing my workflow.
⸻
UX
Example:
cc claude
cc glm
cc openai
cc gemini
cc codex
or
cc use claude-work
cc use glm
⸻
Quota inspection:
cc quota
Example output:
Claude Work ████████░░ 78%
Claude Personal ██░░░░░░░░ 18%
GLM Max ██████░░░░ 61%
OpenAI Pay-as-you-go
Gemini Unlimited
⸻
Profile listing:
cc profiles
Output:
claude-work
claude-personal
glm
openai
gemini
⸻
Current profile:
cc current
⸻
Profile Definition
Each profile contains:
Example:
name: claude-work
provider: claude
config_dir: ~/.claude/work
env:
ANTHROPIC_BASE_URL: ...
model: sonnet
⸻
Authentication
The wrapper never owns authentication.
Authentication remains provider-native.
Examples:
Claude
OpenAI
GLM
Gemini
The wrapper only selects which credentials should be active.
⸻
Quota
Provide a unified quota dashboard.
Supported sources:
Unknown providers should report:
Unavailable
instead of guessing.
⸻
Configuration
Support multiple configuration scopes:
Global
~/.cc/
Machine
~/.cc.local/
Project
.project/.cc/
Priority:
Project
↓
Machine
↓
Global
⸻
Commands
Core
cc use
cc current
cc profiles
cc quota
cc doctor
Management
cc profile add
cc profile remove
cc profile edit
cc profile clone
Utilities
cc sync
cc export
cc import
⸻
Multi-Machine
Optional synchronization via:
Profiles should be portable.
Authentication should remain local whenever possible.
⸻
Design Principles
⸻
Future Ideas
⸻
Success Metrics