mrkeyoor.com_
Thu 17 Sept 17:37 UTC
AI Toolsevaluationupdated 27 Aug 2026

CLIProxyAPI review

CLIProxyAPI is a Go gateway that turns accounts for Codex, Claude Code, Gemini, Grok, Kimi, and compatible upstreams into OpenAI, Gemini, or Claude-style API endpoints. It solves the awkward job of connecting clients to several coding subscriptions while rotating accounts and translating requests between provider formats.

+697stars / 7d
Verdict

Our CLIProxyAPI build took 155 seconds, but 2 of 58 test packages failed, so it belongs behind a careful compatibility trial before it carries daily coding traffic. Use it when consolidating supported coding accounts into one endpoint saves more work than securing credentials and chasing provider changes. Choose a conventional API gateway when policy, audit history, and predictable provider contracts matter more than subscription routing.

We ran it

Lab card: what happened when we ran CLIProxyAPIScreenshot of CLIProxyAPI (github.com/router-for-me/CLIProxyAPI)
Install✓ · 52s153 packages
Build✓ · 155s
Tests✗ · 154s56 passed · 2 failed of 58 (go test)
Repo1373 files~407,384 lines of source · 16.7 MB · 6 CI workflows · Dockerfile · tests dir

Answers from our run

Does CLIProxyAPI build from source?

Dependencies installed in 52 seconds (153 packages), and the build succeeded in 155 seconds. We cloned commit a7e3596 into a clean Debian container with 3 CPUs and no project-specific setup.

Do CLIProxyAPI's tests pass?

Not all of them: 56 of 58 passed and 2 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use CLIProxyAPI?

Teams that cannot store provider OAuth credentials on the gateway: the documented account flows and multi-account routing depend on those files.

What are the alternatives to CLIProxyAPI?

LiteLLM, Portkey AI Gateway, 9Router. Our CLIProxyAPI build took 155 seconds, but 2 of 58 test packages failed, so it belongs behind a careful compatibility trial before it carries daily coding traffic.

Setup3/5Build passed, but 2 of 58 test packages failed
Docs3/5Wide feature map, but setup is pushed to an external guide
Community5/548,913 stars and a push on August 26, 2026
Maturity3/5Frequent releases coexist with active translation bugs

Who it’s for

Developers who want one local endpoint for several supported coding subscriptions and API providers.
Small teams prepared to secure OAuth files, downstream API keys, logs, and the management interface.
Go developers who need an embeddable proxy SDK with custom executors and translators.
Operators who can test each client, model, tool schema, and streaming path before relying on it.

Who it’s NOT for

Teams that cannot store provider OAuth credentials on the gateway: the documented account flows and multi-account routing depend on those files.
Buyers who need one stable protocol across every model without compatibility testing: open reports cover dropped schemas, unsupported message shapes, and client model-catalog mismatches.
Operators expecting built-in historical usage reports: the README says usage statistics were removed in v6.10.0 and points to separate services.
Anyone exposing the default listener unchanged: the sample config binds all interfaces, so local-only deployments must set the host explicitly.
Organizations whose provider terms prohibit routing subscription accounts through a third-party-compatible API service.

Setup reality

Our sandbox installed 153 Go packages in 52 seconds and built commit a7e3596 in 155 seconds. Tests failed after 154 seconds: 56 passed and 2 failed out of 58. The log tail showed other SDK packages passing, then only the overall FAIL; it did not identify a cause.

Useful traffic requires provider OAuth accounts or API keys, a downstream API-key list, and a configuration file. Remote management needs its own secret, while TLS, upstream proxies, routing policy, retries, and optional plugins require deliberate choices.

The sample configuration listens on every interface unless host is restricted. Standard Linux builds require GLIBC 2.17 for plugin support; the portable build drops dynamic plugins. Built-in historical usage reporting is absent, and provider or client changes can break translations even when the proxy itself starts.

One endpoint can front several coding subscriptions

CLIProxyAPI accepts requests shaped for OpenAI, Gemini, or Claude and translates them for supported coding services. The README lists Codex, Claude Code, Gemini, Grok, Kimi, and compatible upstream providers. Streaming, tool calls, images, WebSockets, and multiple accounts are within scope. That makes it useful when one editor or agent should switch providers without carrying separate client integrations for each one.

The important distinction is how access works. Codex, Claude Code, Grok, and other documented paths can use OAuth logins tied to user accounts, while compatible upstreams can use API keys. CLIProxyAPI then presents its own downstream keys to clients and can rotate credentials with round-robin, weighted, or fill-first routing. This is more than a URL translator. It becomes the place where account files, retry behavior, and provider differences meet.

