macOS & Linux · MIT License

One Claude Code.
Every model you choose.

Built on CLIProxyAPI — the proxy that routes Claude Code to Codex, Kimi, Gemini, Grok, and more. We embed it, wire the env vars, and give you isolated shell commands like cc-codex instead of manual proxy setup every time.

Get started View on GitHub →
shell — cc-dialects
$ cc-dialect create cc-codex --preset codex-sol
✓ Created cc-codex · gpt-5.6-sol · proxy :43170
$ cc-dialect auth cc-codex codex
✓ ChatGPT OAuth complete
$ cc-dialect shim install cc-codex && cc-codex
cc-codex
cc-kimi
cc-gemini
cc-grok
cc-cursor
cc-copilot
10+ Provider routes
Parallel dialects
127.0.0.1 Localhost only
0 ~/.claude touched
Why Claude Dialects

CLIProxyAPI does the routing.
We do the wiring.

CLIProxyAPI is the excellent open-source proxy that translates Claude Code's Anthropic API calls to OpenAI Codex, Gemini, Kimi, Grok, and other providers. Out of the box, you install it, configure it, start the server, and export a handful of environment variables before every Claude Code session.

Manual CLIProxyAPI

What you normally do yourself

  • Download, install, and run the CLIProxyAPI server as a separate process
  • Write and maintain proxy.yaml — ports, providers, OAuth, model routes
  • Export ANTHROPIC_BASE_URL=http://127.0.0.1:8317 and ANTHROPIC_AUTH_TOKEN
  • Set ANTHROPIC_DEFAULT_OPUS_MODEL, SONNET_MODEL, and HAIKU_MODEL per provider
  • Run OAuth flows and manage credentials outside Claude Code
  • Start the proxy before Claude Code, stop it when done — or leave it running globally
  • One shared setup — switching providers means re-exporting vars or new shell profiles
  • Risk of touching global ~/.claude settings and conversation history
Claude Dialects

What cc-dialect handles for you

  • Embeds CLIProxyAPI in the cc-dialect binary — no separate download or container
  • Generates per-dialect proxy.yaml, ports, and model mappings from presets
  • Injects ANTHROPIC_BASE_URL, auth token, and model env vars when you run cc-codex
  • Maps opus / sonnet / haiku to provider-specific models automatically
  • cc-dialect auth cc-codex codex — scoped OAuth per dialect, not global
  • The proxy starts automatically with the dialect command and remains available until you explicitly stop it
  • Run cc-codex and cc-kimi in parallel — isolated ports, local proxy state, and history
  • Your global ~/.claude stays untouched — each dialect gets its own claude/ dir

Same proxy engine, zero manual plumbing. Read the upstream project at router-for-me/CLIProxyAPI · Claude Code env setup docs on help.router-for.me

Architecture

Real Claude Code.
Private everything else.

Each dialect is a self-contained stack: embedded CLIProxyAPI, an isolated local proxy key, ports and runtime state, and a dedicated Claude Code config directory. Provider credentials follow the route: embedded OAuth is per dialect, while Cursor or Copilot may use shared environment or system credentials.

You run cc-codex

Your shell command launches the real Claude Code binary with dialect-specific env vars.

Embedded proxy starts

CLIProxyAPI translates Anthropic API calls to your provider — Codex, Kimi, xAI, and more. Embedded in the binary; no separate install.

Upstream responds

The local proxy key, ports, settings, and history stay scoped to this dialect. Embedded OAuth is per dialect; Cursor and Copilot provider credentials may come from shared environment variables or system credentials.

🔐

Isolated local state

Each dialect owns its local proxy key, ports, proxy config, runtime files, and Claude Code state under DIALECT_HOME. Embedded OAuth files are also per dialect.

📂

Separate history

/model, /effort, plugins, and conversations live in per-dialect claude/ dirs — not your global setup.

🔌

SDK bridges

Cursor and GitHub Copilot dialects run local SDK bridges that forward Claude Code tools with schema-safe aliases.

Local web dashboard

Run cc-dialect web to inspect safe configuration views, create or update dialects, manage runtimes and native launchers, and refresh Cursor — on numeric loopback only.

🎯

Live model switching

Map opus, sonnet, and haiku to provider-specific models. Switch mid-conversation without losing context.

🔀

Multiple providers, one session

