OmniRoute is a self-hosted AI gateway that puts one OpenAI-compatible endpoint in front of hundreds of model providers, and it added roughly 1,840 stars on Tuesday to reach about 29,200 total. The pitch is that your coding agent never stops mid-task: when a quota runs dry or a provider throws a 5xx, the router quietly slides to the next model in a chain you defined. Installing it takes about five minutes. Deciding whether you want its more aggressive features turned on takes longer, and that second part is where most write-ups stop short.
- Current release is v3.8.48, MIT licensed, and it needs Node.js 22.22.2 or newer (22.x or 24.x LTS, up to but not including 27).
- A fresh install answers with no API key at all: the
automodel is pre-wired to keyless free providers. - The gateway, dashboard and API all live on port 20128, which is also the port every client config points at.
- It ships JA3/JA4 TLS fingerprint impersonation and a transparent MITM proxy. Both are optional, and both are worth understanding before you switch them on.
What is OmniRoute and why is it trending?
Think of it as the load balancer your LLM traffic never had. You point Claude Code, Cursor, Cline, Codex or Copilot at http://localhost:20128/v1 instead of at a vendor, and the router decides where each request actually goes. The catalog covers 290 providers and roughly 500 models, and the project tracks which of those have free tiers.
RelatedSuperpowers Setup: Give Your AI Coding Agent a Real Workflow
The interesting engineering is not the provider count, it is the failure handling. Three layers work independently: a circuit breaker per provider that trips on 408 and 5xx responses, a cooldown per credential that honors Retry-After on a 429, and a lockout scoped to a single model so one bad model does not disable a whole connection. Nineteen routing strategies sit on top, including cost-optimized, headroom-aware and a last-known-good-provider mode. Pick auto and it builds the chain for you; auto/coding, auto/cheap and auto/fast weight the same chain differently.
There is also a compression layer, twelve engines deep, that rewrites verbose prompts and tool output before they hit a provider. The project claims 78 to 95 percent savings when its RTK and Caveman engines stack on shell and test output. Treat the headline range as a best case on tool-heavy sessions rather than a number you should budget against.
How do you install OmniRoute?
The npm route is the one the README leads with, and it is the one to use unless you have a specific reason not to. Two commands:
# needs Node.js >=22.22.2
npm install -g omniroute
omniroute
The dashboard comes up at http://localhost:20128 and the API at /v1. Peer-dependency warnings during install are expected and documented as harmless. If you would rather not have a postinstall script run, the project respects an opt-out:
# CI=1 also skips the postinstall step
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute
For a container, bind it to loopback so the gateway is not reachable from your network:
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
Arch users have a package with a systemd user unit, and pnpm needs two build allowances because of the native SQLite binding:
# Arch Linux
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
# pnpm
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
Android works through Termux with pkg install nodejs && npx -y omniroute, which is a genuinely useful trick if you want the gateway running on a phone as an always-on box. Prebuilt desktop installers exist for all three platforms on the releases page, and they are heavy.
How do you point your coding tool at it?
Any OpenAI-compatible client needs three values, and only the key comes from the dashboard:
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto
Confirm the wiring before you change anything in your editor. This should list every model your connected providers expose:
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
Claude Code can go further and drive the gateway itself, because OmniRoute exposes its own toolset over MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
The CLI is more than a start command. omniroute doctor diagnoses providers, ports and native dependencies, omniroute setup runs a first-run wizard, and omniroute chat gives you a terminal client. If you run the gateway on a VPS, omniroute connect <host> trades a password for a scoped token and every later command targets the remote box.
How does it compare with OpenRouter and LiteLLM?
These three solve overlapping problems from different directions. OpenRouter is a hosted service you pay for and never operate. LiteLLM is the mature self-hosted proxy that production teams already run. OmniRoute is the maximalist option.
RelatedHallmark Setup: Kill AI Slop Design in Claude Code
| Trait | OmniRoute | OpenRouter | LiteLLM |
|---|---|---|---|
| Where it runs | Your machine | Hosted service | Your machine |
| License | MIT | Proprietary service | Open source |
| Free tier discovery | Built into the catalog | Some :free models | You configure it |
| Prompt compression | 12 engines, built in | No | No |
| Desktop app | Electron, all 3 OSes | Web only | No |
| Production track record | Months old | Established | Established |
| Surface area | Very large | Small, it is a URL | Moderate |
That last row is the honest tradeoff. OmniRoute does more than either alternative, and it does it with a Next.js app, an Electron shell, a native SQLite binding, 110 database migrations and a TLS impersonation layer. More capability, more that can break.
What are the gotchas before you rely on it?
The Node range is narrow. Anything below 22.22.2 will not start, and neither will Node 23. Check with node -v first rather than debugging a stack trace later.
Free-tier stacking is a terms question, not a technical one. The project pools published free allowances into a headline figure near 1.5 billion tokens a month, and to its credit it flags 15 providers whose terms it considers questionable and leaves the call to you. Read that list. Routing around a provider's rate limits by rotating accounts is the kind of thing that gets accounts closed, and a gateway that makes it easy does not make it permitted.
Two features are evasion tools, whatever else they do. The stack includes wreq-js for JA3 and JA4 TLS fingerprint impersonation, plus a transparent MITM decrypt mode with a CA trust-store installer for capturing clients that ignore proxy variables. The MITM piece is legitimately useful for debugging your own agent traffic. Fingerprint impersonation exists to make requests look like a browser to anti-abuse systems. Both are off by default. Leave them there unless you can articulate why you need them.
Independent scrutiny has been mixed. Third-party reviews this year have raised questions about the packaging and the security posture, including a period when a package scanner flagged the npm release. The code is MIT and readable, which is the mitigation available to you: pin a version, read the postinstall script, and do not run it as root.
Expect rough edges under Docker. Reviewers report the Node and SQLite combination being brittle in containers. The --stop-timeout 40 flag in the official run command is a hint that clean shutdown needs time to flush WAL journaling.
- Whether the free-tier number holds. The project re-audits it every two weeks and says it moves both ways. A steep drop would mean providers are closing the door on aggregation.
- A stable LTS line. Version 3.8 has shipped dozens of patch releases. A branch that changes less often is what would make this defensible for a team.
- Whether stealth stays optional. The moment fingerprint impersonation becomes load-bearing for basic routing, the tool changes category.
Our take
Strip out the free-tier arithmetic and what remains is a genuinely good piece of infrastructure. Multi-provider fallback with per-model lockouts and honest Retry-After handling is the sort of thing most teams hand-roll badly, and having it behind one local port with a dashboard is worth the install on its own. Run it that way: your own keys, your own subscriptions, auto/coding as the model, stealth and MITM untouched. It will keep a long agent session alive through a rate limit, which is the actual daily problem.
The billion-free-tokens framing is what earned the stars and it is also the part to walk past. Providers publish free tiers to let people evaluate their models, and a tool built to harvest 43 of them at once is on the wrong side of that arrangement no matter how carefully the README annotates it. The project deserves credit for flagging the questionable providers instead of burying them. Use the router. Skip the arbitrage.
- Officialdiegosouzapw/OmniRoute repository, README and install instructions
- OfficialOmniRoute Releases v3.8.48 desktop installers and asset sizes
- Officialomniroute on npm the global install package
- ReferenceDocker Hub image multi-arch AMD64 and ARM64 builds
- ReferenceLiteLLM the established self-hosted gateway it competes with
Original analysis by GenZTech. Tool documentation: diegosouzapw/OmniRoute on GitHub.