The 52-second install is the easy part

The code is Go, and our sandbox installed 153 packages in 52 seconds. Building commit a7e3596 succeeded in 155 seconds. The checkout held 1,373 files, about 407,384 source lines, and 16.7 MB before dependencies. Six CI workflow files, a Dockerfile, a Compose file, and a tests directory give operators several visible paths for inspecting how the project is assembled.

A working deployment still needs a copied configuration file and at least one provider account or key. The sample listens on port 8317 and binds every interface when host is empty. Set it to 127.0.0.1 for a machine-local gateway, or add a properly secured network boundary. Downstream clients need one of the configured API keys. The management API requires a separate secret even on localhost, and leaving that secret empty disables its routes.

What happened when we ran it

Our run installed in 52 seconds and built in 155 seconds, then the test command ended with exit code 1 after 154 seconds. Go reported 56 passed packages and 2 failed packages out of 58. The final lines showed successful SDK checks for plugin APIs, storage, proxy utilities, translators, and the repository test package before a plain overall FAIL.

That tail does not name either failed package or show an assertion, so it does not support a theory about the cause. The defensible result is simply that commit a7e3596 did not pass its full suite in a fresh Debian container with 3 CPUs and 8 GB of RAM. Anyone evaluating the project should reproduce the suite with complete logs and the exact providers, plugins, and client formats they intend to use.

Credentials and network exposure need deliberate limits

The authentication directory defaults to ~/.cli-proxy-api, which puts valuable OAuth material on the gateway host. File permissions, backups, log redaction, and access to that account should be treated as security controls. The sample configuration supports TLS, but leaves it disabled. It also supports SOCKS5, HTTP, and HTTPS upstream proxies, plus per-account overrides, which increases the number of routes where credentials and traffic can be misconfigured.

Remote management is off by default, a sensible choice. If enabled, it can manage a service that holds several accounts, so publishing port 8317 directly to a LAN or the internet is hard to justify. Standard Linux release archives support dynamic plugins and target GLIBC 2.17. Portable Linux and FreeBSD builds omit plugin support. Plugins run as trusted in-process code, so adding one should receive the same review as adding code to the gateway itself.

Protocol translation keeps changing under live clients

Release v7.2.143 was published on August 26, 2026, and included fixes for xAI namespace tools, Gemini schemas, Claude streamed tool indexes, and cached-token accounting. That release cadence is evidence of active maintenance. It is also a map of the workload: providers and clients change request shapes, tool formats, streaming events, and model metadata, while the proxy must keep each translation current.

Open issue 5262 provides a concrete client mismatch. A generated Codex catalog used reasoning values unsupported by an older Codex CLI, causing configuration loading to fail until the reporter upgraded. Other open reports discuss dropped output schemas and unsupported trailing assistant content. These are reports, not proof that every route is broken. They are enough reason to pin the proxy and client versions, then test every model and tool family used in production.

Built-in history ended with v6.10.0

CLIProxyAPI can aggregate in-memory usage, but the README says its built-in historical statistics were removed starting with v6.10.0. It points users to CPA Usage Keeper or CPA-Manager-Plus for persistence and dashboards. A team that needs request history, cost estimates, or account-pool reporting therefore operates another component and database, or exports the needed records through its own monitoring path.

GitHub showed 48,913 stars, 474 combined issues and pull requests, and a last push on August 26, 2026. Those figures describe a large, fast-moving community rather than a small settled utility. The proxy is attractive for an individual or team already juggling several coding subscriptions. Its failed suite, credential concentration, and continuing protocol fixes make version pinning and a private deployment part of the admission price.

Alternatives

ProjectWhat it isPick it when
LiteLLM gh↗A broad gateway and SDK for routing API-key-backed model providers through common interfaces.pick this instead when spend controls, logging, and conventional provider API keys matter more than coding-subscription OAuth.
Portkey AI GatewayAn MIT-licensed AI gateway focused on routing, fallbacks, observability, and guardrails.pick this instead when policy and production API traffic are the main job, rather than reusing CLI subscriptions.
9Router gh↗A web-managed router for coding clients with provider translation and fallback.pick this instead when a built-in dashboard and a JavaScript stack are preferable to CLIProxyAPI's Go service and companion tools.

Sources

  1. CLIProxyAPI README
  2. CLIProxyAPI v7.2.143 release
  3. CLIProxyAPI sample configuration
  4. Codex model catalog compatibility report

More ai tools reviews

rowboat · skills · superpowers-zh · yolov5 · eve · MemOS · the whole board →