Claude Code, powered by OpenAI Codex, Kimi, Grok, OpenCode Go, or Cursor Agent.
Docs: https://claude-code-proxy.raine.dev
LLM docs: https://claude-code-proxy.raine.dev/llms.txt
Tip
I'm building aven, a local-first task manager for power users and agents.
Claude Code remains an excellent coding harness, with strong tools, skills, hooks, subagents, and editor integrations. claude-code-proxy keeps that client experience while translating its Anthropic API traffic for subscription-backed provider services.
One local process handles provider authentication, model-based routing, protocol translation, streaming responses, and diagnostics. The built-in monitor shows sessions, active and recent requests, errors, token usage, and throughput.
This fork forwards sonnet, opus, fable, mythos, and all claude-* model
IDs directly to https://api.anthropic.com, except the exact compatibility IDs
haiku, claude-haiku-4-5, and claude-haiku-4-5-20251001, which use Codex Luna.
claude-fable-5-1 is discoverable as Anthropic, never a Sol alias. Registered
gpt-* IDs (including gpt-6-astra) and explicit Kimi/Grok/Cursor/OpenCode routes
keep their provider paths. Alias-provider settings and session affinity cannot
override these rules. The existing [1m] hint is ignored for routing, while
Anthropic request bytes (including that hint) remain untouched. Claude Code strips
the hint from the payload it sends, so real traffic reaches Anthropic with the
plain model id; a DIRECT caller must likewise send the real id in the body, because
the passthrough never rewrites payload bytes and Anthropic rejects suffixed ids.
Both /v1/messages and /v1/messages/count_tokens preserve the original request
bytes, path/query, Claude Code authentication, and streamed upstream response.
Redirects and cross-provider fallback are disabled. The existing 16 MiB request
limit and malformed-request errors remain in place. Anthropic traffic captures
contain redacted metadata only, not private request or response bodies.
For real Claude models, retain Claude Code's own Anthropic authentication; do not
set ANTHROPIC_AUTH_TOKEN=unused (the Codex-only example below uses that placeholder).
The proxy neither stores nor obtains Anthropic credentials.
Cupcake fork warning: the install commands below fetch the UNPATCHED upstream binary and would silently remove the selective Anthropic routing above. On the cupcake workstation, always build and install from this fork instead — procedure:
/home/cupcake/workspace/cupcake/_tools/claude-code-proxy/README.md. Thedocs/site in this repository likewise still describes upstream alias-provider routing; where it conflicts with the Cupcake selective routing section, this README wins.
Install on macOS or Linux:
brew install raine/claude-code-proxy/claude-code-proxyOr use the release installer:
curl -fsSL https://raw.githubusercontent.com/raine/claude-code-proxy/main/scripts/install.sh | bashWindows and other prebuilt artifacts are available from GitHub Releases.
Sign in with a ChatGPT Plus or Pro account, not an OpenAI API account:
claude-code-proxy codex auth loginStart the proxy in one terminal:
claude-code-proxy serveStart Claude Code in another:
ANTHROPIC_BASE_URL=http://127.0.0.1:18765 \
ANTHROPIC_AUTH_TOKEN=unused \
ANTHROPIC_MODEL=gpt-5.6-sol[1m] \
ANTHROPIC_SMALL_FAST_MODEL=gpt-5.6-luna[1m] \
CLAUDE_CODE_AUTO_COMPACT_WINDOW=272000 \
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \
CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1 \
claudeSee Getting started for the complete first session.
Optional Codex image generation and editing can reuse the same ChatGPT login:
CCP_CODEX_IMAGES_API=1 claude-code-proxy serve
curl http://127.0.0.1:18765/v1/images/generations \
-H 'Content-Type: application/json' \
-d '{"prompt":"A paper-cut fox","model":"gpt-image-2"}'The opt-in Images API returns base64 image data and consumes the signed-in account's image quota. Image prompts and payloads are excluded from traffic captures. See the HTTP API for generation and edit schemas.
| Provider | Account | Model selection |
|---|---|---|
| Codex | ChatGPT Plus or Pro | Registered gpt-* models and -fast variants |
| Kimi | kimi.com with Kimi Code access | kimi-for-coding and aliases |
| Grok | grok.com | Registered Grok models |
| OpenCode Go | OpenCode Go subscription | Non-conflicting IDs and opencode-go/<model-id> |
| Cursor Agent | Cursor account | Cursor aliases and cursor:<model-id> prefixes |
Run claude-code-proxy models for the current catalog or
claude-code-proxy models --full for every dynamic Cursor alias.
Warning
The proxy accepts local requests without client authentication. It binds to
127.0.0.1 by default. Protect any non-loopback listener with a firewall or
authenticating reverse proxy. Provider subscriptions, model access, terms,
and account enforcement remain under each provider's control. Unofficial
clients may carry account risk.
- What is claude-code-proxy?
- Choosing a provider
- Configure Claude Code
- Models and routing
- Monitor TUI
- Troubleshooting
- Command reference
- Configuration
- HTTP API
- Compatibility and limitations
- For coding agents
- aven: local-first task management for power users and agents
- claude-history: search Claude Code conversation history from the terminal
- git-surgeon: non-interactive hunk-level git staging for coding agents
- workmux: parallel coding tasks in git worktrees and tmux
- consult-llm: consult other AI models from an agent workflow
