Skip to content

Requirement Memo: Unified AI Coding Profile Manager #36

Description

@puncsky

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

  • API key

GLM

  • API key

Gemini

  • OAuth/API

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

  1. No proxy
  2. No request interception
  3. No request pooling
  4. No account aggregation
  5. Provider-native authentication
  6. Transparent configuration
  7. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions