Stop juggling API keys. ProxyPilot is a powerful local API proxy that lets you use your existing Claude Code, Codex, Gemini, Kiro, and Qwen subscriptions with any AI coding tool – no separate API keys required.
Built in Go, it handles OAuth authentication, token management, and API translation automatically. One server to route them all.
Tip
📣 Latest models supported: Claude Opus 4.5 / Sonnet 4.5 with extended thinking, GPT-5.2 / GPT-5.2 Codex, Gemini 3 Pro/Flash, and Kiro (AWS CodeWhisperer)! 🚀
Setup Guides:
- 🎯 10 Auth Providers - Claude, Codex (OpenAI), Gemini, Gemini CLI, Kiro (AWS), Amazon Q CLI, Qwen, Antigravity, MiniMax, Zhipu AI
- 🔄 Universal API Translation - Auto-converts between OpenAI, Anthropic, and Gemini formats
- 🔧 Tool Calling Repair - Fixes tool/function call mismatches between providers automatically
- 🧠 Extended Thinking - Full support for Claude and Gemini thinking models
- 🔐 OAuth Integration - Browser-based login with automatic token refresh
- 👥 Multi-Account Support - Round-robin distribution with automatic failover
- ⚡ Quota Auto-Switch - Automatically switches to backup project/model when quota exceeded
- 📊 Usage Statistics - Track requests, tokens, and errors per provider/model
- 🧩 Context Compression - LLM-based summarization for long sessions (Factory.ai research)
- 🤖 Agentic Harness - Guided workflow for coding agents (Anthropic research)
- 💾 Session Memory - Persistent storage across conversation turns
- 🎨 System Tray - Native Windows tray app for quick access
- 📡 60+ Management APIs - Full control via REST endpoints
| Provider | Auth Method | Models |
|---|---|---|
| Claude (Anthropic) | OAuth2 / API Key | Claude Opus 4.5, Sonnet 4.5, Haiku 4.5 |
| Codex (OpenAI) | OAuth2 / API Key | GPT-5.2, GPT-5.2 Codex |
| Gemini | OAuth2 / API Key | Gemini 3 Pro, Gemini 3 Flash |
| Gemini CLI | OAuth2 | Cloud Code Assist (separate quota) |
| Kiro | OAuth2 + AWS SSO | AWS CodeWhisperer |
| Amazon Q CLI | Import from CLI | Amazon Q Developer |
| Qwen | OAuth2 | Qwen models |
| Antigravity | OAuth2 | Gemini via Antigravity (separate quota) |
| MiniMax | API Key | MiniMax M2, M2.1 models |
| Zhipu AI | API Key | GLM-4.5, GLM-4.6, GLM-4.7 |
| Custom | API Key | Any OpenAI-compatible endpoint |
- Go to the Releases page
- Download the latest binary for your platform
- Run
./proxypilot
git clone https://github.com/Finesssee/ProxyPilot.git
cd ProxyPilot
go build -o proxypilot ./cmd/server
./proxypilot- Copy config:
cp config.example.yaml config.yaml - Run:
./proxypilot - Server starts on
http://localhost:8317 - Open dashboard:
http://localhost:8317/proxypilot.html
Run OAuth login for your provider:
# OAuth providers (opens browser)
./proxypilot --claude-login # Claude
./proxypilot --codex-login # OpenAI/Codex
./proxypilot --login # Gemini
./proxypilot --kiro-login # Kiro (Google OAuth)
./proxypilot --kiro-aws-login # Kiro (AWS Builder ID)
./proxypilot --qwen-login # Qwen
./proxypilot --antigravity-login # Antigravity
# Import providers (from existing CLI tools)
./proxypilot --amazonq-import # Amazon Q CLI (run 'q login' first)
./proxypilot --kiro-import # Kiro IDE token
# API key providers (prompts for key)
./proxypilot --minimax-login # MiniMax API key
./proxypilot --zhipu-login # Zhipu AI API keyOAuth tokens are stored locally and auto-refreshed before expiry.
- Proxy requests require API keys by default. To allow unauthenticated access (not recommended), set
allow-unauthenticated: trueinconfig.yaml. - CORS is enabled for non-management endpoints by default (wildcard
*). Management endpoints do not emit CORS headers unless you explicitly allow origins undercors.management-allow-origins.
Example:
allow-unauthenticated: false
cors:
allow-origins:
- "http://localhost:5173"
management-allow-origins:
- "http://localhost:5173"Claude Code (~/.claude/settings.json):
{
"env": {
"ANTHROPIC_BASE_URL": "http://127.0.0.1:8317",
"ANTHROPIC_AUTH_TOKEN": "your-api-key"
}
}Codex CLI (~/.codex/config.toml):
[openai]
api_base_url = "http://127.0.0.1:8317"Factory Droid (~/.factory/settings.json):
{
"customModels": [{
"name": "ProxyPilot",
"baseUrl": "http://127.0.0.1:8317"
}]
}POST /v1/chat/completions # OpenAI Chat Completions
POST /v1/responses # OpenAI Responses API
POST /v1/messages # Anthropic Messages API
GET /v1/models # List available models
GET /healthz # Health check
All endpoints auto-translate between formats based on the target provider.
ProxyPilot includes two caching layers to reduce latency and token usage.
Caches full API responses for identical requests. Useful for repeated queries during development.
Config (config.yaml):
response-cache:
enabled: true # Default: false
max-size: 1000 # Max entries (default: 1000)
max-bytes: 0 # Optional total cache size cap in bytes
ttl-seconds: 300 # Cache TTL (default: 300 = 5 min)
exclude-models: # Models to skip (supports wildcards)
- "*-thinking"
- "o1-*"Synthetic prompt caching for providers without native support. Tracks repeated system prompts and estimates token savings.
Config (config.yaml):
prompt-cache:
enabled: true # Default: false
max-size: 500 # Max entries (default: 500)
max-bytes: 0 # Optional total cache size cap in bytes
ttl-seconds: 1800 # Cache TTL (default: 1800 = 30 min)| Endpoint | Method | Description |
|---|---|---|
/v0/management/cache/stats |
GET | Response cache stats (hits, misses, size) |
/v0/management/cache/clear |
POST | Clear response cache |
/v0/management/cache/enabled |
PUT | Enable/disable at runtime {"enabled": true} |
/v0/management/prompt-cache/stats |
GET | Prompt cache stats + estimated tokens saved |
/v0/management/prompt-cache/clear |
POST | Clear prompt cache |
/v0/management/prompt-cache/enabled |
PUT | Enable/disable at runtime |
/v0/management/prompt-cache/top |
GET | Top 10 most-hit prompts |
For low‑memory or high‑throughput setups, you can disable heavier features:
commercial-mode: true
usage-statistics-enabled: false
usage-sample-rate: 0.25
metrics-enabled: false
request-history-enabled: false
request-history-sample-rate: 0.25
agentic-harness-enabled: false
prompt-budget-enabled: false
request-log: false
response-cache:
enabled: false
prompt-cache:
enabled: false| Binary | Description |
|---|---|
proxypilot |
Main CLI with server and config switching |
proxypilot-tray |
System tray app |
Works with these AI coding tools:
- Claude Code - Auto-configure via settings.json
- Codex CLI - Auto-configure via config.toml
- Factory Droid - Auto-configure via settings.json
- Cursor IDE - Manual endpoint configuration
- Continue - Manual endpoint configuration
- macOS, Linux, or Windows
- Go 1.24+ (for building from source)
ProxyPilot is developed and maintained by @Finesssee. Some contributors shown in the git history are from upstream CLIProxyAPI merges. Direct contributors to ProxyPilot will be listed here as the project grows.
ProxyPilot builds upon excellent work from the open-source community:
- CLIProxyAPI - The original unified proxy server that inspired this project
- VibeProxy - Native macOS menu bar app showcasing clean proxy UX
Long-context features are inspired by research from the AI community:
- Factory.ai - Context compression techniques for long-running coding agents
- Anthropic - Effective harnesses for long-running agents
Special thanks to these teams for sharing their work and insights.
MIT License - see LICENSE for details.
- Report Issues: GitHub Issues
This project is for educational and interoperability research purposes. It interacts with various APIs to provide compatibility layers.
- Use at your own risk. Authors are not responsible for account suspensions or service interruptions.
- Not affiliated with Google, OpenAI, Anthropic, Amazon, or any other provider.
- Users must comply with the Terms of Service of connected platforms.