
CLIProxyAPI
github.com/router-for-me/cliproxyapi- Category
- Developer Tools
- Rank
- No. 687Tools index
Previous survey · No. 681 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- router-for-me
- GitHub
- 51.6k stars
- Latest release
- v7.2.159
- Date
About
A Go proxy server that puts OpenAI-, Gemini- and Claude-compatible API endpoints in front of provider CLI sessions, so any compatible client or SDK can reach Codex, Claude, Gemini, Grok or Kimi through one local endpoint. It handles the OAuth login flows, supports streaming, and load-balances across several CLI accounts, letting subscription-based CLI access serve requests that would normally need an API key.
What it does
CLIProxyAPI runs an authenticated HTTP service around configured AI credentials. It exposes model, chat, response, message, media, realtime, and health endpoints, while a terminal dashboard manages configuration, authentication files, API keys, OAuth, and logs.
Why it's ranked here
The project combines broad protocol coverage with serious operational controls. TLS, HTTP/2, request authentication, dynamic configuration updates, management gating, retry handling, and targeted server tests make it more substantial than a thin request translator. Its scope also creates meaningful setup and maintenance complexity.
What's good
The route surface covers chat completions, responses, Claude messages, Gemini interactions, image and video operations, realtime sessions, and Codex search. Configuration changes can update clients, logging, access providers, retry behavior, WebSocket authentication, and caches without rebuilding the service. The terminal interface includes password gating and localized tabs.
Tradeoffs
This is infrastructure, not a polished desktop application. The project recommends a separate client for graphical configuration, automatic updates, tray integration, and one-click controls. Management endpoints require configured secrets, and the large dependency set reflects a broad operational surface spanning HTTP, OAuth, storage, terminal UI, WebRTC, Redis, and PostgreSQL support.
How to use it well
Use it when local development tools need one stable endpoint across several provider credentials and protocol shapes. Pair it with existing compatible SDKs, protect management access, and use the terminal dashboard for day-to-day configuration and logs. Choose the separate desktop client if nontechnical operators need graphical service controls. It does not replace model providers or supply credentials.
Technical notes+
The Go module is declared in go.mod as github.com/router-for-me/CLIProxyAPI/v7 with Go 1.26.0. internal/api/server.go builds a Gin HTTP server with authentication, CORS, request logging, optional TLS and HTTP/2, management-route gating, plugin hosting, and hot client updates. internal/api/server_routes.go registers OpenAI, Claude, Gemini, Codex, media, realtime, OAuth callback, and health routes. internal/api/server_reload.go applies runtime changes to logging, retry policy, access providers, caches, WebSocket authentication, and configured clients. internal/tui/app.go implements a Bubble Tea interface with dashboard, configuration, auth-file, API-key, OAuth, and log tabs. internal/api/server_test.go exercises busy responses, retry headers, credential refresh, and response-body release behavior.
Observed
- Primary language
- Go
- Packaging
- Go module with a versioned v7 module path
- Interfaces
- Authenticated HTTP API and terminal user interface
- API compatibility
- OpenAI, Claude, Gemini, Codex, and Grok-compatible surfaces are documented
- Transport
- HTTP, optional TLS with HTTP/2, WebSocket, and realtime routes
- Testing structure
- Server tests are included alongside the API implementation
- Desktop option
- A separate EasyCLIProxyAPI project is recommended for graphical controls
Read from README.md, go.mod, internal/tui/app.go, internal/api/server.go, internal/auth/models.go, internal/api/server_test.go, internal/browser/browser.go, internal/access/reconcile.go, internal/api/mux_listener.go, internal/api/buffered_conn.go, internal/api/server_reload.go, internal/api/server_routes.go, internal/cache/bounded_lru.go, internal/api/server_options.go.
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.