Back to Omniroute

🚀 OmniRoute — The Free AI Gateway

README.md

3.8.49101.9 KB
Original Source
<div align="center">

🚀 OmniRoute — The Free AI Gateway

</div> <div align="center">

💰 ~1.51B Free Tokens / Month

</div>

Stacking free tiers by hand is painful — dozens of SDKs, dozens of rate limits, and no idea how much you actually have. OmniRoute aggregates the documented free tiers of 42 provider pools / 495 models into one honest number and shows it live on the dashboard (/dashboard/free-tiers).

Animated summary of the live /dashboard/free-tiers page. Full methodology (pool dedupe, credit tiers, provider terms): docs/reference/FREE_TIERS.md.

<sub>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.</sub>

<div align="center"> <h3>

⭐ Star the repo if OMNIROUTE helped you save money and make your work easier.

</h3>

<a href="https://trendshift.io/repositories/23589" target="_blank"></a>

💬 Join the community

👋 Follow the maintainer — get new providers, releases & tips first:

Questions, provider tips, roadmap & support → Discord · Telegram · WhatsApp 🌍 Global / 🇧🇷 Brasil

📈 The Gateway Keeps Growing

<div align="center">
v3.8.49v3.8.50v3.8.51+
🌐 Providers291339more queued
🧠 Documented models500+1200+
🖼️ Modality Bridge🆕 visionvideo
📡 Radar free catalog🔭 next
⚖️ Quota-aware scheduling🔭 next
📊 Quota telemetry🔭 next

Roadmap — riding the rail to v3.9.0 LTS

</div>

🧩 Available

<table> <tr> <td align="right"><b>🚀 Start</b></td> <td align="center"><a href="#-quick-start">🚀 Quick Start</a></td> <td align="center"><a href="#-more-install-methods--docker-source-pnpm-arch">📦 Install</a></td> <td align="center"><a href="#-works-the-second-you-install-it--no-keys-no-config">🆓 Zero-config</a></td> </tr> <tr> <td align="right"><b>💡 Learn</b></td> <td align="center"><a href="#-the-promise">💥 The Promise</a></td> <td align="center"><a href="#-why-omniroute">🤔 Why OmniRoute</a></td> <td align="center"><a href="#-what-sets-omniroute-apart">🏆 What Sets Apart</a></td> </tr> <tr> <td align="right"><b>⚙️ Features</b></td> <td align="center"><a href="#-combos--the-flagship">🎯 Combos</a></td> <td align="center"><a href="#-339-ai-providers--90-free">🌐 Providers</a></td> <td align="center"><a href="#-full-cli--a2a--mcp">🔌 CLI &amp; MCP</a></td> </tr> <tr> <td align="right"></td> <td align="center"><a href="#%EF%B8%8F-save-1595-tokens--automatically">🗜️ Compression</a></td> <td align="center"><a href="#%EF%B8%8F-where-omniroute-runs--anywhere">🖥️ Where It Runs</a></td> <td align="center"><a href="#-private--local-first">🔒 Private</a></td> </tr> <tr> <td align="right"><b>👀 See it</b></td> <td align="center"><a href="#-omniroute-in-action">🎬 In Action</a></td> <td align="center"><a href="#-whats-new">✨ What's New</a></td> <td align="center"><a href="#-compatible-clis--coding-agents">🤖 Compatible CLIs</a></td> </tr> <tr> <td align="right"><b>💚 Support</b></td> <td align="center"><a href="#-support-omniroute">💚 Support / Donate</a></td> <td align="center"><a href="#-community--help">💬 Community</a></td> <td align="center"><a href="#-sponsors">💖 Sponsors</a></td> </tr> <tr> <td align="right"><b>📦 Project</b></td> <td align="center"><a href="#%EF%B8%8F-tech-stack">🛠️ Tech Stack</a></td> <td align="center"><a href="#-documentation">📖 Docs</a></td> <td align="center"><a href="#-500-contributors">👥 Contributors</a></td> </tr> </table> </div> <div align="center"> <b>🌐 In 43 languages</b>

<a href="README.md"></a> <a href="docs/i18n/pt-BR/README.md"></a> <a href="docs/i18n/pt/README.md"></a> <a href="docs/i18n/es/README.md"></a> <a href="docs/i18n/fr/README.md"></a> <a href="docs/i18n/it/README.md"></a> <a href="docs/i18n/de/README.md"></a> <a href="docs/i18n/nl/README.md"></a> <a href="docs/i18n/ru/README.md"></a> <a href="docs/i18n/uk-UA/README.md"></a> <a href="docs/i18n/pl/README.md"></a> <a href="docs/i18n/cs/README.md"></a> <a href="docs/i18n/sk/README.md"></a> <a href="docs/i18n/ro/README.md"></a> <a href="docs/i18n/hu/README.md"></a> <a href="docs/i18n/bg/README.md"></a> <a href="docs/i18n/da/README.md"></a> <a href="docs/i18n/fi/README.md"></a> <a href="docs/i18n/no/README.md"></a> <a href="docs/i18n/sv/README.md"></a> <a href="docs/i18n/zh-CN/README.md"></a> <a href="docs/i18n/zh-TW/README.md"></a> <a href="docs/i18n/ja/README.md"></a> <a href="docs/i18n/ko/README.md"></a> <a href="docs/i18n/th/README.md"></a> <a href="docs/i18n/vi/README.md"></a> <a href="docs/i18n/id/README.md"></a> <a href="docs/i18n/ms/README.md"></a> <a href="docs/i18n/phi/README.md"></a> <a href="docs/i18n/in/README.md"></a> <a href="docs/i18n/hi/README.md"></a> <a href="docs/i18n/gu/README.md"></a> <a href="docs/i18n/mr/README.md"></a> <a href="docs/i18n/ta/README.md"></a> <a href="docs/i18n/te/README.md"></a> <a href="docs/i18n/bn/README.md"></a> <a href="docs/i18n/ur/README.md"></a> <a href="docs/i18n/fa/README.md"></a> <a href="docs/i18n/ar/README.md"></a> <a href="docs/i18n/he/README.md"></a> <a href="docs/i18n/tr/README.md"></a> <a href="docs/i18n/az/README.md"></a> <a href="docs/i18n/sw/README.md"></a>

</div> <div align="center">

🆓 Works the second you install it — no keys, no config

</div>
bash
# Fresh install, zero credentials — `auto` already works:
curl http://localhost:20128/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'

<sub>Prefer a specific free backend? Call it directly, e.g. oc/… (OpenCode Free) or felo/… (Felo). Then graduate to auto and let OmniRoute pick.</sub>

<sub>📦 Copy-paste quickstart scripts for Python, Node.js, PHP, and cURLexamples/quickstart/</sub>

<div align="center">

💥 The Promise

</div> <div align="center">

🤔 Why OmniRoute?

</div> <div align="center"> </div> <div align="center">

🤝 Supported by our Open Source Friends

</div> <p align="center"> <a href="https://platform.kimi.ai?track_id=track-8197581fdd7d4139a0f562e4a03c3798&aff=omniroute"> </a> </p>

Want to join as an Open Source Friend? These are the companies that back open source and help keep OmniRoute moving — and we say publicly where every token they give us goes. Reach out: [email protected]

<table> <tr> <td align="center" width="150"> <a href="https://platform.kimi.ai?track_id=track-8197581fdd7d4139a0f562e4a03c3798&aff=omniroute"> <picture> <source media="(prefers-color-scheme: dark)" srcset="public/providers/kimi-logomark-dark.svg">
    </picture>
  </a>
  

<b>Kimi</b> <sub>Moonshot AI</sub>

</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.
  


  <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.com/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>
</tr> <tr> <td align="center" width="150"> <a href="https://cheaperinference.com/?utm_source=omniroute">
  </a>
  

<b>Cheaper Inference</b> <sub>cheaperinference.com</sub>

</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.
  


  <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/&lt;model&gt;</code>). <a href="https://cheaperinference.com/?utm_source=omniroute"><b>Get an API key →</b></a>
</td>
</tr> </table>

<sub>Links tagged <code>aff=omniroute</code> are partner links. They fund the project at no extra cost to you.</sub>

<details open> <summary><sub><b>🎟️ Affiliates Promo</b> — free signup coupons from providers we don't sponsor (click to expand)</sub></summary>

<sub><i>This section is for referral/coupon codes only. Sponsored partnerships live in <b>🤝 Supported by our Open Source Friends</b> above. OmniRoute has no sponsorship or partnership with the providers listed here — these are public coupons anyone can use.</i></sub>

<table> <tr> <td align="center" width="120"> <a href="https://agentrouter.org/register?aff=70LM">
  </a>
  

<sub><b>AgentRouter</b></sub> <sub>agentrouter.org</sub> </td> <td> <sub><b><a href="https://agentrouter.org/register?aff=70LM">AgentRouter</a></b> — affiliate signup · <b>$100 free credits</b> on signup (free server, expect higher latency — best for testing, not production). First-class support in OmniRoute since <b>v3.8.50</b>: Chat Completions, the Anthropic-compatible wire format and the OpenAI-compatible path. Available models include <code>claude-opus-4-8</code>, <code>claude-opus-5</code>, <code>gpt-5.6-sol</code> and more. <b><a href="https://agentrouter.org/register?aff=70LM">Grab your $100 →</a></b></sub>

  <sub>⚠️ <i>Affiliate link — OmniRoute has no sponsorship or partnership with this provider.</i></sub>
</td>
</tr> </table>

<sub>Know another provider with a generous free signup coupon that benefits OmniRoute users? Open an issue and we'll add it here.</sub>

</details> <div align="center">

🎯 Combos — The Flagship

</div>

A combo is a chain of models OmniRoute routes across automatically. Quota runs out, a provider fails, or costs spike — the combo silently slides to the next model. This is what makes OmniRoute unbreakable. 🛡️

⚡ 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:

<table> <tr><th align="left">Model ID</th><th align="left">What it optimizes for</th></tr> <tr><td align="left" nowrap><code>auto</code></td><td align="left">🎯 Balanced default (LKGP — sticks to your last good provider)</td></tr> <tr><td align="left" nowrap><code>auto/coding</code></td><td align="left">🧑‍💻 Quality-first weights for code generation</td></tr> <tr><td align="left" nowrap><code>auto/fast</code></td><td align="left">⚡ Lowest latency first</td></tr> <tr><td align="left" nowrap><code>auto/cheap</code></td><td align="left">💰 Cheapest per token first</td></tr> <tr><td align="left" nowrap><code>auto/offline</code></td><td align="left">🔋 Most quota / rate-limit headroom first</td></tr> <tr><td align="left" nowrap><code>auto/smart</code></td><td align="left">🔭 Quality-first + 10% exploration to discover better models</td></tr> </table>

🔀 Or build your own — 19 routing strategies

All 19 strategies — mix & match per combo step:

<table> <tr> <th>#</th> <th align="left">Strategy</th> <th align="left">What it does</th> </tr> <tr> <td align="center">1</td> <td nowrap><code>priority</code></td> <td>First-target ordered list — drain each before the next 🥇</td> </tr> <tr> <td align="center">2</td> <td nowrap><code>fill-first</code></td> <td>Fill each target's quota fully before moving on</td> </tr> <tr> <td align="center">3</td> <td nowrap><code>weighted</code></td> <td>Weighted random by per-target weight</td> </tr> <tr> <td align="center">4</td> <td nowrap><code>round-robin</code></td> <td>Cycle through targets in order</td> </tr> <tr> <td align="center">5</td> <td nowrap><code>p2c</code></td> <td>Power-of-two-choices random load balancing</td> </tr> <tr> <td align="center">6</td> <td nowrap><code>least-used</code></td> <td>Pick the target with the lowest current load</td> </tr> <tr> <td align="center">7</td> <td nowrap><code>random</code></td> <td>Uniform random pick (deduplicated)</td> </tr> <tr> <td align="center">8</td> <td nowrap><code>strict-random</code></td> <td>Random without de-duplicating repeats 🎲</td> </tr> <tr> <td align="center">9</td> <td nowrap><code>cost-optimized</code></td> <td>Minimize $ per request from live catalog pricing 💸</td> </tr> <tr> <td align="center">10</td> <td nowrap><code>headroom</code></td> <td>Pick the target with the most remaining quota</td> </tr> <tr> <td align="center">11</td> <td nowrap><code>reset-window</code></td> <td>Prefer the target whose quota window resets soonest</td> </tr> <tr> <td align="center">12</td> <td nowrap><code>reset-aware</code></td> <td>Rank by quota reset time — short windows first 📊</td> </tr> <tr> <td align="center">13</td> <td nowrap><code>context-relay</code></td> <td>Hand off context across targets for long conversations 🧠</td> </tr> <tr> <td align="center">14</td> <td nowrap><code>context-optimized</code></td> <td>Pick the best fit for the current context size</td> </tr> <tr> <td align="center">15</td> <td nowrap><code>cache-optimized</code></td> <td>Pin each reusable prompt prefix to the same account — maximize prompt-cache hits 🎯</td> </tr> <tr> <td align="center">16</td> <td nowrap><code>lkgp</code></td> <td>Last-Known-Good Path — sticky to the last successful target</td> </tr> <tr> <td align="center">17</td> <td nowrap><code>auto</code></td> <td>14-factor live scoring across every connection 🤖</td> </tr> <tr> <td align="center">18</td> <td nowrap><code>fusion</code></td> <td>Fan out to a panel of models + a judge synthesizes one answer 🧬</td> </tr> <tr> <td align="center">19</td> <td nowrap><code>pipeline</code></td> <td>Chain steps — each target's output feeds the next one 🔗</td> </tr> </table>

<sub>The Auto-Combo engine scores every candidate on 14 factors (health, quota, cost, latency, success rate, freshness…) — see docs/routing/AUTO-COMBO.md.</sub>

🧱 Resilience is built in (3 independent layers)

<sub>📖 Auto-Combo Engine · Resilience Guide</sub>

<div align="center">

🏆 What Sets OmniRoute Apart

</div>

<sub>📊 Full methodology & per-feature detail vs 9router, OpenRouter, CLIProxyAPI & LiteLLM → docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md</sub>

💚 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.

<table> <tr><td nowrap>⭐ <b>Star the repo</b></td><td>Free — genuinely helps visibility</td><td><a href="https://github.com/diegosouzapw/OmniRoute">Star OmniRoute</a></td></tr> <tr><td nowrap>🐙 <b>GitHub Sponsors</b></td><td>One-off or monthly · zero platform fee</td><td><a href="https://github.com/sponsors/diegosouzapw">github.com/sponsors/diegosouzapw</a></td></tr> <tr><td nowrap>☕ <b>Ko-fi</b></td><td>Quick one-off tip, no signup for the donor</td><td><a href="https://ko-fi.com/diegosouzapw">ko-fi.com/diegosouzapw</a></td></tr> <tr><td nowrap>🧋 <b>Buy Me a Coffee</b></td><td>Small, informal gesture</td><td><a href="https://www.buymeacoffee.com/diegosouzapw">buymeacoffee.com/diegosouzapw</a></td></tr> <tr><td nowrap>🖐 <b>Liberapay</b></td><td>Recurring · non-profit · open source</td><td><a href="https://liberapay.com/diegosouzapw">liberapay.com/diegosouzapw</a></td></tr> <tr><td nowrap>🇧🇷 <b>PIX</b> (Brazil)</td><td>Instant, no fees</td><td>key &amp; QR below</td></tr> <tr><td nowrap>₿ <b>Crypto</b></td><td>BTC · ETH · USDT-TRC20 · USDC-Solana</td><td>addresses below</td></tr> </table>

🇧🇷 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
<br clear="right"/> <details> <summary><b>₿ Crypto</b> — BTC · ETH · USDT-TRC20 · USDC-Solana (click to expand)</summary> <table> <tr><td nowrap><b>₿ BTC</b></td><td nowrap>Bitcoin (SegWit)</td><td><code>bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd</code></td></tr> <tr><td nowrap><b>Ξ ETH</b></td><td nowrap>Ethereum (ERC20)</td><td><code>0x64Cf6B68A6Ff34288e89172950a2d00102337a84</code></td></tr> <tr><td nowrap><b>₮ USDT</b></td><td nowrap>Tron (TRC20)</td><td><code>TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2</code></td></tr> <tr><td nowrap><b>$ USDC</b></td><td nowrap>Solana</td><td><code>2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu</code></td></tr> </table>

<sub>⚠️ Send each coin only on the network shown — sending on the wrong network can lose the funds.</sub>

</details>

🐛 Found a bug or have feedback? Open a Discussion.

<div align="center">

✨ What's New

</div>

Recent highlights from v3.8.20 → v3.8.50. Full history in CHANGELOG.md.

  • 🎛️ 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/models ordering — 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 setupsetup-* configures 12+ coding tools; omniroute launch / launch-codex are zero-config. → CLI Integrations
  • 🛰️ Remote mode — drive a remote OmniRoute with scoped tokens (connect / contexts / tokens) + an antigravity OAuth helper for VPS installs. → Remote Mode
  • 🧭 Smarter auto-routingauto/<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 everywhereX-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, Freepik, Adobe Firefly, Microsoft Designer, Google Imagen, Segmind, EdgeTTS. → 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 — Cursor Cloud Agent, 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 339-provider catalog. → Providers
  • 📡 Routing transparency — every response carries an X-OmniRoute-Decision header naming the strategy/provider/latency that served it, a new cache-optimized combo strategy + Auto-Combo cacheAffinity factor route repeat requests back to the connection holding the cached prefix, and a read-only /v1/auto-combo/{channel}/candidates endpoint exposes an auto/* 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
<div align="center">

🤖 Compatible CLIs & Coding Agents

One config — http://localhost:20128/v1 — and every AI IDE or CLI runs on free & low-cost models.

<div align="center"> <table> <tr> <td align="center" width="76"><a href="https://github.com/anthropics/claude-code"> <sub><b>Claude Code</b></sub> <sub>                           </sub></a></td> <td align="center" width="76"><a href="https://github.com/openai/codex"> <sub><b>Codex CLI</b></sub> <sub>                           </sub></a></td> <td align="center" width="76"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/[email protected]/dark/cline.png"/></picture> <sub><b>Cline</b></sub> <sub>                           </sub></td> <td align="center" width="76"><a href="https://github.com/Kilo-Org/kilocode"> <sub><b>Kilo Code</b></sub> <sub>                           </sub></a></td> <td align="center" width="76"><a href="https://github.com/Zoo-Code-Org/Zoo-Code"> <sub><b>Zoo Code</b></sub> <sub>                           </sub></a></td> <td align="center" width="76"> <sub><b>Continue</b></sub> <sub>                           </sub></td> </tr> <tr> <td align="center" width="76"> <sub><b>Aider</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>ForgeCode</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>jcode</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>DeepSeek TUI</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>CodeWhale</b></sub> <sub>                           </sub></td> <td align="center" width="76"><a href="https://github.com/anomalyco/opencode"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/[email protected]/dark/opencode.png"/></picture> <sub><b>OpenCode</b></sub> <sub>                           </sub></a></td> </tr> <tr> <td align="center" width="76"> <sub><b>Factory Droid</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>Copilot CLI</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>Cursor CLI</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>Smelt</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>Pi</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>Grok Build</b></sub> <sub>                           </sub></td> </tr> <tr> <td align="center" width="76"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/[email protected]/dark/nousresearch.png"/></picture> <sub><b>Hermes Agent</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>OpenClaw</b></sub> <sub>                           </sub></td> <td align="center" width="76"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/[email protected]/dark/goose.png"/></picture> <sub><b>Goose</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>Open Interpreter</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>Warp AI</b></sub> <sub>                           </sub></td> <td align="center" width="76"> <sub><b>Agent Deck</b></sub> <sub>                           </sub></td> </tr> </table> </div> <div align="center"> <b>+ also works with</b> · Kiro · Command Code · Antigravity · Windsurf · AMP · <b>any OpenAI-compatible tool</b> </div>

<sub>📖 Per-tool setup for all 33 tools (25 CLI Code's + 8 CLI Agents) → docs/reference/CLI-TOOLS.md · 🧩 OpenCode plugin → @omniroute/opencode-provider</sub>

</div> <div align="center">

🌐 339 AI Providers — 90+ Free

</div>

The most complete catalog of any open-source router: 339 providers, 90+ with a free tier, 40+ free forever.

<div align="center">

🏢 Every major lab — through one endpoint

<table> <tr> <td align="center" width="80"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/[email protected]/dark/openai.png"/></picture> <sub>OpenAI</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>Anthropic</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>Gemini</sub> <sub>                           </sub></td> <td align="center" width="80"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/[email protected]/dark/grok.png"/></picture> <sub>xAI Grok</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>DeepSeek</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>Mistral</sub> <sub>                           </sub></td> </tr> <tr> <td align="center" width="80"> <sub>Qwen</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>Meta Llama</sub> <sub>                           </sub></td> <td align="center" width="80"><picture><source media="(prefers-color-scheme:dark)" srcset="https://cdn.jsdelivr.net/npm/@lobehub/[email protected]/dark/groq.png"/></picture> <sub>Groq</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>NVIDIA</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>MiniMax</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>Cohere</sub> <sub>                           </sub></td> </tr> <tr> <td align="center" width="80"> <sub>Perplexity</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>HuggingFace</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>Together</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>Fireworks</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>Cloudflare</sub> <sub>                           </sub></td> <td align="center" width="80"> <sub>Baidu</sub> <sub>                           </sub></td> </tr> </table>

<sub>…and 220+ more — every icon resolves live from the dashboard's provider catalog. 📖 Provider Reference</sub>

🆓 Free Forever — $0, no card

<table> <tr> <td align="center" width="150"> <b>OpenCode Zen</b> <sub>DeepSeek V4, Nemotron 3 No token cap</sub></td> <td align="center" width="150"> <b>Kilo Code</b> <sub>Auto-router, Tencent Hy3 Free forever</sub></td> <td align="center" width="150"> <b>Requesty</b> <sub>GPT-OSS 120B, Nemotron Free forever</sub></td> <td align="center" width="150"> <b>SiliconFlow</b> <sub>DeepSeek V3.2 / R1 Free tier</sub></td> <td align="center" width="150"> <b>Z.AI GLM</b> <sub>GLM-4.7 / 4.5-Flash Free forever</sub></td> <td align="center" width="150"> <b>Baidu ERNIE</b> <sub>ERNIE 4.0 Free forever</sub></td> </tr> <tr> <td align="center" width="150"> <b>Qoder AI</b> <sub>Qwen3-Max, Kimi-K2 Unlimited FREE</sub></td> <td align="center" width="150"> <b>Pollinations</b> <sub>GPT, Llama, Claude No key needed</sub></td> <td align="center" width="150"> <b>Cloudflare AI</b> <sub>50+ models 10K neurons/day</sub></td> <td align="center" width="150"> <b>NVIDIA NIM</b> <sub>GLM, MiniMax ~40 RPM free</sub></td> <td align="center" width="150"> <b>Cerebras</b> <sub>GLM 4.7, GPT-OSS 1M tokens/day</sub></td> <td align="center" width="150"> <b>OpenRouter</b> <sub>:free models +$10 → higher RPM</sub></td> </tr> </table>

📖 Full machine-readable catalog → docs/reference/PROVIDER_REFERENCE.md

</div> <div align="center">

🖥️ Where OmniRoute Runs — Anywhere

</div>

Same app, your machine, your rules. From a global npm install to your phone via Termux.

<table> <tr><th align="left">Platform</th><th align="left">Install</th><th align="left">Highlights</th></tr> <tr><td align="left" nowrap>📦 <b>npm (global)</b></td><td align="left" nowrap><code>npm install -g omniroute</code></td><td align="left">One command, any OS</td></tr> <tr><td align="left" nowrap>🐳 <b>Docker</b></td><td align="left" nowrap><code>docker run … diegosouzapw/omniroute</code></td><td align="left">Multi-arch <b>AMD64 + ARM64</b></td></tr> <tr><td align="left" nowrap>🖥️ <b>Desktop (Electron)</b></td><td align="left" nowrap><code>npm run electron:build</code></td><td align="left">Native window + system tray — <b>Windows / macOS / Linux</b></td></tr> <tr><td align="left" nowrap>💪 <b>ARM</b></td><td align="left" nowrap>native <code>arm64</code></td><td align="left">Raspberry Pi, ARM servers, Apple Silicon</td></tr> <tr><td align="left" nowrap>📱 <b>Android (Termux)</b></td><td align="left" nowrap><code>pkg install nodejs && npx -y omniroute</code></td><td align="left">Runs <b>on your phone</b>, 24/7, no root</td></tr> <tr><td align="left" nowrap>📲 <b>PWA</b></td><td align="left" nowrap>"Add to Home Screen"</td><td align="left">Fullscreen, offline, installable from browser</td></tr> <tr><td align="left" nowrap>🧩 <b>OpenCode plugin</b></td><td align="left" nowrap><code>@omniroute/opencode-provider</code></td><td align="left">Native OpenCode integration</td></tr> <tr><td align="left" nowrap>🛠️ <b>From source</b></td><td align="left" nowrap><code>npm install && npm run dev</code></td><td align="left">Hack on it, contribute</td></tr> </table>

<sub>📖 Docker Guide · Desktop · Termux · PWA · OpenCode</sub>

<div align="center">

🔒 Private & Local-First

</div>

<sub>📖 Authorization · Guardrails · Compliance</sub>

<div align="center">

🔌 Full CLI + A2A & MCP

</div>

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)

bash
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.

bash
omniroute connect 192.168.0.15            # password → scoped token, saved as a context
omniroute models list                     # ← 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. <sub>📖 Remote Mode</sub>

<div align="left"> </div>

🤝 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.

<table> <tr><th align="left">Interface</th><th align="left">Endpoint / command</th><th align="left">Use it for</th></tr> <tr><td align="left" nowrap>🧰 <b>MCP (stdio)</b></td><td align="left" nowrap><code>omniroute --mcp</code></td><td align="left">Plug into Claude Desktop, Cursor, any MCP client</td></tr> <tr><td align="left" nowrap>🌊 <b>MCP (HTTP)</b></td><td align="left" nowrap><code>/api/mcp/stream</code></td><td align="left">Remote MCP — <b>105 tools</b>, 31 scopes, full audit trail</td></tr> <tr><td align="left" nowrap>📡 <b>MCP (SSE)</b></td><td align="left" nowrap><code>/api/mcp/sse</code></td><td align="left">Streaming MCP transport</td></tr> <tr><td align="left" nowrap>🤝 <b>A2A</b></td><td align="left" nowrap><code>/.well-known/agent.json</code></td><td align="left">Agent-to-agent, <b>JSON-RPC 2.0</b> + SSE, 6 skills</td></tr> <tr><td align="left" nowrap>🌐 <b>REST API</b></td><td align="left" nowrap><code>/v1/*</code></td><td align="left">OpenAI-compatible — chat, embeddings, images, audio, OCR</td></tr> <tr><td align="left" nowrap>🔔 <b>Webhooks</b></td><td align="left" nowrap><code>/api/webhooks</code></td><td align="left">Push events (usage, quota, errors, routing) to your URL</td></tr> <tr><td align="left" nowrap>🛰️ <b>Remote CLI</b></td><td align="left" nowrap><code>omniroute connect <host></code></td><td align="left">Drive a remote instance with scoped access tokens</td></tr> </table>
bash
# Give Claude Code the full OmniRoute toolset over MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream

<sub>📖 MCP Server · A2A Server · Agent Protocols</sub>

<div align="center">

🗜️ Save 15–95% Tokens — Automatically

</div>

📖 How it works — pipeline, architecture & savings math

Default stacked combo runs RTK → Caveman. When both act on the same tool/context payload, savings compound:

txt
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:

<table> <tr><th align="center">#</th><th align="left">Engine</th><th align="left">What it does</th></tr> <tr><td align="center" nowrap>1</td><td align="left" nowrap><b>Session-Dedup</b></td><td align="left">Drops content repeated across turns (content-addressed, cross-turn)</td></tr> <tr><td align="center" nowrap>2</td><td align="left" nowrap><b>CCR</b></td><td align="left">Archives large blocks behind retrieve markers, fetched on demand</td></tr> <tr><td align="center" nowrap>3</td><td align="left" nowrap><b>Lite</b></td><td align="left">Whitespace + image-URL trimming (latency-light baseline)</td></tr> <tr><td align="center" nowrap>4</td><td align="left" nowrap><b>RTK</b></td><td align="left">Smart tool-result filtering, dedup & truncation (command-aware)</td></tr> <tr><td align="center" nowrap>5</td><td align="left" nowrap><b>Responses Tool Output</b></td><td align="left">Lossless-first JSON + bounded diagnostic compression for shell/patch/search/build outputs (Responses API)</td></tr> <tr><td align="center" nowrap>6</td><td align="left" nowrap><b>Headroom</b></td><td align="left">Lossless tabular compaction of JSON arrays (~30%) via a vendored <b>GCF</b> codec</td></tr> <tr><td align="center" nowrap>7</td><td align="left" nowrap><b>Relevance</b></td><td align="left">Extractive sentence scoring against the last user query</td></tr> <tr><td align="center" nowrap>8</td><td align="left" nowrap><b>Caveman</b></td><td align="left">Rule-based prose compression (~65–75% on output)</td></tr> <tr><td align="center" nowrap>9</td><td align="left" nowrap><b>Aggressive</b></td><td align="left">Summarization + progressive aging of old turns</td></tr> <tr><td align="center" nowrap>10</td><td align="left" nowrap><b>LLMLingua-2</b></td><td align="left">ML semantic pruning via MobileBERT ONNX — code-safe, async</td></tr> <tr><td align="center" nowrap>11</td><td align="left" nowrap><b>Ultra</b></td><td align="left">Heuristic token pruning with an optional small-model (SLM) tier</td></tr> <tr><td align="center" nowrap>12</td><td align="left" nowrap><b>OmniGlyph</b></td><td align="left">Experimental context-as-image encoding routed to Claude Fable 5 (most aggressive; opt-in)</td></tr> </table>

Code blocks, URLs and structured data are always preserved byte-perfect. One-click presets combine the engines:

<table> <tr><th align="left">Mode</th><th align="left">Savings</th><th align="left">Best for</th></tr> <tr><td align="left" nowrap>🪶 <b>Lite</b></td><td align="left" nowrap>~15%</td><td align="left">Always-on safe default</td></tr> <tr><td align="left" nowrap>🪨 <b>Standard (Caveman)</b></td><td align="left" nowrap>~30%</td><td align="left">Daily coding</td></tr> <tr><td align="left" nowrap>⚡ <b>Aggressive</b></td><td align="left" nowrap>~50%</td><td align="left">Long tool-heavy sessions</td></tr> <tr><td align="left" nowrap>🔥 <b>Ultra</b></td><td align="left" nowrap>~75%</td><td align="left">Maximum savings</td></tr> <tr><td align="left" nowrap>🧰 <b>RTK</b></td><td align="left" nowrap>60–90%</td><td align="left">Shell/test/build/git output</td></tr> <tr><td align="left" nowrap>🔗 <b>Stacked (RTK → Caveman)</b></td><td align="left" nowrap><b>78–95%</b></td><td align="left">Mixed prompts + tool logs</td></tr> </table>

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 / ultra intensity. 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.
    • 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 threshold).
  • 🎛️ Where compression is decided (precedence, high → low) — per-request x-omniroute-compression header › routing-combo override › active named profile › adaptive / auto-trigger › panel default › off. The applied plan echoes back in the X-OmniRoute-Compression: <mode>; source=<source> response header.

Auto-trigger by token threshold, flip on the adaptive dial, pin a named profile, set a one-off per request, or assign a pipeline per routing combo — whichever fits the workload. An opt-in offline eval harness (npm run eval:compression) scores fidelity vs. savings on a pinned corpus before you promote a change.

📖 COMPRESSION_GUIDE.md · RTK_COMPRESSION.md · COMPRESSION_ENGINES.md

<div align="center">

⚡ Quick Start

</div>

1) Install & run

bash
npm install -g omniroute
omniroute

💡 See npm warn ERESOLVE or peer-dep warnings? They're harmless.

Dashboard at http://localhost:20128 · API at http://localhost:20128/v1.

2) Connect a FREE provider (no signup)

Dashboard → Providers → connect Kiro AI (free Claude, ~50 credits/month per account) or OpenCode Free (no auth) → done.

3) Point your coding tool

txt
Base URL: http://localhost:20128/v1
API Key:  [copy from Dashboard → Endpoints]
Model:    auto            (zero-config smart routing — or any provider/model)

4) Verify it's working

bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"

You should see your connected models listed. 🎉 That's it — start coding, and OmniRoute auto-routes & falls back for you.

If your client cannot send custom headers, OmniRoute also exposes tokenized compatibility aliases:

txt
OpenAI catalog:   http://localhost:20128/vscode/YOUR_KEY/
OpenAI models:    http://localhost:20128/vscode/YOUR_KEY/models
OpenAI chat:      http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI responses: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama chat:      http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama tags:      http://localhost:20128/vscode/YOUR_KEY/api/tags

Use these only for clients that cannot attach Authorization: Bearer .... Header auth remains the preferred mode.

📦 More install methods — Docker, source, pnpm, Arch

🐳 Docker

bash
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

Pre-release Docker channel: diegosouzapw/omniroute:next and diegosouzapw/omniroute:next-web follow the current default release/v* branch. These mutable tags are intended only for testing unreleased fixes and are not supported for production. See Docker Release Channels.

🛠️ From source

bash
cp .env.example .env && npm install
PORT=20128 npm run dev

📦 pnpm

bash
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute

🐧 Arch Linux (AUR)

bash
yay -S omniroute-bin && systemctl --user enable --now omniroute.service

🔧 Nix (Flake)

bash
# Using Nix flakes
nix develop
npm run dev

# Or using devbox
devbox run npm run dev

📖 Docker Guide — Compose profiles, Caddy HTTPS, Cloudflare tunnels.

🦭 Podman

bash
# 1. Prepare the bind-mounted data directory
mkdir -p data

# 2. Linux + local rootless Podman only (never a remote Podman Machine client):
podman unshare chown 1000:1000 ./data

# 3. Set the runtime hint, build the local Compose image, and start
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build

On macOS or Windows, Podman uses a remote Podman Machine: skip podman unshare and follow the topology-specific data directory guidance.

📖 Podman Guide — Compose builds, Podman Machine, and Linux/systemd Quadlet setup.

⚡ Faster / leaner install (skip the native build)

The native SQLite engine (better-sqlite3) is an optional dependency, so a global install never blocks on compiling from source: it uses a prebuilt binary when one matches your platform/Node, and otherwise falls back transparently to a pure-JS engine (node:sqlite on Node 22+, else the bundled sql.js WASM) — no build tools required.

To skip the post-install native warm-up entirely (CI, headless, or slow machines):

bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute   # CI=1 also skips it

For the fastest installs prefer pnpm (content-addressed store + hard links — see above). For a dashboard-free, headless runtime use the Docker base profile (above) or the Termux guide. The CLI and the web dashboard are served by the same process on one port, so there is no separate CLI-only package today.

<div align="center">

🎬 OmniRoute in Action

</div> <div align="center"> <table> <tr> <td align="center" width="264"> <a href="https://www.youtube.com/watch?v=Rxdc36yUyOQ"></a>
  <b>🇧🇷 Português</b>

<sub>Guia completo</sub> </td> <td align="center" width="264"> <a href="https://www.youtube.com/watch?v=CMzyOiUyEVc"></a>

  <b>🇺🇸 English</b>

<sub>Complete walkthrough</sub> </td> <td align="center" width="264"> <a href="https://www.youtube.com/watch?v=il_5Ii6v4-Y"></a>

  <b>🇷🇺 Русский</b>

<sub>Полное руководство</sub> </td>

</tr> </table> </div> <div align="center">

🎬 Made a video about OmniRoute? Open an issue or discussion with the link — we'll feature it here.

</div> <div align="center">

📧 Community & Help

Everything in one place — follow the maintainer, chat with the community, or open an issue.

ChannelWhere / how
💼 LinkedIn — follow the maintainerlinkedin.com/in/diegosouzapw
🐙 GitHub — follow for releases & tips@diegosouzapw
💬 Discorddiscord.gg/U47eFqAXCn
✈️ Telegramt.me/omnirouteOficial
🟢 WhatsApp — 🌍 Globaljoin the group
🟢 WhatsApp — 🇧🇷 Brasilentrar no grupo
🌍 Websiteomniroute.online
📦 Source codegithub.com/diegosouzapw/OmniRoute
🐛 Report a bugopen an issue — attach npm run system-info output
🤝 ContributeCONTRIBUTING.md · Branching & Release Model · pick a good first issue
💚 Support the projectWays to support ↑ · GitHub Sponsors
</div>
<div align="center">

🛠️ Tech Stack

</div> <table> <tr><th align="left">Layer</th><th align="left">Technology</th></tr> <tr><td nowrap><b>Runtime</b></td><td>Node.js 22.x / 24.x LTS — <code>&gt;=22.22.2 &lt;23 || &gt;=24.0.0 &lt;27</code></td></tr> <tr><td nowrap><b>Language</b></td><td>TypeScript 6.0 — <b>100% TypeScript</b> across <code>src/</code> and <code>open-sse/</code> (zero <code>any</code> in core since v2.0)</td></tr> <tr><td nowrap><b>Framework</b></td><td>Next.js 16 + React 19 + Tailwind CSS 4</td></tr> <tr><td nowrap><b>Database</b></td><td>better-sqlite3 (SQLite, WAL journaling) + LowDB (JSON legacy) — 95 domain modules, 145 migrations</td></tr> <tr><td nowrap><b>Memory</b></td><td>SQLite FTS5 full-text + int8-quantized vector embeddings, typed decay</td></tr> <tr><td nowrap><b>Schemas</b></td><td>Zod 4 — MCP tool I/O validation + API contracts</td></tr> <tr><td nowrap><b>Protocols</b></td><td>MCP (stdio / HTTP / SSE) + A2A v0.3 (JSON-RPC 2.0 + SSE)</td></tr> <tr><td nowrap><b>Streaming</b></td><td>Server-Sent Events (SSE) + WebSocket bridge (<code>/v1/ws</code>)</td></tr> <tr><td nowrap><b>Compression</b></td><td>12-engine pipeline — RTK, Caveman, LLMLingua-2 (MobileBERT ONNX), GCF, OmniGlyph</td></tr> <tr><td nowrap><b>Auth &amp; security</b></td><td>OAuth 2.0 (PKCE) + JWT + API Keys + MCP scoped auth · AES-256-GCM at rest · DOMPurify</td></tr> <tr><td nowrap><b>Stealth</b></td><td>wreq-js — JA3 / JA4 TLS fingerprint impersonation, 3-level proxy</td></tr> <tr><td nowrap><b>Resilience</b></td><td>Circuit breaker, exponential backoff, anti-thundering-herd, auto-combo self-healing</td></tr> <tr><td nowrap><b>Logging</b></td><td>pino — structured JSON logs with request context</td></tr> <tr><td nowrap><b>Testing</b></td><td>Node.js test runner + Vitest — <b>25,000+ test cases</b> across 3,300+ files (unit, integration, E2E, security, ecosystem)</td></tr> <tr><td nowrap><b>Platforms</b></td><td>Desktop (Electron) · Android (Termux) · PWA (any browser)</td></tr> <tr><td nowrap><b>CI/CD</b></td><td>GitHub Actions — auto npm publish + Docker Hub on release</td></tr> <tr><td nowrap><b>Links</b></td><td><a href="https://omniroute.online">Website</a> · <a href="https://www.npmjs.com/package/omniroute">npm</a> · <a href="https://hub.docker.com/r/diegosouzapw/omniroute">Docker Hub</a></td></tr> </table> <div align="center">

📖 Documentation

</div>

📘 Getting Started

<table> <tr><th align="left">Document</th><th align="left">Description</th></tr> <tr><td nowrap><b><a href="docs/guides/USER_GUIDE.md">User Guide</a></b></td><td>Providers, combos, CLI integration, deployment</td></tr> <tr><td nowrap><b><a href="docs/guides/SETUP_GUIDE.md">Setup Guide</a></b></td><td>Full install methods, CLI tool configs, protocol setup, timeout tuning</td></tr> <tr><td nowrap><b><a href="docs/reference/CLI-TOOLS.md">CLI Tools Guide</a></b></td><td>Per-tool setup for Claude Code, Codex, Cursor, Cline, OpenClaw, Kilo, Copilot</td></tr> <tr><td nowrap><b><a href="docs/guides/REMOTE-MODE.md">Remote Mode</a></b></td><td>Drive a remote OmniRoute (VPS) from your laptop CLI via scoped access tokens</td></tr> <tr><td nowrap><b><a href="docs/guides/CLAUDE-CODE-CONFIGURATION.md">Claude Code Config</a></b></td><td>Point Claude Code at OmniRoute (local/remote) with <code>launch</code> + per-model profiles</td></tr> <tr><td nowrap><b><a href="README.md#-quick-start">Quick Start</a></b></td><td>3-step install → connect → configure</td></tr> </table>

🔧 Operations & Deployment

<table> <tr><th align="left">Document</th><th align="left">Description</th></tr> <tr><td nowrap><b><a href="docs/guides/DOCKER_GUIDE.md">Docker Guide</a></b></td><td>Docker run, Compose profiles, Caddy HTTPS, tunnels, image tags</td></tr> <tr><td nowrap><b><a href="contrib/podman/README.md">Podman Guide</a></b></td><td>Quadlet systemd integration, podman-compose, SELinux</td></tr> <tr><td nowrap><b><a href="docs/ops/VM_DEPLOYMENT_GUIDE.md">VM Deployment</a></b></td><td>Complete guide: VM + nginx + Cloudflare setup</td></tr> <tr><td nowrap><b><a href="docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md">Fly.io Deployment</a></b></td><td>Deploy to Fly.io with persistent storage</td></tr> <tr><td nowrap><b><a href="docs/guides/TERMUX_GUIDE.md">Termux Guide</a></b></td><td>Run OmniRoute on Android via Termux</td></tr> <tr><td nowrap><b><a href="docs/guides/PWA_GUIDE.md">PWA Guide</a></b></td><td>Progressive Web App install, caching, architecture</td></tr> <tr><td nowrap><b><a href="docs/guides/UNINSTALL.md">Uninstall Guide</a></b></td><td>Clean removal for all install methods</td></tr> <tr><td nowrap><b><a href="docs/reference/ENVIRONMENT.md">Environment Config</a></b></td><td>Complete <code>.env</code> variables and references</td></tr> </table>

🧠 Features & Architecture

<table> <tr><th align="left">Document</th><th align="left">Description</th></tr> <tr><td nowrap><b><a href="docs/architecture/ARCHITECTURE.md">Architecture</a></b></td><td>System architecture, data flow, and internals</td></tr> <tr><td nowrap><b><a href="docs/compression/COMPRESSION_GUIDE.md">Compression Guide</a></b></td><td>7-option pipeline: off / lite / standard / aggressive / ultra / RTK / stacked</td></tr> <tr><td nowrap><b><a href="docs/compression/RTK_COMPRESSION.md">RTK Compression</a></b></td><td>Command-output compression, filters, trust, verify, raw-output recovery</td></tr> <tr><td nowrap><b><a href="docs/compression/COMPRESSION_ENGINES.md">Compression Engines</a></b></td><td>Caveman, RTK, stacked pipelines, dashboard/API/MCP surfaces</td></tr> <tr><td nowrap><b><a href="docs/compression/COMPRESSION_RULES_FORMAT.md">Compression Rules Format</a></b></td><td>JSON rule-pack schemas for Caveman and RTK filters</td></tr> <tr><td nowrap><b><a href="docs/compression/COMPRESSION_LANGUAGE_PACKS.md">Compression Language Packs</a></b></td><td>Language detection and Caveman rule-pack authoring</td></tr> <tr><td nowrap><b><a href="docs/architecture/RESILIENCE_GUIDE.md">Resilience Guide</a></b></td><td>Circuit breakers, cooldowns, queue, anti-thundering herd, TLS spoofing</td></tr> <tr><td nowrap><b><a href="docs/routing/AUTO-COMBO.md">Auto-Combo Engine</a></b></td><td>14-factor scoring, mode packs, self-healing</td></tr> <tr><td nowrap><b><a href="docs/ops/PROXY_GUIDE.md">Proxy Guide</a></b></td><td>3-level proxy system, 1proxy marketplace, registry CRUD</td></tr> <tr><td nowrap><b><a href="docs/reference/FREE_TIERS.md">Free Tiers</a></b></td><td>90+ free providers consolidated directory (42 documented token pools / 495 models)</td></tr> <tr><td nowrap><b><a href="docs/guides/FEATURES.md">Features Gallery</a></b></td><td>Visual dashboard tour with screenshots</td></tr> <tr><td nowrap><b><a href="docs/architecture/CODEBASE_DOCUMENTATION.md">Codebase Documentation</a></b></td><td>Beginner-friendly codebase walkthrough</td></tr> </table>

🤖 Protocols & APIs

<table> <tr><th align="left">Document</th><th align="left">Description</th></tr> <tr><td nowrap><b><a href="docs/reference/API_REFERENCE.md">API Reference</a></b></td><td>All endpoints with examples</td></tr> <tr><td nowrap><b><a href="docs/openapi.yaml">OpenAPI Spec</a></b></td><td>OpenAPI 3.0 specification</td></tr> <tr><td nowrap><b><a href="open-sse/mcp-server/README.md">MCP Server</a></b></td><td>105 MCP tools, IDE configs, Python/TS/Go clients</td></tr> <tr><td nowrap><b><a href="docs/frameworks/MCP-SERVER.md">MCP Server Guide</a></b></td><td>MCP installation, transports, and tool reference</td></tr> <tr><td nowrap><b><a href="src/lib/a2a/README.md">A2A Server</a></b></td><td>JSON-RPC 2.0 protocol, skills, streaming, task mgmt</td></tr> <tr><td nowrap><b><a href="docs/frameworks/A2A-SERVER.md">A2A Server Guide</a></b></td><td>A2A agent card, tasks, skills, and streaming</td></tr> </table>

📋 Project & Quality

<table> <tr><th align="left">Document</th><th align="left">Description</th></tr> <tr><td nowrap><b><a href="CONTRIBUTING.md">Contributing</a></b></td><td>Development setup and guidelines</td></tr> <tr><td nowrap><b><a href="docs/ops/BRANCHING_MODEL.md">Branching & Release Model</a></b></td><td>Where PRs target (<code>release/*</code>), what <code>main</code> and tags mean</td></tr> <tr><td nowrap><b><a href="CHANGELOG.md">Changelog</a></b></td><td>Full per-version release history</td></tr> <tr><td nowrap><b><a href="SECURITY.md">Security Policy</a></b></td><td>Vulnerability reporting and security practices</td></tr> <tr><td nowrap><b><a href="docs/guides/I18N.md">i18n Guide</a></b></td><td>43-language support, translation workflow, RTL</td></tr> <tr><td nowrap><b><a href="docs/ops/RELEASE_CHECKLIST.md">Release Checklist</a></b></td><td>Pre-release validation steps</td></tr> <tr><td nowrap><b><a href="docs/ops/COVERAGE_PLAN.md">Coverage Plan</a></b></td><td>Test coverage strategy and 25,000+ test suite</td></tr> </table> <div align="center">

⭐ Top Contributors

OmniRoute is shaped by a passionate open-source community. These individuals have made exceptional contributions that directly impact the quality, stability, and reach of the project. Thank you.

<table> <tr> <td align="center" width="160"> <a href="https://github.com/oyi77">
    <b>oyi77</b>
  </a>

  <sub>🥇 213 commits • +114K lines</sub>

  <sub>Analytics engine, SQL aggregations,

proxy marketplace, test coverage</sub> </td> <td align="center" width="160"> <a href="https://github.com/rdself">

    <b>R.D. &amp; Randi</b>
  </a>

  <sub>🥈 108 commits • +38K lines</sub>

  <sub>Endpoints page, tunnel integrations,

Docker workflows, A2A status, compression UI</sub> </td> <td align="center" width="160"> <a href="https://github.com/christopher-s">

    <b>Chris Staley</b>
  </a>

  <sub>🥉 70 commits • +1.8K lines</sub>

  <sub>SSE stream hardening, Responses API,

Gemini pagination, test regression fixes</sub> </td> <td align="center" width="160"> <a href="https://github.com/zen0bit">

    <b>zenobit</b>
  </a>

  <sub>🏅 62 commits • +22K lines</sub>

  <sub>CI/CD pipeline, i18n for 33 languages,

Void Linux package, platform fixes</sub> </td> <td align="center" width="160"> <a href="https://github.com/JxnLexn">

    <b>Jan Leon</b>
  </a>

  <sub>🏅 58 commits • +22K lines</sub>

  <sub>Reasoning-effort routing, proxy controls,

quota visibility, Live Zone compression</sub> </td>

</tr> <tr> <td align="center" width="160"> <a href="https://github.com/backryun">
    <b>backryun</b>
  </a>

  <sub>🏅 53 commits • +70K lines</sub>

  <sub>Provider catalog curation — Perplexity, Kimi,

Cerebras, Copilot, LMArena refreshes</sub> </td> <td align="center" width="160"> <a href="https://github.com/chirag127">

    <b>Chirag Singhal</b>
  </a>

  <sub>🏅 46 commits • +4.8K lines</sub>

  <sub>Error sanitization, MITM prefill fix,

fusion judge, breaker/429 correctness</sub> </td> <td align="center" width="160"> <a href="https://github.com/kfiramar">

    <b>kfiramar</b>
  </a>

  <sub>🏅 38 commits • +1.7K lines</sub>

  <sub>Codex websocket + passthrough, auth/onboarding,

Electron hardening, DB migrations</sub> </td> <td align="center" width="160"> <a href="https://github.com/benzntech">

    <b>Benson K B</b>
  </a>

  <sub>🏅 28 commits • +9.2K lines</sub>

  <sub>Electron desktop app, auto-updater,

release build workflows, cross-platform CI</sub> </td> <td align="center" width="160"> <a href="https://github.com/herjarsa">

    <b>Hernan J. Ardila</b>
  </a>

  <sub>🏅 25 commits • +174K lines</sub>

  <sub>Zero-latency combos, vision-bridge auto-routing,

catalog context-length, resilience 429 hints</sub> </td>

</tr> </table>

🙏 These contributors' features, bug fixes, and infrastructure improvements are a core part of what makes OmniRoute reliable and feature-rich. Every pull request, every test case, and every i18n translation file matters. Open source is built by people like them.

</div>

💖 Sponsors

<div align="center">

A heartfelt thank-you to the people who fund OmniRoute out of their own pocket — every contribution keeps the project free, independent and moving.

<table> <tr> <td align="center" width="180"> <a href="https://github.com/igormorais123">
    <b>Prof. Igor Morais</b>
  </a>

  <sub>💛 Sponsor</sub>
</td>
<td align="center" width="180">
  <a href="https://github.com/longtao77">
    

    <b>longtao</b>
  </a>

  <sub>💛 Sponsor</sub>
</td>
</tr> </table>

<sub>… and others who prefer to stay private 💛</sub>

<b><a href="https://github.com/sponsors/diegosouzapw">💖 Become a sponsor →</a></b> — every dollar keeps OmniRoute free and independent.

</div> <div align="center">

👥 320+ Contributors

</div>

How to Contribute

  1. Fork the repository
  2. Branch from the active release/vX.Y.Z tip (not main) — see Branching & Release Model
  3. Create your feature branch (git checkout -b feat/amazing-feature)
  4. Commit your changes (git commit -m 'feat: add amazing feature')
  5. Push to the branch (git push origin feat/amazing-feature)
  6. Open a Pull Request with base = that release/vX.Y.Z branch

See CONTRIBUTING.md for detailed guidelines.

Releasing a New Version

bash
# Create a release — npm publish happens automatically
gh release create v3.8.2 --title "v3.8.2" --generate-notes
<div align="center">

📊 Stars

<a href="https://www.star-history.com/?repos=diegosouzapw%2FOmniRoute&type=date&legend=top-left"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=diegosouzapw/OmniRoute&type=date&theme=dark&legend=top-left&sealed_token=XP_ycEjv7s31p1edvhsMOXry51OWYsUjDRWjflSG7jQKRpO9hPGg7i_EHvwhI6QtrARTMH-YGjJhi8sumRYflEJD0DPlH_MMHjizhBYCX8fbHFrHEiNvVA" /> <source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=diegosouzapw/OmniRoute&type=date&legend=top-left&sealed_token=XP_ycEjv7s31p1edvhsMOXry51OWYsUjDRWjflSG7jQKRpO9hPGg7i_EHvwhI6QtrARTMH-YGjJhi8sumRYflEJD0DPlH_MMHjizhBYCX8fbHFrHEiNvVA" /> </picture> </a> <div align="center">

🌍 StarMapper

<a href="https://starmapper.bruniaux.com/diegosouzapw/omniroute"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://starmapper.bruniaux.com/api/map-image/diegosouzapw/omniroute?theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://starmapper.bruniaux.com/api/map-image/diegosouzapw/omniroute?theme=light" /> </picture> </a> </div> <div align="center">

🙏 Acknowledgments

</div>

OmniRoute stands on the shoulders of giants. It started as a fork of 9router and a TypeScript port of the Go project CLIProxyAPI — and from there, every subsystem below was inspired by an open-source project that got there first. Each one shaped a concrete piece of OmniRoute. This is our thank-you to all of them. 🙏

⭐ star counts as of July 2026 — go give these projects a star.

🧬 Lineage & gateway

<table> <tr><th align="left">Project</th><th align="center">⭐</th><th align="left">How it inspired OmniRoute</th></tr> <tr><td nowrap><b><a href="https://github.com/decolua/9router">9router</a></b></td><td align="center">22.7k</td><td>The original project this fork is built on — extended here with multi-modal APIs and a full TypeScript rewrite.</td></tr> <tr><td nowrap><b><a href="https://github.com/router-for-me/CLIProxyAPI">CLIProxyAPI</a></b></td><td align="center">43.6k</td><td>The Go implementation that inspired this JavaScript / TypeScript port.</td></tr> <tr><td nowrap><b><a href="https://github.com/BerriAI/litellm">LiteLLM</a></b></td><td align="center">54.0k</td><td>The AI gateway whose public pricing dataset feeds our cost-tracking sync and whose provider-normalization model informed our routing.</td></tr> </table>

🗜️ Context & token compression — engines

<table> <tr><th align="left">Project</th><th align="center">⭐</th><th align="left">How it inspired OmniRoute</th></tr> <tr><td nowrap><b><a href="https://github.com/JuliusBrussee/caveman">Caveman</a></b></td><td align="center">90.8k</td><td>The viral "why use many token when few token do trick" project — its caveman-speak philosophy powers our standard compression mode and 30+ filler/condensation rules.</td></tr> <tr><td nowrap><b><a href="https://github.com/rtk-ai/rtk">RTK – Rust Token Killer</a></b></td><td align="center">71.8k</td><td>High-performance command-output compression — inspired our RTK engine, JSON filter DSL, raw-output recovery and the stacked RTK → Caveman pipeline.</td></tr> <tr><td nowrap><b><a href="https://github.com/headroomlabs-ai/headroom">headroom</a></b></td><td align="center">60.1k</td><td>Reversible context-compression (SmartCrusher) — inspired our <code>headroom</code> engine and the <code>ccr</code> retrieve-marker pattern.</td></tr> <tr><td nowrap><b><a href="https://github.com/microsoft/LLMLingua">LLMLingua</a></b></td><td align="center">6.5k</td><td>Prompt-compression research (LLMLingua / LLMLingua-2) — inspired our async, code-safe, fail-open <code>llmlingua</code> engine.</td></tr> <tr><td nowrap><b><a href="https://github.com/atjsh/llmlingua-2-js">llmlingua-2-js</a></b></td><td align="center">30</td><td>The JS/ONNX port (MobileBERT / XLM-RoBERTa) used as the worker-thread backend for our LLMLingua engine.</td></tr> <tr><td nowrap><b><a href="https://github.com/leninejunior/troglodita">Troglodita</a></b></td><td align="center">26</td><td>PT-BR token compression — powers our pt-BR language pack: pleonasm reduction and filler removal tuned for Brazilian-Portuguese grammar.</td></tr> <tr><td nowrap><b><a href="https://github.com/DietrichGebert/ponytail">ponytail</a></b></td><td align="center">86.0k</td><td>The viral "lazy senior dev" YAGNI-coder skill — inspired our <b>less-code</b> Output Style: smallest-working-change steering that cuts _generated_ code (the output-axis sibling to Caveman's terse prose).</td></tr> </table>

🧩 Compact formats, token research & code-aware tooling

<table> <tr><th align="left">Project</th><th align="center">⭐</th><th align="left">How it inspired OmniRoute</th></tr> <tr><td nowrap><b><a href="https://github.com/toon-format/toon">TOON</a></b></td><td align="center">24.9k</td><td>Token-Oriented Object Notation — its columnar, header-plus-rows model shaped our tabular compaction stage.</td></tr> <tr><td nowrap><b><a href="https://github.com/blackwell-systems/gcf">GCF – Graph Compact Format</a></b></td><td align="center">22</td><td>First inspired our tabular compaction stage; now its zero-dependency, lossless generic-profile encoder is <b>vendored directly</b> as the Headroom codec (MIT, SPDX-marked), current with GCF spec v3.2.</td></tr> <tr><td nowrap><b><a href="https://github.com/ooples/token-optimizer-mcp">token-optimizer-mcp</a></b></td><td align="center">444</td><td>Brotli/SQLite cache + per-session context-delta — inspired our <code>session-dedup</code> engine.</td></tr> <tr><td nowrap><b><a href="https://github.com/Mibayy/token-savior">token-savior</a></b></td><td align="center">1.1k</td><td>Bash-output compaction + MCP profiles — inspired our compression bail-out discipline and MCP tool-manifest reduction.</td></tr> <tr><td nowrap><b><a href="https://github.com/ppgranger/token-saver">token-saver</a></b></td><td align="center">117</td><td>Content-aware, per-file-type output compression with failure-aware bail-out — validated our per-type dispatch and minimum-gain skip.</td></tr> <tr><td nowrap><b><a href="https://github.com/alexgreensh/token-optimizer">token-optimizer</a></b></td><td align="center">1.7k</td><td>"Find the ghost tokens" — its offload + recoverable-handle pattern informed our CCR offload thinking.</td></tr> <tr><td nowrap><b><a href="https://github.com/Shweta-Mishra-ai/tokenmizer">TokenMizer</a></b></td><td align="center">16</td><td>A session-graph + cross-turn line-dedup blueprint that informed our session-dedup design.</td></tr> <tr><td nowrap><b><a href="https://github.com/jessefreitas/OmniCompress">OmniCompress</a></b></td><td align="center">3</td><td>Rust columnar-JSON + content-addressed retrieve + cross-message dedup — validated our <code>headroom</code>/<code>ccr</code>/<code>session-dedup</code> engine design and the cache-stable "compressed form is position-independent" invariant.</td></tr> <tr><td nowrap><b><a href="https://github.com/atlassian-labs/mcp-compressor">mcp-compressor</a></b></td><td align="center">98</td><td>MCP tool-schema/description compression — informed our MCP tool-manifest cardinality reduction.</td></tr> <tr><td nowrap><b><a href="https://github.com/pdavis68/RepoMapper">RepoMapper</a></b></td><td align="center">187</td><td>Aider-style repo-map ranking — informed our repo-map / retrieval-ranking exploration.</td></tr> <tr><td nowrap><b><a href="https://github.com/mrsimpson/quiet-shell-mcp">quiet-shell-mcp</a></b></td><td align="center">4</td><td>Declarative shell-output reduction over MCP — validated our declarative bash-output compaction.</td></tr> <tr><td nowrap><b><a href="https://github.com/dsherret/ts-morph">ts-morph</a></b></td><td align="center">6.1k</td><td>TypeScript Compiler API toolkit — inspired our parser-based comment removal that preserves string, template and regex literals.</td></tr> </table>

🧠 Memory & RAG

<table> <tr><th align="left">Project</th><th align="center">⭐</th><th align="left">How it inspired OmniRoute</th></tr> <tr><td nowrap><b><a href="https://github.com/mem0ai/mem0">Mem0</a></b></td><td align="center">61.2k</td><td>Universal memory layer — its proxy-as-write/read-boundary model shaped our memory architecture.</td></tr> <tr><td nowrap><b><a href="https://github.com/letta-ai/letta">Letta (MemGPT)</a></b></td><td align="center">23.9k</td><td>Stateful agents with tiered memory — inspired our Context Control & Recovery (CCR) tiered model.</td></tr> <tr><td nowrap><b><a href="https://github.com/onestardao/WFGY">WFGY</a></b></td><td align="center">1.8k</td><td>The ProblemMap taxonomy of 16 recurring RAG/LLM failure modes — the shared vocabulary in our troubleshooting guide.</td></tr> </table>

🛰️ Traffic inspection, MITM & transparent proxy

<table> <tr><th align="left">Project</th><th align="center">⭐</th><th align="left">How it inspired OmniRoute</th></tr> <tr><td nowrap><b><a href="https://github.com/chouzz/llm-interceptor">llm-interceptor</a></b></td><td align="center">49</td><td>MITM interception/analysis of coding-assistant ↔ LLM traffic — our Traffic Inspector ports its SSE merge, conversation normalization, host passthrough and secret masking (MIT).</td></tr> <tr><td nowrap><b><a href="https://github.com/InterceptSuite/ProxyBridge">ProxyBridge</a></b></td><td align="center">5.5k</td><td>Transparent per-process proxy routing — inspired our crash-safe MITM teardown, socket idle-timeouts, <code>/proc</code> process attribution and TPROXY capture.</td></tr> </table>

📚 Model data, observability & UI

<table> <tr><th align="left">Project</th><th align="center">⭐</th><th align="left">How it inspired OmniRoute</th></tr> <tr><td nowrap><b><a href="https://github.com/anomalyco/models.dev">models.dev</a></b></td><td align="center">6.0k</td><td>Open database of AI model specs, pricing and capabilities — synced natively into our model catalog.</td></tr> <tr><td nowrap><b><a href="https://github.com/xyflow/xyflow">React Flow / xyflow</a></b></td><td align="center">37.7k</td><td>The node-based graph library powering our real-time Compression Studio and Combo/Routing Studio.</td></tr> <tr><td nowrap><b><a href="https://github.com/langchain-ai/langgraph">LangGraph</a></b></td><td align="center">37.6k</td><td>LangGraph Studio's live workflow-graph visualization inspired our Studios' real-time cascade view.</td></tr> <tr><td nowrap><b><a href="https://github.com/langfuse/langfuse">Langfuse</a></b></td><td align="center">31.4k</td><td>Its trace → span → generation observability model shaped our Compression Studio waterfall.</td></tr> <tr><td nowrap><b><a href="https://github.com/kiali/kiali">Kiali</a></b></td><td align="center">3.6k</td><td>Istio service-mesh observability — inspired our circuit-breaker badges and error-edge visuals in the Routing/Combo Studio.</td></tr> <tr><td nowrap><b><a href="https://github.com/lobehub/lobe-icons">lobe-icons</a></b></td><td align="center">2.2k</td><td>AI/LLM brand logos that render the provider icons across our dashboard.</td></tr> </table>

🛡️ Security

<table> <tr><th align="left">Project</th><th align="center">⭐</th><th align="left">How it inspired OmniRoute</th></tr> <tr><td nowrap><b><a href="https://github.com/tldrsec/awesome-secure-defaults">awesome-secure-defaults</a></b></td><td align="center">710</td><td>A curated list of secure-by-default libraries that guides our security choices (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).</td></tr> </table>

🧭 Complementary tools

<table> <tr><th align="left">Project</th><th align="center">⭐</th><th align="left">How it inspired OmniRoute</th></tr> </table>

📄 License

MIT License - see LICENSE for details.


<div align="center">

⬆ Back to top · Built with ❤️ for the open-source AI community.

<sub>OmniRoute v3.8.49 · Node ≥22.22.2 · MIT License · <a href="https://omniroute.online">omniroute.online</a></sub>

</div> <!-- GitHub Discussions enabled for community Q&A -->