by Finesssee
Windows-native CLIProxyAPI fork with TUI, system tray, and multi-provider OAuth for AI coding tools - No API key needed
# Add to your Claude Code skills
git clone https://github.com/Finesssee/ProxyPilot[!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:
| 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 |
./proxypilotgit clone https://github.com/Finesssee/ProxyPilot.git
cd ProxyPilot
go build -o proxypilot ./cmd/server
./proxypilot
config.yaml automatically on first start when config.example.yaml is bundled next to the executable.cp config.example.yaml config.yaml./proxypilothttp://localhost:8317http://localhost:8317/management.htmlRun 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 --kiro-import # Kiro IDE token
# API key providers (prompts for key)
./proxypilot --minimax-login # MiniMax API key
./proxypilot --zhipu-login # Zhipu AI API key
OAuth tokens are stored locally and auto-refreshed before expiry.
allow-unauthenticated: true in config.yaml.*). Management endpoints do not emit CORS headers unless you explicitly allow origins under cors.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
Standalone persistence and visualization service for CLIProxyAPI, with periodic data sync, SQLite storage, aggregate APIs, and a built-in dashboard for usage and statistics.
[!NOTE] If you developed a project based on CLIProxyAPI, please open a PR to add it to this list.
ProxyPilot includes a built-in auto-update system that checks for new releases and allows one-click installation.
Config (config.yaml):
updates:
auto-check: true # Enable background update checking (default: true)
check-interval-hours: 24 # How often to check (default: 24)
notify-on-update: true # Show toast notification when update available (default: true)
channel: stable # Update channel: "stable" or "prerelease" (default: stable)
When an update is available:
ProxyPilot automatically backs up the previous version during updates and can restore it if something goes wrong.
No comments yet. Be the first to share your thoughts!