๐ OmniRoute โ The Free AI Gateway
Created by Diego Souza
๐ฐ ~1.62B Tokens / Month Across Third-Party Free Tiers
Bring your own provider accounts. This is an estimated aggregate across separately eligible third-party free tiers, not a token grant from OmniRoute. Sign up, obtain credentials where required, and connect the providers you can use; each provider controls its limits, availability, and terms.
Stacking free tiers by hand is painful โ dozens of SDKs, dozens of rate limits, and no idea how much you actually have. OmniRoute catalogs 465 free-tier entries across 34 recurring pool keys and computes the token headline from the 17 pools with a published positive monthly budget plus five per-model Groq caps, deduplicated by shared pool. Quotas that only open after a regional identity check (today: ModelScope) are shown apart, +~6M behind regional identity verification, and never summed into the headline. The result stays visible on the dashboard (
/dashboard/free-tiers).
Animated summary of the live
/dashboard/free-tierspage. Full methodology (pool dedupe, credit tiers, provider terms): docs/reference/FREE_TIERS.md.These figures are re-audited every two weeks against the live catalog and move both ways โ a provider ends a free tier and the number drops; a new one lands and it climbs. We publish what the catalog actually computes, never a rounded-up best case.
โญ Star the repo if OMNIROUTE helped you save money and make your work easier.
๐ฌ Join the community
๐ Follow the maintainer โ get new providers, releases & tips first:
Questions, provider tips, roadmap & support โ Discord ยท Telegram ยท WhatsApp ๐ Global / ๐ง๐ท Brasil / Portal
๐ The Gateway Keeps Growing
โ Roadmap โ riding the rail to v3.9.0 LTS
๐งฉ Available
๐ Install, connect a provider, then route through one endpoint
# After connecting a provider, copy your OmniRoute key from Dashboard โ Endpoints:
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
auto needs an eligible route. A fresh installation can have no eligible keyless targets, and a keyless provider may reject third-party clients. Providers marked tos: avoid, including Kiro, are excluded from automatic routing by default; connecting an account does not override that setting. See the Free Tiers Guide before choosing a provider.
๐ฆ Copy-paste quickstart scripts for Python, Node.js, PHP, and cURL โ examples/quickstart/
๐ฅ The Promise
๐ค Why OmniRoute?
๐ค Supported by our Open Source Friends
</td>
<td>
Thanks to <b>Kimi (Moonshot AI)</b>, our founding Open Source Friend, for backing this project! Kimi is the AI lab behind the open-weight K2 and K3 model families โ <b>Kimi K3</b> delivers a 1M-token context window, native vision and frontier-level coding at a fraction of closed-model prices, and works out of the box with Claude Code, Codex and every coding tool OmniRoute serves.
<br/><br/>
<b>What Kimi's support powers:</b> Kimi's API credits power OmniRoute's AI-validated release pipeline โ the <i>merge validation powered by Kimi K3</i> stage that reviews every pull request before it ships โ plus day-to-day feature development. First-class Kimi support ships on both rails: the direct <a href="https://platform.kimi.ai?track_id=track-8197581fdd7d4139a0f562e4a03c3798&aff=omniroute">Kimi API</a> (<code>kimi-k3</code>) and the <a href="https://www.kimi.ai/code?aff=omniroute">Kimi Code coding plan</a> (OAuth and API key). OmniRoute is also the first Brazilian open-source project in Kimi's support program. <a href="https://platform.kimi.ai?track_id=track-8197581fdd7d4139a0f562e4a03c3798&aff=omniroute"><b>Get a Kimi API key with 15% extra credits โ</b></a>
</td>
</td>
<td>
Thanks to <b>Cheaper Inference</b>, an OmniRoute Open Source Friend, for backing this project! Cheaper Inference is a cost-ranked gateway that resells 42 frontier models โ Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok and MiniMax โ behind one OpenAI-compatible endpoint, routing each request to the cheapest eligible provider without ever charging above the model maker's list price.
<br/><br/>
<b>First-class support in OmniRoute:</b> Chat Completions, the native <code>/v1/responses</code> endpoint, vision, tool calling and 3 image models (<code>grok-imagine</code>, <code>nano-banana-pro</code>, <code>nano-banana-2</code>, reachable as <code>cheaperinference/<model></code>). <a href="https://cheaperinference.com/?utm_source=omniroute"><b>Get an API key โ</b></a>
</td>
Links tagged aff=omniroute are partner links. They fund the project at no extra cost to you.
This section is for referral/coupon codes only. Sponsored partnerships live in ๐ค Supported by our Open Source Friends above. OmniRoute has no sponsorship or partnership with the providers listed here โ these are public coupons anyone can use.
Know another provider with a generous free signup coupon that benefits OmniRoute users? Open an issue and we'll add it here.
๐ฏ Combos โ The Flagship
A combo is a chain of models OmniRoute routes across automatically. If quota runs out, a provider fails, or costs spike, the combo can move to the next eligible healthy model. ๐ก๏ธ
โก Zero-config โ just use auto
No combo to create. Set your model to auto (or a variant) and OmniRoute builds a virtual combo from your connected providers, scored live:
๐ Or build your own โ 20 routing strategies
All 20 strategies โ mix & match per combo step:
The Auto-Combo engine scores every candidate on 16 factors (health, quota, cost, latency, task fit, quality, session availabilityโฆ) โ see docs/routing/AUTO-COMBO.md.
๐งฑ Resilience is built in (3 independent layers)
๐ Auto-Combo Engine ยท Resilience Guide
๐ What Sets OmniRoute Apart
๐ Full methodology & per-feature detail vs 9router, OpenRouter, CLIProxyAPI & LiteLLM โ docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md
๐ Support OmniRoute
OmniRoute is MIT-licensed and maintained in the open. If it saves you time or money, here's how to keep it independent โ pick whatever fits you. Sponsorship never affects routing priority; it buys visibility, not ranking.
๐ง๐ท PIX โ instant, no fees (Brazil)
Key (random): 5d865059-bc44-483a-962d-43ceb80126eb
Pix copia-e-cola:
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
โ ๏ธ Send each coin only on the network shown โ sending on the wrong network can lose the funds.
๐ Found a bug or have feedback? Open a Discussion.
๐ก OmniRoute Radar
The main free-tier headline remains ~1.62B tokens/month from the documented, pool-deduplicated catalog above. Temporary provider signup credits can separately lift the first month to ~2.22B. Radar is an optional, signed catalog overlay for people who want fresher free-model availability between OmniRoute releases; the community catalog and every existing free feature remain free.
Supporters can receive the live catalog and additional provider opportunities. Its separate, mutable ceiling is approximately 3B tokens/month at most, depending on provider availability. That ceiling is not a guarantee: providers can change quotas, eligibility, models, or regions at any time.
Radar is opt-in and GET-only. The OmniRoute client does not upload prompts, traffic, provider configuration, usage telemetry, or local announcement-dismiss state. Learn about eligibility and the current catalog at radar.omniroute.online/planos.
โจ What's New
Recent highlights from v3.8.20 โ v3.8.54. Full history in
CHANGELOG.md.
- โ๏ธ
quota-weightedrouting โ the 20th combo strategy skips exhausted accounts, then draws among the rest in proportion to leftover quota รท in-flight load, keeping existing conversations pinned. โ Auto-Combo - ๐งฐ Headless mode โ
omniroute serve --headless(orOMNIROUTE_HEADLESS=1) runs only the/v1/*proxy engine, with the dashboard and dashboard-only subsystems off. โ Headless Mode - ๐ Model discovery โ
/v1/modelsfilters by capability, context, kind and text, andPOST /v1/models/queryreturns a short deterministic shortlist with the same per-key visibility. โ API Reference - ๐ Per-key routing control โ pin an API key to one model or combo with
forcedModel, and add or remove a key's models and combos atomically (/api/keys/{id}/access). โ API Reference ยท OpenAPI - ๐ก๏ธ Finer PII controls โ per-type selection, up to 20 validated custom masking patterns and per-type detection counters; masking itself stays opt-in. โ Guardrails
- ๐ 67 languages โ dashboard, docs mirrors and CLI, with
npm run i18n:add-localeadding a language everywhere in one command. โ i18n Guide - ๐๏ธ OmniConductor โ inbound A2A delegation to your agent fleet, Conductor skills on the Agent Card, and a dashboard panel with Faro push-to-talk voice chat. โ A2A Server
- ๐ Adaptive admission & overload protection โ heavyweight chat requests queue instead of 503ing, with atomic RPM rolling leases per connection. โ Resilience Guide
- ๐๏ธ Canonical
/v1/modelsordering โ one contiguous provider-grouped block per provider (combos pinned first), stable across every catalog source. โ API Reference - ๐๏ธ Compression hardening โ default-on inflation guard, Caveman packs for DE / FR / JA + Chinese (wรฉnyรกn), RTK filters for Gradle & .NET. โ Compression
- ๐ธ Honest flat-rate cost โ subscription / coding-plan providers read $0 in cost analytics; budget, quota & routing keep estimating. โ API Reference
- โ๏ธ Quota-Share routing โ split a shared account's quota fairly across pooled keys, work-conserving so idle slices are lent out. โ Resilience Guide
- ๐ค One-command CLI/agent setup โ 15 registered
setup-*commands;omniroute runlaunches 7 CLIs (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI);omniroute configuresupports 11 targets with an interactive provider+model picker and per-context favorites. โ CLI Integrations - ๐ฐ๏ธ Remote mode โ drive a remote OmniRoute with scoped tokens (
connect/contexts/tokens) + anantigravityOAuth helper for VPS installs. โ Remote Mode - ๐งญ Smarter auto-routing โ
auto/<category>:<tier>combos, Fusion (model panel + judge), task-aware routing, per-request model / mode / USD-budget overrides. โ Auto-Combo - ๐๏ธ Pluggable compression โ 12 composable engines + Compression Studios: LLMLingua-2, two-tier Ultra, omniglyph, per-step fidelity gate, GCF v3.2, drag-reorder editor. โ Compression
- ๐ต๏ธ Transparent MITM decrypt (TPROXY) โ capture CLIs that ignore proxy env vars, with a per-SNI CA + trust-store installer. โ MITM/TPROXY
- ๐ธ Cost telemetry everywhere โ
X-OmniRoute-*cost/usage headers on every endpoint, cache-HIT savings header, per-key USD spend quotas. โ API Reference - ๐ง Memory you control โ off by default, opt-in int8 vector quantization + typed decay, per-request
x-omniroute-no-memory. โ Memory - ๐ก๏ธ Security โ prompt-injection guard on every LLM route (red-team suite), opt-in credential-masking guardrail (redacts leaked API keys/secrets in both directions), free DuckDuckGo last-resort web search, and an optional OIDC login gate for the dashboard (password login always stays available). โ Guardrails
- ๐ผ๏ธ New endpoints โ
/v1/ocr(Mistral OCR) and/v1/audio/translations(Whisper-style) round out the media surface. โ API Reference - ๐จ Image / video / audio generation โ one API for media: xAI Grok Imagine & Novita AI video, ComfyUI, Magnific, Adobe Firefly, Segmind, and speech providers such as ElevenLabs. โ API Reference
- ๐ Deployment & ops โ reverse-proxy
basePath, browser-language auto-detect, per-key device tracking, root-less MITM trust, zh-TW localization. โ Environment - ๐ค More providers & agents โ cloud agents (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) with browser + OAuth login, Ollama first-class card, Claude Opus 5 & Sonnet 5, Kimi official partnership (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AIโฆ and a refreshed 380-provider catalog. โ Providers
- ๐ก Routing transparency โ every response carries an
X-OmniRoute-Decisionheader naming the strategy/provider/latency that served it, a newcache-optimizedcombo strategy + Auto-CombocacheAffinityfactor route repeat requests back to the connection holding the cached prefix, and a read-only/v1/auto-combo/{channel}/candidatesendpoint exposes anauto/*channel's live candidate pool. โ Auto-Combo - โก Local performance & infra โ one-click local Redis, Cloudflare Workers / Deno Deploy relay deployers, Bifrost & Mux as supervised embedded services. โ Embedded Services
- ๐งฉ Also in the box โ plugin framework + marketplace, Omni/Agent/GitHub skills frameworks, Obsidian vault integration (22 MCP tools), OpenAI-compatible Batch & Files APIs, semantic response cache, gamification with leaderboards, ACP agent discovery (15 built-in agents), scheduled log export to BigQuery,
auto/chaosparallel multi-model fan-out, a Telegram bot bridge, an in-app version manager and LMArena-ELO free-provider rankings. โ Docs
๐ค Compatible CLIs & Coding Agents
One config โ
http://localhost:20128/v1โ and every AI IDE or CLI runs on free & low-cost models.
๐ Per-tool setup for all 39 tools (28 CLI Code's + 11 CLI Agents) โ docs/reference/CLI-TOOLS.md ยท ๐งฉ OpenCode plugin โ @omniroute/opencode-provider
Launch any supported CLI through OmniRoute in one command โ no config files written, credentials injected per process, Qwen/Gemini get a throwaway isolated home:
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# Or pick provider+model interactively and write the tool's own config:
omniroute configure codex # also: claude opencode qwen aider goose gemini cline continue kilo 5dive
Every command honors the active remote context (omniroute connect <host>), --dry-run
previews the exact env/args without executing, and --api-key-env NAME keeps secrets out
of your shell history. โ CLI Integrations
๐ 380 AI Providers โ 153 Catalog-Marked Free
380 registered providers across the canonical chat, media, search, local, cloud-agent and system collections, including 153 carrying
hasFree: truediscovery metadata. The chat model registry covers 239 providers / 3,059 distinct provider-model pairs / 1,475 raw model IDs; the separate free-budget catalog has 471 per-model rows, 34 recurring pools and 52 recurring/keyless free-forever providers. These are different denominators by design; definitions and pool-deduped calculations live in the Provider Reference and Free Tiers.
๐ข Every major lab โ through one endpoint
โฆand 350+ more โ every icon resolves live from the dashboard's provider catalog. ๐ Provider Reference
๐ Free Forever โ $0, no card
๐ Full machine-readable catalog โ docs/reference/PROVIDER_REFERENCE.md
๐ฅ๏ธ Where OmniRoute Runs โ Anywhere
Same app, your machine, your rules. From a global npm install to your phone via Termux.
๐ Docker Guide ยท Desktop ยท Menu-bar tray ยท Termux ยท PWA ยท OpenCode
๐งฉ New: OmniRoute inside VS Code's native Copilot Chat
No new sidebar, no new chat UI โ every model OmniRoute serves shows up right in the Copilot Chat model picker you already use. Since VS Code 1.122, provider models work without a GitHub sign-in or a Copilot subscription โ agent mode, tool calling and vision, for free.
Install the OmniCopilot extension, point it
at your OmniRoute server (defaults to localhost:20128), then open Copilot Chat โ model picker
โ Manage Modelsโฆ โ OmniRoute.
From inside the editor: open the Extensions view, search "OmniRoute", click Install โ works the same way on both stores. Source, issues and the publishing runbook live at diegosouzapw/OmniCopilot.
๐ VS Code Copilot Chat guide โ setup, what the picker shows, dashboard-in-a-tab, troubleshooting
๐ฉ New: OmniRouteTray โ your gateway, living in the menu bar
omniroute serveis happiest when it's always on. OmniRouteTray turns that into a set-and-forget menu-bar app for macOS: it starts the server, keeps it alive across reboots, updates it in place, and puts your live token budget one click away โ no terminal window left open, nonpm install -g omnirouteto babysit.
Built with Tauri v2 (a Rust core the size of a rounding error), it ships
its own signed Node 24 runtime and manages an app-owned OmniRoute install, so it never fights your
global node/bun. It shares your existing ~/.omniroute/ config and database โ so it's the
same OmniRoute you already run, just with a hat on. ๐ฉ
brew install --cask zoispag/tap/omniroute-tray
Prefer a download? Grab the latest .dmg from Releases. Source, issues and build docs live at zoispag/omniroute-tray. ๐ A community project by @zoispag โ not an official OmniRoute release.
๐ Private & Local-First
๐ Authorization ยท Guardrails ยท Compliance
๐ Full CLI + A2A & MCP
Beyond the server, OmniRoute is a full command-line cockpit with 80+ commands, plus open agent protocols so an AI agent can drive it on its own.
โจ๏ธ A real CLI (not just start)
omniroute # serve gateway + dashboard (port 20128)
omniroute chat # interactive TUI chat client (slash: /model /combo /skill /memory)
omniroute setup # guided first-run wizard
omniroute doctor # diagnose providers, ports, native deps
๐ฐ๏ธ Remote mode โ run the CLI here, OmniRoute on a VPS
OmniRoute on a server? Drive it from your laptop with the same CLI. Log in once with a scoped access token; every command then targets the remote.
omniroute connect 192.168.0.15 # password โ scoped token, saved as a context
omniroute models # โ runs against the REMOTE server
omniroute configure codex # โ picks a remote model, writes a local Codex profile
omniroute tokens create --name ci --scope read # mint narrower tokens for other machines
omniroute contexts use default # โ switch back to the local server
Tokens are scoped read / write / admin; process-spawning routes stay loopback-only.
๐ Remote Mode
๐ค Connect an agent โ and it controls OmniRoute itself
Expose OmniRoute over MCP, A2A, a REST API, webhooks or a remote CLI โ any capable agent (or your own code) gets the keys to the whole gateway: routing, providers, combos, cache, compression, memory โ autonomously. HTTP endpoints below are served under http://localhost:20128.
# Give Claude Code the full OmniRoute toolset over MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
๐ MCP Server ยท A2A Server ยท Agent Protocols
๐๏ธ Save 15โ95% Tokens โ Automatically
๐ How it works โ pipeline, architecture & savings math
Default stacked combo runs RTK โ Caveman. When both act on the same tool/context payload, savings compound:
combined = 1 โ (1 โ RTK) ร (1 โ Caveman_input)
average = 1 โ (1 โ 0.80) ร (1 โ 0.46) = 89.2%
range = 78.4 โ 94.6%
Code blocks, URLs, JSON and structured data are always protected by the preservation engine.
Why use many tokens when few tokens do the trick? Every request passes through OmniRoute's compression pipeline transparently โ no client changes. It's now a stack of 12 composable engines that run in order and mix & match per routing combo โ building on ideas from RTK, Caveman (โญ 90K+), LLMLingua-2, and Troglodita (PT-BR).
๐งฑ The 12-engine stack
Engines run in pipeline order; each is independently toggleable and configurable per combo:
Code blocks, URLs and structured data are always preserved byte-perfect. One-click presets combine the engines:
Real example โ Standard mode:
Before (69 tokens): "The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I would recommend using useMemo to memoize the object."
After (19 tokens): "New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."
Same answer. 72% fewer tokens. Zero accuracy loss. โ
PT-BR example โ Troglodita mode:
Antes (42 tokens): "O problema รฉ que o componente estรก re-renderizando porque uma nova referรชncia de objeto estรก sendo criada em cada ciclo de renderizaรงรฃo. Eu recomendaria usar useMemo."
Depois (12 tokens): "Re-render: ref nova cada ciclo (objeto inline recriado). Usar
useMemo."Mesma resposta. ~70% menos tokens. Precisรฃo tรฉcnica intacta. โ
๐๏ธ Beyond the engines โ output styles, the adaptive dial & per-request control
The 12 engines above shrink what goes in. Three more layers shape how, when, and what comes out:
- ๐ช Output Styles (output-axis steering) โ inject deterministic, cache-safe response-shaping instructions; combinable, each at
lite/full/ultraintensity. Adding a style is a one-line registry entry:- Terse prose โ drop filler / articles / hedging; keep technical substance exact.
- Less code โ "lazy senior dev" YAGNI: smallest working change, no unrequested scaffolding.
- Ponytail (lazy senior dev) โ climb the YAGNI ladder, fix the root cause, smallest working diff.
- I have ADHD (action-first) โ next action leads, steps numbered, one concrete next step, no preamble.
- Terse CJK (ๆ่จ) โ classical-Chinese ultra-terse style (locale-gated to
zh).
- ๐ฏ Adaptive context-budget (the dial) โ instead of one on/off token threshold, escalate the cheapest, most-lossless engines only as far as needed to fit the model's context window. Policy:
reserve-output(default, model-aware) ยทpercentageยทabsolute. Mode:floor(guarantee fit) ยทreplace-autotrigger(your explicit choice wins) ยทoff(legacy thres