OmniRoute Dashboard
# ๐Ÿš€ OmniRoute โ€” The Free AI Gateway ### Never stop coding. Connect every AI tool to **237 providers** โ€” **50+ free** โ€” through one endpoint. **Plug Claude Code, Codex, Cursor, Cline, Copilot & Antigravity into FREE Claude / GPT / Gemini. Auto-fallback.**
**RTK + Caveman compression saves 15โ€“95% tokens. Never hit limits.**
**~1.6B documented free tokens/month** โ€” up to **~2.1B in your first month** with signup credits โ€” aggregated across the free tiers, plus a long tail of permanently-free, no-cap providers, and the compression above stretches every one further. ([how we count โ†’](docs/reference/FREE_TIERS.md#tldr--how-much-free-inference-does-omniroute-actually-aggregate))
[![231 AI Providers](https://img.shields.io/badge/231-AI_Providers-6C5CE7?style=for-the-badge)](#-231-ai-providers--50-free) [![50+ Free](https://img.shields.io/badge/50%2B-Free_Tiers-00B894?style=for-the-badge)](#-231-ai-providers--50-free) [![1.6B Free Tokens/mo](https://img.shields.io/badge/1.6B-Free_Tokens%2Fmo-00B894?style=for-the-badge)](docs/reference/FREE_TIERS.md) [![Token Savings](https://img.shields.io/badge/up_to_95%25-Token_Savings-E17055?style=for-the-badge)](#%EF%B8%8F-save-1595-tokens--automatically) [![17 Strategies](https://img.shields.io/badge/17-Routing_Strategies-0984E3?style=for-the-badge)](#-combos--the-flagship) [![$0 to start](https://img.shields.io/badge/%240-To_Start-FDCB6E?style=for-the-badge&logoColor=black)](#-quick-start)
### ๐Ÿ’ฌ Join the community [![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/EkzRkpzKYt) [![Telegram](https://img.shields.io/badge/Telegram-26A5E4?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/omnirouteOficial) [![WhatsApp Global](https://img.shields.io/badge/WhatsApp_Global-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) [![WhatsApp Brasil](https://img.shields.io/badge/WhatsApp_Brasil-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/BTGJXIyjeNIIgExvTMGGhI) **Questions, provider tips, roadmap & support โ†’ [Discord](https://discord.gg/EkzRkpzKYt) ยท [Telegram](https://t.me/omnirouteOficial) ยท WhatsApp [๐ŸŒ Global](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) / [๐Ÿ‡ง๐Ÿ‡ท Brasil](https://chat.whatsapp.com/BTGJXIyjeNIIgExvTMGGhI)**
diegosouzapw%2FOmniRoute | Trendshift [![npm](https://img.shields.io/npm/v/omniroute?logo=npm&style=flat-square)](https://www.npmjs.com/package/omniroute) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE) [![Node](https://img.shields.io/badge/node-%E2%89%A522.0.0-brightgreen?style=flat-square)](package.json) [![Stars](https://img.shields.io/github/stars/diegosouzapw/OmniRoute?style=social)](https://github.com/diegosouzapw/OmniRoute)
[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) ![NPM Monthly](https://img.shields.io/npm/dm/omniroute?label=npm/month&color=cb3837&logo=npm) [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) ![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?label=docker%20pulls&logo=docker&color=2496ED) ![Electron Downloads](https://img.shields.io/github/downloads/diegosouzapw/omniroute/total?style=flat&label=electron%20downloads&logo=electron&color=47848F) [![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online)

[**๐Ÿš€ Quick Start**](#-quick-start) โ€ข [**๐ŸŽฏ Combos**](#-combos--the-flagship) โ€ข [**๐ŸŒ Providers**](#-231-ai-providers--50-free) โ€ข [**๐Ÿ”Œ CLI & MCP**](#-full-cli--a2a--mcp) โ€ข [**๐Ÿ—œ๏ธ Compression**](#%EF%B8%8F-save-1595-tokens--automatically) โ€ข [**๐ŸŒ Website**](https://omniroute.online) [๐Ÿ’ฅ The Promise](#-the-promise) โ€ข [๐Ÿค” Why](#-why-omniroute) โ€ข [๐Ÿ† What Sets Apart](#-what-sets-omniroute-apart) โ€ข [๐Ÿค– Compatible CLIs](#-compatible-clis--coding-agents) โ€ข [๐Ÿ–ฅ๏ธ Where It Runs](#%EF%B8%8F-where-omniroute-runs--anywhere) โ€ข [๐Ÿ”’ Private](#-private--local-first) โ€ข [๐ŸŽฌ In Action](#-omniroute-in-action) โ€ข [๐Ÿ“š Explore More](#-explore-more) โ€ข [๐Ÿ“ง Support](#-support--community)
๐ŸŒ Available in 41+ languages
๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿ‡ง๐Ÿ‡ท ๐Ÿ‡ช๐Ÿ‡ธ ๐Ÿ‡ซ๐Ÿ‡ท ๐Ÿ‡ฎ๐Ÿ‡น ๐Ÿ‡ท๐Ÿ‡บ ๐Ÿ‡จ๐Ÿ‡ณ ๐Ÿ‡น๐Ÿ‡ผ ๐Ÿ‡ฉ๐Ÿ‡ช ๐Ÿ‡ฏ๐Ÿ‡ต ๐Ÿ‡ฐ๐Ÿ‡ท ๐Ÿ‡ฎ๐Ÿ‡ณ
๐Ÿ‡น๐Ÿ‡ญ ๐Ÿ‡ป๐Ÿ‡ณ ๐Ÿ‡ฎ๐Ÿ‡ฉ ๐Ÿ‡ฒ๐Ÿ‡พ ๐Ÿ‡ต๐Ÿ‡ญ ๐Ÿ‡ธ๐Ÿ‡ฆ ๐Ÿ‡ฎ๐Ÿ‡ฑ ๐Ÿ‡ฆ๐Ÿ‡ฟ ๐Ÿ‡บ๐Ÿ‡ฆ ๐Ÿ‡ต๐Ÿ‡ฑ ๐Ÿ‡จ๐Ÿ‡ฟ
๐Ÿ‡ณ๐Ÿ‡ฑ ๐Ÿ‡ง๐Ÿ‡ฌ ๐Ÿ‡ฉ๐Ÿ‡ฐ ๐Ÿ‡ซ๐Ÿ‡ฎ ๐Ÿ‡ณ๐Ÿ‡ด ๐Ÿ‡ธ๐Ÿ‡ช ๐Ÿ‡ญ๐Ÿ‡บ ๐Ÿ‡ท๐Ÿ‡ด ๐Ÿ‡ธ๐Ÿ‡ฐ ๐Ÿ‡ต๐Ÿ‡น

# ๐Ÿ’ฐ ~1.6B Free Tokens / Month
> 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 **40+ provider pools / 500+ models** into one honest number and shows it live on the dashboard (`/dashboard/free-tiers`). - **~1.6B free tokens / month** (steady) โ€” and **up to ~2.1B in your first month** with signup credits. - **Pool-deduped, honest** โ€” we count each shared free pool **once**, so the headline isn't inflated by rate-limit ceilings the way multi-billion competitor claims are. (Counting every rate limit 24/7 would read ~10B; we don't publish that.) - **Plus the un-countable** โ€” permanently-free, no-token-cap providers (SiliconFlow, Z.AI GLM-Flash, Kilo, OpenCode Zenโ€ฆ) and a **$10 OpenRouter top-up** that unlocks **+24M/mo**, both surfaced separately so they never inflate the headline. - **Per-model breakdown**, **live used / remaining** for the current month, and a transparent **terms flag** per provider. ![Free-Tier Budget card (preview mockup)](docs/screenshots/free-tier-budget-card.svg) > Preview mockup โ€” a real screenshot lands once the `/dashboard/free-tiers` page is validated. Full methodology (pool dedupe, credit tiers, provider terms): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
# ๐Ÿ’ฅ The Promise
> One endpoint. **237 providers.** Never stop building โ€” and let OmniRoute pick the cheapest one that works.
๐Ÿšซ Never hit limits
Auto-fallback across 237 providers in milliseconds. Quota out? Next provider takes over โ€” zero downtime.
๐Ÿ’ธ Save up to 95% tokens
RTK + Caveman stacked compression cuts 15โ€“95% of eligible tokens (~89% avg on tool-heavy sessions).
๐Ÿ†“ $0 to start
50+ providers with a free tier, 11 free forever (Kiro, Qoder, Pollinations, LongCatโ€ฆ). No card needed.
๐Ÿ”Œ Every tool works
16+ coding agents โ€” Claude Code, Codex, Cursor, Cline, Copilot, Antigravity โ€” through one config.
๐Ÿงฉ One endpoint
OpenAI โ†” Claude โ†” Gemini โ†” Responses API translation. Point any tool at /v1 and it just works.
๐Ÿ›ก๏ธ Production-grade
Circuit breakers, TLS stealth, MCP (87 tools), A2A, memory, guardrails, evals. 14,965 tests.


# ๐Ÿค” Why OmniRoute?
> Stop juggling 10 dashboards, dead API keys, and surprise bills. | โŒ The daily pain | โœ… How OmniRoute fixes it | | ------------------------------------------------------ | ----------------------------------------------------------------------------- | | ๐Ÿ“‰ Subscription quota expires unused every month | **Maximize subscriptions** โ€” track quota, use every token before reset | | ๐Ÿ›‘ Rate limits stop you mid-coding | **4-tier auto-fallback** โ€” Subscription โ†’ API โ†’ Cheap โ†’ Free, in milliseconds | | ๐Ÿ”ฅ Tool outputs (`git diff`, `grep`, logs) burn tokens | **RTK + Caveman compression** โ€” save 15โ€“95% eligible tokens per request | | ๐Ÿ’ธ Expensive APIs ($20โ€“50/mo per provider) | **Cost-optimized routing** โ€” auto-route to the cheapest viable model | | ๐Ÿงฐ Each AI tool wants its own setup | **One endpoint, every tool, one dashboard** | | ๐ŸŒ AI blocked in your country | **3-level proxy** + TLS fingerprint stealth โ€” use AI from anywhere |
``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Your IDE / CLI (Claude Code, Cursor, Clineโ€ฆ) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ http://localhost:20128/v1 โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ OmniRoute โ€” Smart Router โ”‚ โ”‚ RTK + Caveman compression ยท 17 routing strategies โ”‚ โ”‚ Circuit breakers ยท TLS stealth ยท MCP ยท A2A ยท Guardrails โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ–ผ Tier 1 โ–ผ Tier 2 โ–ผ Tier 3 โ–ผ Tier 4 SUBSCRIPTION API KEY CHEAP FREE Claude Code, DeepSeek, GLM $0.5, Kiro, Qoder, Codex, Copilot Groq, xAI MiniMax $0.2 Pollinations quota out? โ”€โ”€โ”€โ–ถ budget hit? โ”€โ–ถ budget hit? โ”€โ–ถ always on ```

# ๐ŸŽฏ Combos โ€” The Flagship
> 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: | Model ID | What it optimizes for | | -------------- | -------------------------------------------------------------- | | `auto` | ๐ŸŽฏ Balanced default (LKGP โ€” sticks to your last good provider) | | `auto/coding` | ๐Ÿง‘โ€๐Ÿ’ป Quality-first weights for code generation | | `auto/fast` | โšก Lowest latency first | | `auto/cheap` | ๐Ÿ’ฐ Cheapest per token first | | `auto/offline` | ๐Ÿ”‹ Most quota / rate-limit headroom first | | `auto/smart` | ๐Ÿ”ญ Quality-first + 10% exploration to discover better models | ## ### ๐Ÿ”€ Or build your own โ€” 17 routing strategies | Goal | Strategy / combo | | --------------------------------------- | -------------------------------------------------- | | ๐Ÿฅ‡ Drain my subscription before paying | `priority` / `fill-first` | | โš–๏ธ Spread load across accounts | `round-robin` ยท `weighted` ยท `p2c` ยท `least-used` | | ๐Ÿ’ธ Always cheapest viable model | `cost-optimized` ยท `auto/cheap` | | ๐Ÿง  Hand off long context between models | `context-relay` ยท `context-optimized` | | ๐ŸŽฒ Randomized / privacy routing | `random` ยท `strict-random` | | ๐Ÿงฌ Fan out to a panel + judge synthesis | `fusion` | | ๐Ÿ“Š Route by remaining quota headroom | `reset-window` ยท `headroom` | | ๐Ÿค– Just make it smart | `auto` (9-factor scoring) ยท `lkgp` ยท `reset-aware` | The Auto-Combo engine scores every candidate on **9 factors** (health, quota, cost, latency, success rate, freshnessโ€ฆ) โ€” see [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md). ## ### ๐Ÿงฑ Resilience is built in (3 independent layers) | Layer | Scope | What it does | | -------------------------- | ----------------- | -------------------------------------------------------------------------- | | ๐Ÿ”Œ **Circuit breaker** | whole provider | Stops hammering a provider that's failing upstream; auto-probes to recover | | ๐Ÿ’ค **Connection cooldown** | one account / key | Skips a rate-limited key while other keys keep serving | | ๐ŸŽฏ **Model lockout** | provider + model | Quarantines just one quota-limited model, not the whole connection | ``` Combo: "always-on" Strategy: priority 1. cc/claude-opus-4-7 โ† subscription (use it fully) 2. cx/gpt-5.5 โ† second subscription 3. glm/glm-5.1 โ† cheap backup ($0.5/1M) 4. kr/claude-sonnet-4.5 โ† FREE, unlimited (never fails) Result: 4 layers of fallback = zero downtime ``` ๐Ÿ“– [Auto-Combo Engine](docs/routing/AUTO-COMBO.md) ยท [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md)
# ๐Ÿ† What Sets OmniRoute Apart
| Feature | OmniRoute | Other routers | | -------------------------------------- | ------------------------------------------------------------------- | ------------- | | ๐ŸŒ Providers | **231** | 20โ€“100 | | ๐Ÿ†“ Free providers | **50+ (11 free forever)** | 1โ€“5 | | ๐Ÿ”€ Routing strategies | **17** (priority, weighted, cost-optimized, context-relay, fusionโ€ฆ) | 1โ€“3 | | ๐Ÿ—œ๏ธ Token compression | **RTK + Caveman stacked (15โ€“95%)** | None / 20โ€“40% | | ๐Ÿงฐ Built-in MCP server | **87 tools, 3 transports, 30 scopes** | Rare | | ๐Ÿค A2A agent protocol | **6 skills, JSON-RPC 2.0** | None | | ๐Ÿง  Memory (FTS5 + vector) | **Yes** | Rare | | ๐Ÿ›ก๏ธ Guardrails (PII, injection, vision) | **Yes** | Rare | | โ˜๏ธ Cloud agents | **Codex, Devin, Jules** | None | | ๐Ÿฅท TLS fingerprint stealth | **JA3/JA4 via wreq-js** | None | | ๐Ÿ–ฅ๏ธ Multi-platform | **Web ยท Desktop ยท Termux ยท PWA** | Web only | | ๐ŸŒ i18n | **42 locales** | 0โ€“4 | ๐Ÿ“Š Detailed comparison vs LiteLLM, OpenRouter & Portkey โ†’ [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
# โœจ What's New
> Recent highlights from **v3.8.20 โ†’ v3.8.39**. Full history in [`CHANGELOG.md`](CHANGELOG.md). - **โš–๏ธ Quota-Share routing** โ€” a dedicated combo strategy that spreads load across accounts by _available quota_: Deficit-Round-Robin scheduling, per-connection `max_concurrent` with cooldown-wait queueing, multi-window usage buckets (5h / 7d / per-model), per-(key,model) caps, session stickiness for prompt-cache integrity, and proactive saturation from upstream token-usage headers. โ†’ [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md) - **๐Ÿค– One-command CLI/agent setup** โ€” a dedicated `setup-*` command configures each coding tool to route through OmniRoute (Claude Code, Codex, Cline, Continue, Cursor, Roo Code, Kilo Code, Crush, Goose, Qwen Code, Aider, OpenCode); `omniroute launch` / `omniroute launch-codex` are zero-config launchers. โ†’ [CLI Integrations](docs/guides/CLI-INTEGRATIONS.md) - **๐Ÿ›ฐ๏ธ Remote mode** โ€” drive a remote OmniRoute from any machine with scoped access tokens (`omniroute connect` / `omniroute contexts` / `omniroute tokens`), plus an `omniroute login antigravity` helper that runs Google "native/desktop" OAuth on your own machine and pastes a credential blob into a remote/VPS install (where the loopback redirect is unreachable). โ†’ [Remote Mode](docs/guides/REMOTE-MODE.md) - **๐Ÿงญ Smarter auto-routing** โ€” OpenRouter-style `auto/:` combos (e.g. `auto/coding:fast`, `auto/reasoning:pro`), a **Fusion** strategy (fan out to a panel of models in parallel, then synthesize via a judge), **task-aware routing** (best-fit connection per task type), per-request `X-Route-Model` override, live Arena-ELO + models.dev model intelligence, per-step account allowlists, provider-wildcard combo steps, nested combo-ref execution, sticky weighted selection, and `web_search`-aware routing. โ†’ [Auto-Combo](docs/routing/AUTO-COMBO.md) - **๐Ÿ—œ๏ธ Pluggable compression** โ€” an async pipeline of **9 composable engines** with Compression Studios, an LLMLingua-2 ONNX engine and a heuristic/SLM two-tier **Ultra**, RTK, delegated Anthropic Context Editing, **Output Styles** (output-axis steering: terse-prose / less-code / terse-CJK), an **adaptive context-budget dial** (escalate only as far as needed to fit the context window), per-request `x-omniroute-compression` control, an opt-in offline eval harness, one-click **Headroom** proxy lifecycle management from the dashboard (Docker sidecar supported), a synthetic **compression playground** (Play lanes + A/B Compare with USD-capped fidelity verdicts), an opt-in **per-step fidelity gate** that rejects a lossy engine before it degrades the prompt, a **best-of-N candidate encoder** (GCF vs TOON โ€” keep whichever is shorter, with an A/B bytes/token table in the studio), **CCR ranged/grep/stats retrieval** (pull an exact byte/line slice or summary of a stored block instead of re-expanding it), and a unified panel with named profiles + an active-profile selector. โ†’ [Compression](docs/compression/COMPRESSION_ENGINES.md) - **๐Ÿ•ต๏ธ Transparent MITM decrypt (TPROXY)** โ€” capture & translate traffic from CLIs that ignore proxy env vars, with a per-SNI certificate authority and a trust-store installer. โ†’ [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md) - **๐Ÿ’ธ Cost telemetry everywhere** โ€” `X-OmniRoute-*` cost/usage headers on every endpoint (including media), a non-token cost engine, a cache-HIT `X-OmniRoute-Cost-Saved` header, and per-key USD spend quotas. โ†’ [API Reference](docs/reference/API_REFERENCE.md) - **๐Ÿง  Memory you control** โ€” opt-in int8 vector quantization (Qdrant + sqlite-vec), memory off by default, and a per-request `x-omniroute-no-memory` header. โ†’ [Memory](docs/frameworks/MEMORY.md) - **๐Ÿ›ก๏ธ Security** โ€” a prompt-injection guard across every LLM route (backed by a red-team suite), plus a free DuckDuckGo last-resort web search. โ†’ [Guardrails](docs/security/GUARDRAILS.md) - **๐Ÿค More providers & agents** โ€” Cursor Cloud Agent (a 4th cloud agent), CodeBuddy CN (`copilot.tencent.com`), a Google Flow video-generation provider, new gateways **DGrid** and **Pioneer AI** (Fastino Labs), inbound **xAI Grok** translators plus **Grok Build (xAI)** with an OAuth import-token flow, GPT-4 / GPT-4o-mini on the GitHub Copilot provider, multi-model **Factory Droid**, **ZenMux Free** (session-cookie free tier), **Alibaba DashScope** text-to-video (`wan2.7-t2v`), a refreshed 237-provider catalog (OrcaRouter, Wafer AI, OpenAdapter, dit.ai, TokenRouter, โ€ฆ), Vertex AI media generation (speech / transcription / music / video), and one-click account import from CLIProxyAPI (`~/.cli-proxy-api/`). โ†’ [Providers](docs/reference/PROVIDER_REFERENCE.md) - **โšก Local performance & infra** โ€” a one-click local Redis launcher (`omniroute redis up`, plus a dashboard Redis panel), one-click **Cloudflare Workers** and **Deno Deploy** relay deployers wired into the proxy pool, and an optional Bifrost Go sidecar that offloads the hottest relay path (`BIFROST_BASE_URL`, with automatic fallback to the TypeScript path on timeout). โ†’ [Environment](docs/reference/ENVIRONMENT.md)
# ๐Ÿค– Compatible CLIs & Coding Agents > One config โ€” `http://localhost:20128/v1` โ€” and **every** AI IDE or CLI runs on free & low-cost models.
Claude Code
Claude Code
Codex CLI
Codex CLI
Cursor
Cursor
Copilot
Copilot
Continue
Continue
OpenCode
OpenCode
Kilo Code
Kilo Code
Droid
Droid
OpenClaw
OpenClaw
Kiro
Kiro
Command Code
Command
๏ผ‹ also works with ยท Cline ยท Antigravity ยท Windsurf ยท AMP ยท Hermes ยท Qwen CLI ยท Roo ยท Continue ยท any OpenAI-compatible tool
๐Ÿ“– Per-tool setup for all 16+ tools โ†’ [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) ยท ๐Ÿงฉ OpenCode plugin โ†’ [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)

# ๐ŸŒ 231 AI Providers โ€” 50+ Free
> The most complete catalog of any open-source router: **237 providers**, **50+ with a free tier**, **11 free forever**.
### ๐Ÿ†“ Free Forever โ€” $0, no card
AgentRouter
GPT-5, Claude, Gemini
$100 free credits
Qoder AI
Kimi-K2, DeepSeek-R1
Unlimited FREE
Pollinations
GPT-5, Claude, Llama 4
No key needed
LongCat
Flash-Lite
50M tokens/day ๐Ÿ”ฅ
Cloudflare AI
50+ models
10K neurons/day
NVIDIA NIM
129 models
~40 RPM free
Cerebras
Qwen3 235B
1M tokens/day
๐Ÿ“– Full machine-readable catalog โ†’ [`docs/reference/PROVIDER_REFERENCE.md`](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. | Platform | Install | Highlights | | ------------------------- | ---------------------------------------- | --------------------------------------------------------- | | ๐Ÿ“ฆ **npm (global)** | `npm install -g omniroute` | One command, any OS | | ๐Ÿณ **Docker** | `docker run โ€ฆ diegosouzapw/omniroute` | Multi-arch **AMD64 + ARM64** | | ๐Ÿ–ฅ๏ธ **Desktop (Electron)** | `npm run electron:build` | Native window + system tray โ€” **Windows / macOS / Linux** | | ๐Ÿ’ช **ARM** | native `arm64` | Raspberry Pi, ARM servers, Apple Silicon | | ๐Ÿ“ฑ **Android (Termux)** | `pkg install nodejs && npx -y omniroute` | Runs **on your phone**, 24/7, no root | | ๐Ÿ“ฒ **PWA** | "Add to Home Screen" | Fullscreen, offline, installable from browser | | ๐Ÿงฉ **OpenCode plugin** | `@omniroute/opencode-provider` | Native OpenCode integration | | ๐Ÿ› ๏ธ **From source** | `npm install && npm run dev` | Hack on it, contribute | ๐Ÿ“– [Docker Guide](docs/guides/DOCKER_GUIDE.md) ยท [Desktop](electron/README.md) ยท [Termux](docs/guides/TERMUX_GUIDE.md) ยท [PWA](docs/guides/PWA_GUIDE.md) ยท [OpenCode](docs/frameworks/OPENCODE.md)
# ๐Ÿ”’ Private & Local-First
> Your keys, your machine, your data. OmniRoute is a **local proxy** โ€” it never phones home. - ๐Ÿ  **Runs 100% on your hardware** โ€” npm, Docker, desktop, or your phone. No OmniRoute cloud sits in the request path. - ๐Ÿ” **Credentials encrypted at rest** โ€” API keys & OAuth tokens sealed with **AES-256-GCM**. - ๐Ÿšซ **Zero telemetry by default** โ€” your prompts go only to the providers _you_ choose, nowhere else. - ๐Ÿ›ก๏ธ **Hardened gateway** โ€” API-key scoping, IP filtering, rate limits, prompt-injection guard, loopback-only process routes. - ๐Ÿ“œ **MIT licensed & fully open-source** โ€” audit every line, self-host forever. ๐Ÿ“– [Authorization](docs/architecture/AUTHZ_GUIDE.md) ยท [Guardrails](docs/security/GUARDRAILS.md) ยท [Compliance](docs/security/COMPLIANCE.md)
# ๐Ÿ”Œ Full CLI + A2A & MCP
> OmniRoute isn't just a server โ€” it's a **full command-line cockpit** with **60+ commands**, plus open agent protocols so an AI agent can drive OmniRoute **by itself**. ### โŒจ๏ธ 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. ๐Ÿ“– [Remote Mode](docs/guides/REMOTE-MODE.md)
`providers` ยท `oauth` ยท `keys` ยท `combo` ยท `nodes` ยท `models` ยท `cache` ยท `compression` ยท `cost` ยท `usage` ยท `quota` ยท `health` ยท `resilience` ยท `telemetry` ยท `logs` ยท `audit` ยท `mcp` ยท `a2a` ยท `cloud` ยท `memory` ยท `skills` ยท `eval` ยท `tunnel` ยท `backup` ยท `sync` ยท `webhooks` ยท `policy` ยท `pricing` ยท `translator` ยท `simulate` โ€ฆ
### ๐Ÿค Connect an agent โ€” and it controls OmniRoute itself Expose OmniRoute over **MCP** or **A2A** and any capable agent gets the keys to the whole gateway โ€” routing, providers, combos, cache, compression, memory โ€” autonomously. | Protocol | Endpoint | Use it for | | ------------------ | ----------------------------------------------- | ------------------------------------------------------ | | ๐Ÿงฐ **MCP (stdio)** | `omniroute --mcp` | Plug into Claude Desktop, Cursor, any MCP client | | ๐ŸŒŠ **MCP (HTTP)** | `http://localhost:20128/api/mcp/stream` | Remote MCP โ€” **87 tools**, 30 scopes, full audit trail | | ๐Ÿ“ก **MCP (SSE)** | `http://localhost:20128/api/mcp/sse` | Streaming MCP transport | | ๐Ÿค **A2A** | `http://localhost:20128/.well-known/agent.json` | Agent-to-agent, **JSON-RPC 2.0** + SSE, 6 skills | ```bash # 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](docs/frameworks/MCP-SERVER.md) ยท [A2A Server](docs/frameworks/A2A-SERVER.md) ยท [Agent Protocols](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
# ๐Ÿ—œ๏ธ Save 15โ€“95% Tokens โ€” Automatically
> **Why use many token when few token do trick?** Every request passes through OmniRoute's compression pipeline **transparently** โ€” no client changes. It's now a **stack of 9 composable engines** that run in order and mix & match per routing combo โ€” building on ideas from [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (โญ 51K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua), and [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR). ### ๐Ÿงฑ The 9-engine stack Engines run in pipeline order; each is independently toggleable and configurable per combo: | # | Engine | What it does | | --- | ----------------- | ------------------------------------------------------------------- | | 1 | **Session-Dedup** | Drops content repeated across turns (content-addressed, cross-turn) | | 2 | **CCR** | Archives large blocks behind retrieve markers, fetched on demand | | 3 | **RTK** | Smart tool-result filtering, dedup & truncation (command-aware) | | 4 | **Headroom** | Lossless tabular compaction of homogeneous JSON arrays (~30%+) | | 5 | **Caveman** | Rule-based prose compression (~65โ€“75% on output) | | 6 | **LLMLingua-2** | ML semantic pruning via MobileBERT ONNX โ€” code-safe, async | | 7 | **Lite** | Whitespace + image-URL trimming (latency-light baseline) | | 8 | **Aggressive** | Summarization + progressive aging of old turns | | 9 | **Ultra** | Heuristic token pruning with an optional small-model (SLM) tier | Code blocks, URLs and structured data are **always preserved** byte-perfect. **One-click presets** combine the engines: | Mode | Savings | Best for | | ------------------------------ | ---------- | --------------------------- | | ๐Ÿชถ **Lite** | ~15% | Always-on safe default | | ๐Ÿชจ **Standard (Caveman)** | ~30% | Daily coding | | โšก **Aggressive** | ~50% | Long tool-heavy sessions | | ๐Ÿ”ฅ **Ultra** | ~75% | Maximum savings | | ๐Ÿงฐ **RTK** | 60โ€“90% | Shell/test/build/git output | | ๐Ÿ”— **Stacked (RTK โ†’ Caveman)** | **78โ€“95%** | Mixed prompts + tool logs | **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](https://github.com/leninejunior/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.** โœ…
### ๐Ÿ“– How it works โ€” pipeline, architecture & savings math ``` Client (10,000 tok) โ”€โ”€โ–ถ OmniRoute Compression (9 engines) โ”€โ”€โ–ถ Provider (~1,080 tok, up to 95% saved) ``` 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. ### ๐ŸŽš๏ธ Beyond the engines โ€” output styles, the adaptive dial & per-request control The 9 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: ; 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`](docs/compression/COMPRESSION_GUIDE.md) ยท [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) ยท [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# โšก Quick Start
**1) Install & run** ```bash npm install -g omniroute omniroute ``` 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 20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest ``` **๐Ÿ› ๏ธ From source** ```bash cp .env.example .env && npm install PORT=20128 npm run dev ``` **๐Ÿ“ฆ pnpm** ```bash pnpm install -g omniroute && pnpm approve-builds -g && 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](docs/guides/DOCKER_GUIDE.md) โ€” Compose profiles, Caddy HTTPS, Cloudflare tunnels. **๐Ÿฆญ Podman** ```bash # 1. Build the image podman build --target runner-base -t omniroute:base . # 2. Fix data directory permissions for rootless Podman mkdir -p data && podman unshare chown 1000:1000 ./data # 3. Set runtime in .env, then run (see contrib/podman/ for Quadlet) echo "CONTAINER_HOST=podman" >> .env podman compose --profile base up -d ``` ๐Ÿ“– [Podman Guide](contrib/podman/README.md) โ€” Quadlet setup, podman-compose, Quadlet.
# ๐ŸŽฌ OmniRoute in Action
Guia em Portuguรชs
๐Ÿ‡ง๐Ÿ‡ท Portuguรชs
Guia completo
English Guide
๐Ÿ‡บ๐Ÿ‡ธ English
Complete walkthrough
ะ ัƒะบะพะฒะพะดัั‚ะฒะพ
๐Ÿ‡ท๐Ÿ‡บ ะ ัƒััะบะธะน
ะŸะพะปะฝะพะต ั€ัƒะบะพะฒะพะดัั‚ะฒะพ
> ๐ŸŽฌ **Made a video about OmniRoute?** Open an [issue](https://github.com/diegosouzapw/OmniRoute/issues/new) or [discussion](https://github.com/diegosouzapw/OmniRoute/discussions) with the link โ€” we'll feature it here.
# ๐Ÿ“š Explore More
๐Ÿ’ฐ Pricing at a glance & the $0 Free Stack (11 providers)
| Tier | Example | Cost | | --------------------------- | ---------------------------------------- | ---------- | | ๐Ÿ’ณ **Subscription** | Claude Code Pro / Codex / Copilot | $10โ€“200/mo | | ๐Ÿ”‘ **API Key (free tiers)** | NVIDIA NIM, Cerebras, Groq | **FREE** | | ๐Ÿ’ฐ **Cheap** | GLM-5 $0.5/1M ยท MiniMax M2.5 $0.3/1M | pennies | | ๐Ÿ†“ **Free Forever** | Kiro, Qoder, Qwen, Pollinations, LongCat | **$0** | **The $0 Free Stack โ€” combine into one unbreakable combo:** | Provider | Prefix | Free models | Quota | | ----------------- | ----------- | ----------------------------------------------- | ----------------- | | **Kiro** | `kr/` | Claude Sonnet 4.5, Haiku 4.5, Opus 4.6 | 50 credits/mo | | **Qoder** | `if/` | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 | โ™พ๏ธ Unlimited | | **Qwen** | `qw/` | qwen3-coder-plus/flash/next | โ™พ๏ธ Unlimited | | **Pollinations** | `pol/` | GPT-5, Claude, Gemini, DeepSeek, Llama 4 | No key needed | | **LongCat** | `lc/` | LongCat-Flash-Lite | 50M tokens/day ๐Ÿ”ฅ | | **Cloudflare AI** | `cf/` | 50+ models | 10K neurons/day | | **NVIDIA NIM** | `nvidia/` | 129 models | ~40 RPM | | **Cerebras** | `cerebras/` | Qwen3 235B, GPT-OSS 120B | 1M tok/day | > ๐Ÿ’ก The dashboard "cost" is a **savings tracker**, not a bill โ€” OmniRoute never charges you. A "$290 total cost" using free models means **$290 saved**. ๐Ÿ“– Complete free directory โ†’ [`docs/reference/FREE_TIERS.md`](docs/reference/FREE_TIERS.md) โ€” 25+ providers, quotas, base URLs.
๐ŸŽฏ Use Cases โ€” ready-made combo playbooks
**$0 forever:** ``` 1. kr/claude-sonnet-4.5 (Kiro โ€” ~50 credits/mo per acct) 2. if/kimi-k2-thinking (Qoder โ€” unlimited) 3. pol/gpt-5 (Pollinations โ€” no key) 4. lc/longcat-flash-lite (50M tok/day backup) Compression: aggressive (~50%) โ†’ double your free quota ยท Cost: $0/mo ``` **24/7 no interruptions:** chain 2 subscriptions โ†’ cheap โ†’ free for 5 layers of fallback. **Blocked region:** free providers + global/per-provider proxy โ†’ access AI from any country. **Max savings:** subscription + cheap backup + `ultra` compression (~75%) โ†’ ~$150โ€“300/mo saved for heavy users.
๐ŸŒ Bypass geo-blocks โ€” 3-level proxy + stealth
๐Ÿ‡ท๐Ÿ‡บ ๐Ÿ‡จ๐Ÿ‡ณ ๐Ÿ‡ฎ๐Ÿ‡ท ๐Ÿ‡จ๐Ÿ‡บ ๐Ÿ‡น๐Ÿ‡ท In a blocked region? OmniRoute's **3-level proxy** (Global / Per-Provider / Per-Connection) proxies API requests, OAuth flows, connection tests, token refresh & model sync. - **Protocols:** HTTP/HTTPS, SOCKS5, authenticated proxies - **๐Ÿ†“ 1proxy marketplace** โ€” hundreds of free validated proxies, quality scores, auto-rotation - **Anti-detection** โ€” TLS fingerprint spoofing (`wreq-js`), CLI fingerprint matching, proxy IP preservation ๐Ÿ“– [`docs/ops/PROXY_GUIDE.md`](docs/ops/PROXY_GUIDE.md)
โœจ Full feature list โ€” 30+ capabilities (memory, evals, observability)
**Routing:** 15 strategies ยท task-aware smart routing ยท thinking budget controls ยท wildcard routing ยท system prompt injection. **Compatibility:** OpenAI โ†” Claude โ†” Gemini โ†” Responses API ยท auto OAuth refresh (PKCE, 8 providers) ยท multi-account round-robin ยท Batch + Files API ยท live OpenAPI 3.0. **Protocols:** MCP (87 tools, 3 transports, 30 scopes) ยท A2A (JSON-RPC 2.0, SSE, 6 skills) ยท ACP ยท cloud agents (Codex, Devin, Jules). **Plugins:** custom plugin marketplace (system-configured registry URL with SSRF-guarded fetch) ยท install / enable / disable ยท Notion + Obsidian knowledge-base integrations (WebDAV file server, vault search, note CRUD). **Embedded services:** one-click install & lifecycle management of local sidecar services (CLIProxy, NineRouter). **Quality & Ops:** built-in **Evals** (golden-set: exact/contains/regex/custom) ยท guardrails (PII, injection, vision) ยท health dashboard ยท p50/p95/p99 telemetry ยท webhooks ยท compliance audit. **AI Agent Skills:** drop-in markdown manifests โ€” point any agent at a `skills/*/SKILL.md` manifest. 43 skills available. ๐Ÿ“– [MCP Server](open-sse/mcp-server/README.md) ยท [A2A Server](src/lib/a2a/README.md) ยท [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md) ยท [Features Gallery](docs/guides/FEATURES.md)
๐Ÿ“– Setup, env vars & FAQ
| Env var | Default | Purpose | | ----------------- | -------------- | -------------------------------- | | `PORT` | `20128` | API + dashboard port | | `REQUIRE_API_KEY` | `false` | Require API key for all requests | | `DATA_DIR` | `~/.omniroute` | Database & config storage | **Will I be charged by OmniRoute?** No โ€” it's free, open-source software on your machine. You only pay paid providers directly. OmniRoute has no billing system. **Are FREE providers really unlimited?** Mostly โ€” Qoder, Pollinations, LongCat, and Cloudflare are free with no per-account credit cap. Kiro is free too but capped at ~50 credits/month per account. Stack multiple free providers in a combo and auto-fallback keeps you serving for $0. **Will compression hurt quality?** No โ€” it only compresses the **input**; code, URLs, JSON are always protected. **Does it work where AI is blocked?** Yes โ€” 3-level proxy + 1proxy marketplace reach all 237 providers. ๐Ÿ“– [User Guide](docs/guides/USER_GUIDE.md) ยท [API Reference](docs/reference/API_REFERENCE.md) ยท [Environment Config](docs/reference/ENVIRONMENT.md)
๐Ÿ› Troubleshooting
| Problem | Quick fix | | ----------------------------------------- | ------------------------------------------------------------- | | "Language model did not provide messages" | Provider quota exhausted โ†’ use a combo fallback | | Rate limiting (429) | Add fallback: `cc/claude โ†’ glm/glm-4.7 โ†’ if/kimi-k2-thinking` | | OAuth token expired | Auto-refreshed; if stuck, delete + re-auth in Providers | | `unsupported_country_region_territory` | Configure proxy in Settings โ†’ Proxy | | Docker SQLite locks | Use `--stop-timeout 40` for clean WAL checkpoint | | Node runtime errors | Use Node `>=22.0.0 <23` or `>=24.0.0 <27` | ๐Ÿ› **Reporting a bug?** Run `npm run system-info` and attach `system-info.txt`. ๐Ÿ“– [`docs/guides/TROUBLESHOOTING.md`](docs/guides/TROUBLESHOOTING.md)
๐Ÿ“ธ Dashboard screenshots
| Page | Screenshot | Page | Screenshot | | ---------- | ------------------------------------------------- | ---------- | --------------------------------------------- | | Providers | ![Providers](docs/screenshots/01-providers.png) | Combos | ![Combos](docs/screenshots/02-combos.png) | | Analytics | ![Analytics](docs/screenshots/03-analytics.png) | Health | ![Health](docs/screenshots/04-health.png) | | Translator | ![Translator](docs/screenshots/05-translator.png) | Settings | ![Settings](docs/screenshots/06-settings.png) | | CLI Tools | ![CLI Tools](docs/screenshots/07-cli-tools.png) | Usage Logs | ![Usage](docs/screenshots/08-usage.png) |

# ๐Ÿ“ง Support & Community > ๐Ÿ’ฌ **Chat with the community** โ€” Discord, Telegram & WhatsApp (๐ŸŒ / ๐Ÿ‡ง๐Ÿ‡ท) links are at the [top of this README](#-join-the-community). - ๐ŸŒ **Website**: [omniroute.online](https://omniroute.online) - ๐Ÿ™ **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) - ๐Ÿ› **Issues**: [report a bug](https://github.com/diegosouzapw/OmniRoute/issues) (attach `npm run system-info` output) - ๐Ÿค **Contributing**: see [CONTRIBUTING.md](CONTRIBUTING.md) or pick a `good first issue`
---
## ๐Ÿ› ๏ธ Tech Stack
- **Runtime**: Node.js 22.x or 24.x LTS (24 LTS recommended) โ€” `>=22.0.0 <23 || >=24.0.0 <27` - **Language**: TypeScript 6.0 โ€” **100% TypeScript** across `src/` and `open-sse/` (zero `any` in core modules since v2.0) - **Framework**: Next.js 16 + React 19 + Tailwind CSS 4 - **Database**: better-sqlite3 (SQLite) + LowDB (JSON legacy) โ€” domain state, proxy logs, MCP audit, routing decisions, memory, skills - **Schemas**: Zod (MCP tool I/O validation, API contracts) - **Protocols**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE) - **Streaming**: Server-Sent Events (SSE) + WebSocket bridge (`/v1/ws`) - **Auth**: OAuth 2.0 (PKCE) + JWT + API Keys + MCP Scoped Authorization - **Testing**: Node.js test runner + Vitest (**14,965 test cases** across 517 files โ€” unit, integration, E2E, security, ecosystem) - **Platforms**: Desktop (Electron), Android (Termux), PWA (any browser) - **CI/CD**: GitHub Actions (auto npm publish + Docker Hub on release) - **Website**: [omniroute.online](https://omniroute.online) - **Package**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) - **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) - **Resilience**: Circuit breaker, exponential backoff, anti-thundering herd, TLS spoofing, auto-combo self-healing

## ๐Ÿ“– Documentation
### ๐Ÿ“˜ Getting Started | Document | Description | | -------------------------------------------------------------- | -------------------------------------------------------------------------------- | | [User Guide](docs/guides/USER_GUIDE.md) | Providers, combos, CLI integration, deployment | | [Setup Guide](docs/guides/SETUP_GUIDE.md) | Full install methods, CLI tool configs, protocol setup, timeout tuning | | [CLI Tools Guide](docs/reference/CLI-TOOLS.md) | Per-tool setup for Claude Code, Codex, Cursor, Cline, OpenClaw, Kilo, Copilot | | [Remote Mode](docs/guides/REMOTE-MODE.md) | Drive a remote OmniRoute (VPS) from your laptop CLI via scoped access tokens | | [Claude Code Config](docs/guides/CLAUDE-CODE-CONFIGURATION.md) | Point Claude Code at OmniRoute (local/remote) with `launch` + per-model profiles | | [Quick Start](README.md#-quick-start) | 3-step install โ†’ connect โ†’ configure | ### ๐Ÿ”ง Operations & Deployment | Document | Description | | -------------------------------------------------------- | -------------------------------------------------------------- | | [Docker Guide](docs/guides/DOCKER_GUIDE.md) | Docker run, Compose profiles, Caddy HTTPS, tunnels, image tags | | [Podman Guide](contrib/podman/README.md) | Quadlet systemd integration, podman-compose, SELinux | | [VM Deployment](docs/ops/VM_DEPLOYMENT_GUIDE.md) | Complete guide: VM + nginx + Cloudflare setup | | [Fly.io Deployment](docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) | Deploy to Fly.io with persistent storage | | [Termux Guide](docs/guides/TERMUX_GUIDE.md) | Run OmniRoute on Android via Termux | | [PWA Guide](docs/guides/PWA_GUIDE.md) | Progressive Web App install, caching, architecture | | [Uninstall Guide](docs/guides/UNINSTALL.md) | Clean removal for all install methods | | [Environment Config](docs/reference/ENVIRONMENT.md) | Complete `.env` variables and references | ### ๐Ÿง  Features & Architecture | Document | Description | | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | [Architecture](docs/architecture/ARCHITECTURE.md) | System architecture, data flow, and internals | | [Compression Guide](docs/compression/COMPRESSION_GUIDE.md) | 7-option pipeline: off / lite / standard / aggressive / ultra / RTK / stacked | | [RTK Compression](docs/compression/RTK_COMPRESSION.md) | Command-output compression, filters, trust, verify, raw-output recovery | | [Compression Engines](docs/compression/COMPRESSION_ENGINES.md) | Caveman, RTK, stacked pipelines, dashboard/API/MCP surfaces | | [Compression Rules Format](docs/compression/COMPRESSION_RULES_FORMAT.md) | JSON rule-pack schemas for Caveman and RTK filters | | [Compression Language Packs](docs/compression/COMPRESSION_LANGUAGE_PACKS.md) | Language detection and Caveman rule-pack authoring | | [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md) | Circuit breakers, cooldowns, queue, anti-thundering herd, TLS spoofing | | [Auto-Combo Engine](docs/routing/AUTO-COMBO.md) | 9-factor scoring, mode packs, self-healing | | [Proxy Guide](docs/ops/PROXY_GUIDE.md) | 3-level proxy system, 1proxy marketplace, registry CRUD | | [Free Tiers](docs/reference/FREE_TIERS.md) | 25+ free API providers consolidated directory | | [Features Gallery](docs/guides/FEATURES.md) | Visual dashboard tour with screenshots | | [Codebase Documentation](docs/architecture/CODEBASE_DOCUMENTATION.md) | Beginner-friendly codebase walkthrough | ### ๐Ÿค– Protocols & APIs | Document | Description | | ------------------------------------------------- | --------------------------------------------------- | | [API Reference](docs/reference/API_REFERENCE.md) | All endpoints with examples | | [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0 specification | | [MCP Server](open-sse/mcp-server/README.md) | 87 MCP tools, IDE configs, Python/TS/Go clients | | [MCP Server Guide](docs/frameworks/MCP-SERVER.md) | MCP installation, transports, and tool reference | | [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 protocol, skills, streaming, task mgmt | | [A2A Server Guide](docs/frameworks/A2A-SERVER.md) | A2A agent card, tasks, skills, and streaming | ### ๐Ÿ“‹ Project & Quality | Document | Description | | -------------------------------------------------- | ----------------------------------------------- | | [Contributing](CONTRIBUTING.md) | Development setup and guidelines | | [Changelog](CHANGELOG.md) | Full per-version release history | | [Security Policy](SECURITY.md) | Vulnerability reporting and security practices | | [i18n Guide](docs/guides/I18N.md) | 40+ language support, translation workflow, RTL | | [Release Checklist](docs/ops/RELEASE_CHECKLIST.md) | Pre-release validation steps | | [Coverage Plan](docs/ops/COVERAGE_PLAN.md) | Test coverage strategy and 14,965 test suite |
# โญ 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.**
oyi77
oyi77

๐Ÿฅ‡ 190 commits โ€ข +72K lines
Analytics engine, SQL aggregations,
proxy marketplace, test coverage
Chris Staley
Chris Staley

๐Ÿฅˆ 72 commits โ€ข +5.7K lines
SSE stream hardening, Responses API,
Gemini pagination, test regression fixes
zenobit
zenobit

๐Ÿฅ‰ 62 commits โ€ข +24K lines
CI/CD pipeline, i18n for 33 languages,
Void Linux package, platform fixes
R.D. & Randi
R.D. & Randi

๐Ÿ… 107 commits โ€ข +28K lines
Endpoints page, tunnel integrations,
Docker workflows, A2A status, compression UI
benzntech
benzntech

๐Ÿ… 20 commits โ€ข +7.5K lines
Electron desktop app, auto-updater,
release build workflows, cross-platform CI
> ๐Ÿ™ 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.
---
## ๐Ÿ‘ฅ Contributors
[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) ### How to Contribute 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request See [CONTRIBUTING.md](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 ```
## ๐Ÿ“Š Stars Star History Chart

## ๐ŸŒ StarMapper StarMapper

## ๐Ÿ™ Acknowledgments
OmniRoute stands on the shoulders of giants. It started as a fork of **[9router](https://github.com/decolua/9router)** and a TypeScript port of the Go project **[CLIProxyAPI](https://github.com/router-for-me/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 June 2026 โ€” go give these projects a star. ### ๐Ÿงฌ Lineage & gateway | Project | โญ | How it inspired OmniRoute | | ------------------------------------------------------------------------------- | ----: | ------------------------------------------------------------------------------------------------------------------------------------- | | **[9router](https://github.com/decolua/9router)** ยท decolua | 17.9k | The original project this fork is built on โ€” extended here with multi-modal APIs and a full TypeScript rewrite. | | **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** ยท router-for-me | 37.8k | The Go implementation that inspired this JavaScript / TypeScript port. | | **[LiteLLM](https://github.com/BerriAI/litellm)** ยท BerriAI | 50.8k | The AI gateway whose public pricing dataset feeds our cost-tracking sync and whose provider-normalization model informed our routing. | ### ๐Ÿ—œ๏ธ Context & token compression โ€” engines | Project | โญ | How it inspired OmniRoute | | ---------------------------------------------------------------------------- | ----: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **[Caveman](https://github.com/JuliusBrussee/caveman)** ยท JuliusBrussee | 74.5k | 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. | | **[RTK โ€“ Rust Token Killer](https://github.com/rtk-ai/rtk)** ยท rtk-ai | 63.6k | High-performance command-output compression โ€” inspired our RTK engine, JSON filter DSL, raw-output recovery and the stacked RTK โ†’ Caveman pipeline. | | **[headroom](https://github.com/chopratejas/headroom)** ยท chopratejas | 33.6k | Reversible context-compression (SmartCrusher) โ€” inspired our `headroom` engine and the `ccr` retrieve-marker pattern. | | **[LLMLingua](https://github.com/microsoft/LLMLingua)** ยท Microsoft | 6.3k | Prompt-compression research (LLMLingua / LLMLingua-2) โ€” inspired our async, code-safe, fail-open `llmlingua` engine. | | **[llmlingua-2-js](https://github.com/atjsh/llmlingua-2-js)** ยท atjsh | 27 | The JS/ONNX port (MobileBERT / XLM-RoBERTa) used as the worker-thread backend for our LLMLingua engine. | | **[Troglodita](https://github.com/leninejunior/troglodita)** ยท Lenine Jรบnior | 15 | PT-BR token compression โ€” powers our pt-BR language pack: pleonasm reduction and filler removal tuned for Brazilian-Portuguese grammar. | | **[ponytail](https://github.com/DietrichGebert/ponytail)** ยท DietrichGebert | 51.4k | The viral "lazy senior dev" YAGNI-coder skill โ€” inspired our **less-code** Output Style: smallest-working-change steering that cuts _generated_ code (the output-axis sibling to Caveman's terse prose). | ### ๐Ÿงฉ Compact formats, token research & code-aware tooling | Project | โญ | How it inspired OmniRoute | | ---------------------------------------------------------------------------------------------- | ----: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **[TOON](https://github.com/toon-format/toon)** ยท toon-format | 24.6k | Token-Oriented Object Notation โ€” its columnar, header-plus-rows model shaped our tabular compaction stage. | | **[GCF โ€“ Graph Compact Format](https://github.com/blackwell-systems/gcf)** ยท Blackwell Systems | 11 | Schema-aware "JSON for LLMs" notation โ€” co-inspired our lossless homogeneous-array compaction with `[N rows]` markers. | | **[token-optimizer-mcp](https://github.com/ooples/token-optimizer-mcp)** ยท ooples | 409 | Brotli/SQLite cache + per-session context-delta โ€” inspired our `session-dedup` engine. | | **[token-savior](https://github.com/Mibayy/token-savior)** ยท Mibayy | 993 | Bash-output compaction + MCP profiles โ€” inspired our compression bail-out discipline and MCP tool-manifest reduction. | | **[token-saver](https://github.com/ppgranger/token-saver)** ยท ppgranger | 103 | Content-aware, per-file-type output compression with failure-aware bail-out โ€” validated our per-type dispatch and minimum-gain skip. | | **[token-optimizer](https://github.com/alexgreensh/token-optimizer)** ยท alexgreensh | 1.4k | "Find the ghost tokens" โ€” its offload + recoverable-handle pattern informed our CCR offload thinking. | | **[TokenMizer](https://github.com/Shweta-Mishra-ai/tokenmizer)** ยท Shweta-Mishra-ai | 1 | A session-graph + cross-turn line-dedup blueprint that informed our session-dedup design. | | **[OmniCompress](https://github.com/jessefreitas/OmniCompress)** ยท jessefreitas | 2 | Rust columnar-JSON + content-addressed retrieve + cross-message dedup โ€” validated our `headroom`/`ccr`/`session-dedup` engine design and the cache-stable "compressed form is position-independent" invariant. | | **[mcp-compressor](https://github.com/atlassian-labs/mcp-compressor)** ยท Atlassian Labs | 80 | MCP tool-schema/description compression โ€” informed our MCP tool-manifest cardinality reduction. | | **[RepoMapper](https://github.com/pdavis68/RepoMapper)** ยท pdavis68 | 182 | Aider-style repo-map ranking โ€” informed our repo-map / retrieval-ranking exploration. | | **[quiet-shell-mcp](https://github.com/mrsimpson/quiet-shell-mcp)** ยท mrsimpson | 4 | Declarative shell-output reduction over MCP โ€” validated our declarative bash-output compaction. | | **[ts-morph](https://github.com/dsherret/ts-morph)** ยท David Sherret | 6.1k | TypeScript Compiler API toolkit โ€” inspired our parser-based comment removal that preserves string, template and regex literals. | ### ๐Ÿง  Memory & RAG | Project | โญ | How it inspired OmniRoute | | ------------------------------------------------------------------ | ----: | ------------------------------------------------------------------------------------------------------------------- | | **[Mem0](https://github.com/mem0ai/mem0)** ยท mem0ai | 58.9k | Universal memory layer โ€” its proxy-as-write/read-boundary model shaped our memory architecture. | | **[Letta (MemGPT)](https://github.com/letta-ai/letta)** ยท letta-ai | 23.4k | Stateful agents with tiered memory โ€” inspired our Context Control & Recovery (CCR) tiered model. | | **[WFGY](https://github.com/onestardao/WFGY)** ยท onestardao | 1.8k | The ProblemMap taxonomy of 16 recurring RAG/LLM failure modes โ€” the shared vocabulary in our troubleshooting guide. | ### ๐Ÿ›ฐ๏ธ Traffic inspection, MITM & transparent proxy | Project | โญ | How it inspired OmniRoute | | --------------------------------------------------------------------------------- | ---: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **[llm-interceptor](https://github.com/chouzz/llm-interceptor)** ยท chouzz | 46 | MITM interception/analysis of coding-assistant โ†” LLM traffic โ€” our Traffic Inspector ports its SSE merge, conversation normalization, host passthrough and secret masking (MIT). | | **[ProxyBridge](https://github.com/InterceptSuite/ProxyBridge)** ยท InterceptSuite | 5.1k | Transparent per-process proxy routing โ€” inspired our crash-safe MITM teardown, socket idle-timeouts, `/proc` process attribution and TPROXY capture. | ### ๐Ÿ“š Model data, observability & UI | Project | โญ | How it inspired OmniRoute | | -------------------------------------------------------------------------- | ----: | -------------------------------------------------------------------------------------------------------------------------- | | **[models.dev](https://github.com/anomalyco/models.dev)** ยท SST / OpenCode | 5.1k | Open database of AI model specs, pricing and capabilities โ€” synced natively into our model catalog. | | **[React Flow / xyflow](https://github.com/xyflow/xyflow)** ยท xyflow | 37.1k | The node-based graph library powering our real-time Compression Studio and Combo/Routing Studio. | | **[LangGraph](https://github.com/langchain-ai/langgraph)** ยท LangChain | 35.1k | LangGraph Studio's live workflow-graph visualization inspired our Studios' real-time cascade view. | | **[Langfuse](https://github.com/langfuse/langfuse)** ยท Langfuse | 29.3k | Its trace โ†’ span โ†’ generation observability model shaped our Compression Studio waterfall. | | **[Kiali](https://github.com/kiali/kiali)** ยท Kiali | 3.6k | Istio service-mesh observability โ€” inspired our circuit-breaker badges and error-edge visuals in the Routing/Combo Studio. | | **[lobe-icons](https://github.com/lobehub/lobe-icons)** ยท LobeHub | 2.1k | AI/LLM brand logos that render the provider icons across our dashboard. | ### ๐Ÿ›ก๏ธ Security | Project | โญ | How it inspired OmniRoute | | ------------------------------------------------------------------------------------------- | --: | ------------------------------------------------------------------------------------------------------------------------------------------------ | | **[awesome-secure-defaults](https://github.com/tldrsec/awesome-secure-defaults)** ยท tldrsec | 708 | A curated list of secure-by-default libraries that guides our security choices (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink). | ## โค๏ธ Support OmniRoute is free and open source, built and maintained in the open. If it saves you time or money, consider supporting development: - โญ **Star the repo** โ€” it genuinely helps visibility - ๐Ÿ’– **[GitHub Sponsors](https://github.com/sponsors/diegosouzapw)** โ€” fund ongoing maintenance and new providers - ๐Ÿ› **Report bugs and share feedback** in [Discussions](https://github.com/diegosouzapw/OmniRoute/discussions) ## ๐Ÿ“„ License MIT License - see [LICENSE](LICENSE) for details. ---
**[โฌ† Back to top](#-omniroute)** ยท Built with โค๏ธ for the open-source AI community. OmniRoute v3.8.24 ยท Node โ‰ฅ22.0.0 ยท MIT License ยท omniroute.online