Point each tier at a different provider so agents in the same session run on different models — Opus on Sol, Sonnet on Kimi, Haiku on Grok. See the mixed-frontier preset →

Providers

Pick your brain.
Run them all.

Presets encode provider defaults. Create as many named dialects as you need — each becomes its own shell command.

OpenAI Codex codex-sol

GPT-5.6 Sol, Terra, Luna via ChatGPT OAuth

cc-codex
Moonshot Kimi kimi

Kimi K3 flagship with K2.7 Code Highspeed tiers

cc-kimi
Google Gemini gemini

Antigravity OAuth · Gemini Pro Agent + Flash

cc-gemini
xAI Grok grok

Grok 4.6 across every tier · xAI OAuth

cc-grok
Cursor cursor-composer

Official @cursor/sdk bridge · Composer 2.5, Grok 4.6 & Kimi K3

cc-cursor
GitHub Copilot copilot-auto

Copilot SDK · MAI, Codex, Claude, Gemini presets

cc-copilot
Z.ai GLM glm

GLM-5.3 and GLM-5.3-Flash via Anthropic-compatible API

cc-glm
Anthropic Claude claude

Separate OAuth · Fable 5, Sonnet 4.6, Haiku 4.5

cc-claude
Configuration

Copy. Paste. Ship.

Every dialect follows the same four-step rhythm: create, authenticate, install, run. See the getting started guide or provider docs for full details.

Install from source
git clone https://github.com/stefandevo/claude-dialects.git
cd claude-dialects
make install
export PATH="$HOME/.local/bin:$PATH"

# Persist PATH — Zsh (macOS default) or Bash (most Linux distributions)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
OpenAI Codex · GPT-5.6 Sol
cc-dialect create cc-codex --preset codex-sol
cc-dialect auth cc-codex codex
cc-dialect shim install cc-codex
cc-codex

# Switch models inside Claude Code
/model opus    # → gpt-5.6-sol
/model sonnet  # → gpt-5.6-terra
/effort high
Moonshot Kimi · OAuth
cc-dialect create cc-kimi --preset kimi
cc-dialect auth cc-kimi kimi
cc-dialect shim install cc-kimi
cc-kimi

# List live models
cc-dialect models cc-kimi
Cursor · Composer 2.5
cc-dialect cursor install
export CURSOR_API_KEY="your_cursor_api_key"

cc-dialect create cc-cursor --preset cursor-composer
cc-dialect shim install cc-cursor
cc-cursor

# Check bridge status
cc-dialect cursor status
cc-dialect models cc-cursor
Run several dialects in parallel
cc-dialect create cc-codex-work --preset codex
cc-dialect auth cc-codex-work codex
cc-dialect shim install cc-codex-work

cc-dialect create cc-kimi-work --preset kimi
cc-dialect auth cc-kimi-work kimi
cc-dialect shim install cc-kimi-work

# Each gets its own port, local proxy state, and history
cc-codex-work    # proxy :43170
cc-kimi-work     # proxy :43171
Custom model mapping
cc-dialect create cc-my-codex \
  --preset codex \
  --model gpt-5.6 \
  --opus-model gpt-5.6-sol \
  --sonnet-model gpt-5.6-terra \
  --haiku-model gpt-5.6-luna \
  --effort-level auto \
  --concurrency 3 \
  --port 53170

# Anthropic-compatible custom provider
export MY_PROVIDER_TOKEN="..."
cc-dialect create cc-my-model \
  --model my-model-id \
  --base-url https://provider.example.com/api/anthropic \
  --token-env MY_PROVIDER_TOKEN
Security

Localhost by design.

Proxy servers and SDK bridges bind only to 127.0.0.1. The dashboard accepts numeric loopback listeners only and enforces exact Host, Origin, and CSRF checks for local browser use. Local proxy keys, state, and per-dialect OAuth files use owner-only permissions; Cursor or Copilot provider credentials may come from shared environment or system credentials.

  • Per-dialect CLAUDE_CONFIG_DIR isolation
  • Checked port allocation starting at :43170
  • Cursor/Copilot tools forwarded with cc_tool_ schema aliases
  • Claude Code permission prompts remain in control
~/.claude untouched
cc-codex :43170 · auth/ · claude/
cc-kimi :43171 · auth/ · claude/
cc-cursor proxy + bridge ports

Ready to dialect?

Build from source, create your first command, and run Claude Code with the model you actually want.