Requirements
Claude Dialects builds a single static executable from source. Before you begin, make sure you have:
- macOS — current target platform
- Go 1.26.5 or newer — to build from source
- Claude Code — available as
claudeon your PATH - Node.js 22.13+ and npm (optional) — required only for Cursor and GitHub Copilot SDK dialects
The dashboard frontend is embedded in the executable. Running it, make build, and make install do not require Node.js; contributors need a package-compatible Node.js release when rebuilding dashboard source.
This is an unofficial project — not affiliated with or endorsed by Anthropic, OpenAI, Google, Moonshot AI, Z.ai, xAI, Cursor, GitHub, Microsoft, MiniMax, DeepSeek, or the CLIProxyAPI maintainers. Product and company names are trademarks of their respective owners. You are responsible for complying with each provider's terms and usage policies. Read full legal & notices →
Linux and Windows builds are not supported. Everyone builds cc-dialect from source — there are no prebuilt releases.
Install Claude Dialects
Clone the repository, build, and install the cc-dialect manager to ~/.local/bin:
git clone https://github.com/stefandevo/claude-dialects.git
cd claude-dialects
make install
export PATH="$HOME/.local/bin:$PATH"
# Persist PATH across terminal restarts
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
This produces one static executable at ~/.local/bin/cc-dialect. There are no prebuilt binaries or GitHub releases — everyone builds from the checked-out source.
Claude Dialects does not modify ~/.claude/settings.json. The embedded CLIProxyAPI is linked into the executable — no separate proxy download, container, or global configuration required.
Create your first dialect
Let's create an OpenAI Codex dialect using the codex-sol preset (GPT-5.6 Sol as main and subagent model):
cc-dialect create cc-codex --preset codex-sol
cc-dialect auth cc-codex codex
cc-dialect shim install cc-codex
cc-codex
For preset-based routes, create prints the remaining setup steps in the correct order. An arbitrary custom model ID cannot determine its provider automatically, so you must supply and follow the appropriate authentication or token route yourself. OAuth dialects will not launch or list models before authentication — if you skip auth, the error includes the exact command to run.
Inside Claude Code you can switch models and effort live:
/model opus # → gpt-5.6-sol
/model sonnet # → gpt-5.6-terra
/model haiku # → gpt-5.6-luna
/effort high
The four-step workflow
Every dialect follows the same rhythm, regardless of provider:
Create isolated configuration
cc-dialect create cc-name --preset preset-name
Records the dialect configuration and reserves checked proxy and bridge ports. It does not start the runtime yet.
Authenticate with the provider
cc-dialect auth cc-name provider or export an API key env var.
Provider authentication or the first proxy start creates the per-instance proxy.yaml. Embedded OAuth files are per dialect; Cursor or Copilot may instead use shared environment or system credentials. Local proxy keys and runtime state remain isolated.
Install the shell command
cc-dialect shim install cc-name
Creates an executable shim in ~/.local/bin that launches Claude Code with dialect-specific environment variables.
Run from any directory
cc-name
The first run creates the private claude/ directory and starts the embedded proxy automatically. The proxy remains available for later sessions until explicitly stopped. Pass Claude Code arguments normally: cc-codex --permission-mode plan
Naming convention
Use the cc-<provider> naming convention for generated commands. It makes dialects easy to recognize and avoids collisions with existing provider CLIs such as gemini or cursor.
| Provider | Preset | Auth | Command |
|---|---|---|---|
| OpenAI Codex | codex-sol | ChatGPT OAuth | cc-codex |
| Moonshot Kimi | kimi | Kimi OAuth | cc-kimi |
| Google Gemini | gemini | Google OAuth | cc-gemini |
| xAI Grok | grok | xAI OAuth | cc-grok |
| Cursor | cursor-composer | Cursor API key | cc-cursor |
| GitHub Copilot | copilot-auto | Copilot login | cc-copilot |
| Z.ai GLM | glm | ZAI_API_KEY | cc-glm |
| Anthropic Claude | claude | Anthropic OAuth | cc-claude |
See the full Providers guide for complete setup blocks for each route.
Run several dialects
Each dialect gets checked high-numbered localhost ports, a private local proxy key and runtime state, and its own Claude Code state. Provider credentials remain route-dependent. Create as many as you need:
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 # embedded proxy :43170
cc-kimi-work # embedded proxy :43171
Ports are actively checked and allocated per dialect starting at :43170. A port already bound by any process is skipped during creation and rejected again at startup.
Open the web dashboard
Manage configured dialects from the bundled localhost dashboard:
cc-dialect web
# Print the URL without opening a browser
cc-dialect web --no-browser
# Use a fixed numeric loopback address
cc-dialect web --listen 127.0.0.1:8765
The default is an available ephemeral port on 127.0.0.1. The command stays in the foreground; press Ctrl-C to stop it. Numeric loopback addresses are required — localhost, wildcard addresses, remote access, and reverse proxies are not supported.
The dashboard can inspect safe configuration views, create and update dialects, start or stop runtimes, manage tracked native launchers, and install or refresh the Cursor runtime. OAuth login, Copilot setup, logs, shims, and launching Claude Code sessions remain CLI workflows.
Next steps
Provider setup guides
Complete configuration for Codex, Kimi, Gemini, Cursor, Copilot, and more.
Commands & advanced topics
Model switching, custom dialects, security, proxy lifecycle, and useful commands.
View the repository
Source code, issues, contributing guidelines, and the full README.
Quick config samples
Tabbed copy-paste snippets on the landing page.