Skip to content
 
 

Repository files navigation

claude-code-proxy

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

Claude Code running through claude-code-proxy

Tip

I'm building aven, a local-first task manager for power users and agents.

Why?

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.

Cupcake selective routing

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.

Quick start with Codex

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. The docs/ 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-proxy

Or use the release installer:

curl -fsSL https://raw.githubusercontent.com/raine/claude-code-proxy/main/scripts/install.sh | bash

Windows 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 login

Start the proxy in one terminal:

claude-code-proxy serve

Start 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 \
  claude

See 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.

Providers

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.

Documentation

Related projects

  • 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

License

MIT

About

Use Claude Code with your ChatGPT, Kimi, Cursor or Grok subscription via a local Anthropic-compatible proxy

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages