diff --git a/README.md b/README.md index 4fa585acca..23d4fe1753 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ OmniRoute Dashboard +

# 🚀 OmniRoute — The Free AI Gateway @@ -16,13 +17,15 @@ -> 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 **43 provider pools / 460+ models** into one honest number and shows it live on the dashboard (`/dashboard/free-tiers`). +> 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 **43 provider pools / 516 models** into one honest number and shows it live on the dashboard (`/dashboard/free-tiers`). -OmniRoute free-tier budget card: ~1.53B free tokens per month steady, up to ~2.15B in the first month with signup credits, from the documented free tiers of 43 provider pools / 460+ models behind one endpoint. Honest pool-deduped math — each shared pool counted once (counting every rate limit 24/7 would read ~10B; not published), 15 providers ToS-flagged so you decide. Budget bar of the countable free pools with per-model grid (Mistral Large 3 1B, GPT-4o mini 150M, Gemini 2.5 Flash 60M … Claude Sonnet 4.5 25K), one-time first-month signup credits (vertex 300M, agentrouter 200M, predibase 25M, together 25M, glm-cn 20M, doubao 15M, ai21 10M, longcat 10M, deepseek 5M, hyperbolic 5M, nscale 5M), plus permanently-free no-token-cap providers (SiliconFlow, Z.AI GLM-Flash, Kilo, OpenCode Zen, baidu …) and a $10 OpenRouter top-up unlocking +24M/mo — surfaced separately so they never inflate the headline. Live used/remaining on /dashboard/free-tiers. +OmniRoute free-tier budget card: ~1.53B free tokens per month steady, up to ~2.15B in the first month with signup credits, from the documented free tiers of 43 provider pools / 516 models behind one endpoint. Honest pool-deduped math — each shared pool counted once (counting every rate limit 24/7 would read ~10B; not published), 15 providers ToS-flagged so you decide. Budget bar of the countable free pools with per-model grid (Mistral Large 3 1B, GPT-4o mini 150M, Gemini 2.5 Flash 60M … Claude Sonnet 4.5 25K), one-time first-month signup credits (vertex 300M, agentrouter 200M, predibase 25M, together 25M, glm-cn 20M, doubao 15M, ai21 10M, longcat 10M, deepseek 5M, hyperbolic 5M, nscale 5M), plus permanently-free no-token-cap providers (SiliconFlow, Z.AI GLM-Flash, Kilo, OpenCode Zen, baidu …) and a $10 OpenRouter top-up unlocking +24M/mo — surfaced separately so they never inflate the headline. Live used/remaining on /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](docs/reference/FREE_TIERS.md)**. > -> These figures are re-audited every two weeks against the live catalog and **move both ways** — a provider ends a free tier and the number drops; a new one lands and it climbs. We publish what the catalog actually computes, never a rounded-up best case. A CI gate (`check:docs-counts`) fails the build if this headline drifts from the code. +> 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. + +
@@ -36,10 +39,13 @@ diegosouzapw%2FOmniRoute | Trendshift [![Star History Rank](https://api.star-history.com/badge?repo=diegosouzapw/OmniRoute&theme=dark)](https://www.star-history.com/diegosouzapw/omniroute) -
- ### 💬 Join the community +**👋 Follow the maintainer — get new providers, releases & tips first:** + +[![Follow Diego on LinkedIn](https://img.shields.io/badge/Follow_Diego_on-LinkedIn-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/diegosouzapw/) +[![Follow @diegosouzapw on GitHub](https://img.shields.io/github/followers/diegosouzapw?style=for-the-badge&logo=github&logoColor=white&label=Follow%20on%20GitHub&color=181717)](https://github.com/diegosouzapw) + [![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/U47eFqAXCn) [![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) @@ -59,74 +65,97 @@ ![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) -[**🚀 Quick Start**](#-quick-start) • [**🎯 Combos**](#-combos--the-flagship) • [**🌐 Providers**](#-290-ai-providers--90-free) • [**🔌 CLI & MCP**](#-full-cli--a2a--mcp) • [**🗜️ Compression**](#%EF%B8%8F-save-1595-tokens--automatically) • [**🌍 Website**](https://omniroute.online) + + + + + + + + + + + +
🚀 Quick Start🎯 Combos🌐 Providers
🔌 CLI & MCP🗜️ Compression🌍 Website
-[💥 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) • [📸 Screenshots](#-dashboard-screenshots) • [📧 Support](#-support--community) + + + + + + + + + + + + + + + + +
💥 The Promise🤔 Why🏆 What Sets Apart
🤖 Compatible CLIs🖥️ Where It Runs🔒 Private
🎬 In Action📸 Screenshots📧 Support
🌐 In 43 languages - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
English (en)Português — Brasil (pt-BR)Português (pt)Español (es)Français (fr)Italiano (it)Deutsch (de)Nederlands (nl)Русский (ru)Українська (uk-UA)Polski (pl)Čeština (cs)Slovenčina (sk)Română (ro)Magyar (hu)
Български (bg)Dansk (da)Suomi (fi)Norsk (no)Svenska (sv)中文 — 简体 (zh-CN)中文 — 繁體 (zh-TW)日本語 (ja)한국어 (ko)ไทย (th)Tiếng Việt (vi)Bahasa Indonesia (id)Bahasa Melayu (ms)Filipino (phi)
हिन्दी (in)हिन्दी (hi)ગુજરાતી (gu)मराठी (mr)தமிழ் (ta)తెలుగు (te)বাংলা (bn)اردو (ur)فارسی (fa)العربية (ar)עברית (he)Türkçe (tr)Azərbaycan (az)Kiswahili (sw)
+

+ English (en) + Português — Brasil (pt-BR) + Português (pt) + Español (es) + Français (fr) + Italiano (it) + Deutsch (de) + Nederlands (nl) + Русский (ru) + Українська (uk-UA) + Polski (pl) + Čeština (cs) + Slovenčina (sk) + Română (ro) + Magyar (hu) + Български (bg) + Dansk (da) + Suomi (fi) + Norsk (no) + Svenska (sv) + 中文 — 简体 (zh-CN) + 中文 — 繁體 (zh-TW) + 日本語 (ja) + 한국어 (ko) + ไทย (th) + Tiếng Việt (vi) + Bahasa Indonesia (id) + Bahasa Melayu (ms) + Filipino (phi) + हिन्दी (in) + हिन्दी (hi) + ગુજરાતી (gu) + मराठी (mr) + தமிழ் (ta) + తెలుగు (te) + বাংলা (bn) + اردو (ur) + فارسی (fa) + العربية (ar) + עברית (he) + Türkçe (tr) + Azərbaycan (az) + Kiswahili (sw)
+
+
+
# 🆓 Works the second you install it — no keys, no config
-> **Install → point your tool at the endpoint → it already answers.** OmniRoute ships with keyless free providers (OpenCode Free, Felo) already wired into the `auto` combo, so a **fresh install responds out of the box** — no API key, no signup, no configuration. +Works the second you install it — zero config. Three steps: 1. Install — npm i -g omniroute, server boots on localhost:20128. 2. Point your tool at http://localhost:20128/v1 — any OpenAI-compatible tool (Claude Code, Cursor, Cline). 3. It answers — call model auto for an instant reply, with no API key, no signup, no configuration. Keyless free providers OpenCode Free and Felo are pre-wired into the auto combo, so a fresh install responds out of the box. ```bash # Fresh install, zero credentials — `auto` already works: @@ -135,12 +164,10 @@ curl http://localhost:20128/v1/chat/completions \ -d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}' ``` -- ✅ **`auto` responds immediately** — OmniRoute builds a virtual combo from the built-in keyless free providers and routes to a healthy one, with no setup. -- ➕ **Add more providers anytime** — drop in a Claude / GPT / Gemini key (or any of the 290 providers) from the dashboard and they join the `auto` pool automatically. -- 🎛️ **Build your own free combos** — chain your free tiers with any of the 19 routing strategies so you never run out of quota. - Prefer a specific free backend? Call it directly, e.g. `oc/…` (OpenCode Free) or `felo/…` (Felo). Then graduate to `auto` and let OmniRoute pick. +
+
# 💥 The Promise @@ -168,7 +195,11 @@ curl http://localhost:20128/v1/chat/completions \
-## 🤝 Supported by our Open Source Friends +
+ +# 🤝 Supported by our Open Source Friends + +

@@ -208,6 +239,8 @@ curl http://localhost:20128/v1/chat/completions \

+All 19 combo routing strategies animated — one tile per strategy: priority, fill-first, weighted, round-robin, p2c, least-used, random, strict-random, cost-optimized, headroom, reset-window, reset-aware, context-relay, context-optimized, cache-optimized, lkgp, auto, fusion, pipeline. See the table above for what each one does. + > 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` @@ -251,29 +284,10 @@ All **19** strategies — mix & match per combo step: | 18 | `fusion` | Fan out to a panel of models + a judge synthesizes one answer 🧬 | | 19 | `pipeline` | Chain steps — each target's output feeds the next one 🔗 | -All 19 combo routing strategies animated — one tile per strategy: priority, fill-first, weighted, round-robin, p2c, least-used, random, strict-random, cost-optimized, headroom, reset-window, reset-aware, context-relay, context-optimized, cache-optimized, lkgp, auto, fusion, pipeline. See the table above for what each one does. - The Auto-Combo engine scores every candidate on **12 factors** (health, quota, cost, latency, success rate, freshness…) — see [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md). ## -### ⚖️ Quota-Share — split one subscription across a team ✨ NEW - -> Running several keys against the **same upstream account** (one Codex Pro plan, one Kimi key, one GLM Coding seat)? A burst on one key can burn the whole 5-hour / hourly quota and lock everyone else out. **Quota-Share** distributes a provider's time-based quota **fairly** across the keys in a pool — and it's _work-conserving_, so an idle member's slice is lent out instead of wasted. - -| Knob | What it controls                                                                                                                                                              | -| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ⚖️ **Allocation weight** | each key's slice of the pool — e.g. `50 / 30 / 20` | -| 📐 **Dimensions** | track `%` · requests · tokens · `$`, per **5h / 7d / per-model** window | -| 🚦 **Policy** | `hard` (block over share) · `soft` (deprioritize) · `burst` (use idle headroom) | -| 🧱 **Cap** | absolute ceiling per key, independent of mode | - -OmniRoute key pool 'team-codex': one Codex Pro account shared by 3 keys over a 5-hour window. alice weight 50 (up to 50% of the shared 5h quota), bob weight 30, ci-bot weight 20. In generous mode (under 50% pool used) idle shares are lent out; once the pool crosses 50% strict mode holds each key to its fair share. - -Enforced in the hot path **before** the request leaves OmniRoute, with per-(key, model) caps + session stickiness for prompt-cache integrity (now with a per-combo / global disable toggle). 📖 [Quota Sharing Engine](docs/routing/QUOTA_SHARE.md) - -## - ### 🧱 Resilience is built in (3 independent layers) OmniRoute resilience — 3 independent self-healing layers, the right layer for the right failure. Layer 1 provider circuit breaker (whole provider): trips only on 408/5xx, thresholds OAuth 3× / API-key 5× / local 2×, resets 60s/30s/15s into a HALF-OPEN probe, lazy recovery; while OPEN the combo reroutes to the next provider. Layer 2 connection cooldown (one key/account): base 5s OAuth / 3s API-key, exponential ×2 backoff with anti-thundering-herd guard, 429 honors Retry-After, success clears all error state; one cooling key is skipped while sibling keys keep serving. Layer 3 model lockout (one model): per-model 429, local 404 or mode denials lock just that model — never the whole connection. Terminal states (banned, expired, credits exhausted) are for the operator, not cooldowns. @@ -288,22 +302,9 @@ All **19** strategies — mix & match per combo step: -| Feature | OmniRoute | Other routers | -| -------------------------------------- | -------------------------------------- | ------------- | -| 🌐 Providers | **290** | 20–100 | -| 🆓 Free providers | **90+ (40+ free forever)** | 1–5 | -| 🔀 Routing strategies | **19** strategies | 1–3 | -| 🗜️ Token compression | **RTK + Caveman stacked (15–95%)** | None / 20–40% | -| 🧰 Built-in MCP server | **104 tools, 3 transports, 31 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, Cursor, Devin, Jules** | None | -| 🥷 TLS fingerprint stealth | **JA3/JA4 via wreq-js** | None | -| 🖥️ Multi-platform | **Web · Desktop · Termux · PWA** | Web only | -| 🌍 i18n | **43 locales** | 0–4 | +What sets OmniRoute apart — comparison table vs 9router, OpenRouter, CLIProxyAPI and LiteLLM across 13 capabilities. OmniRoute: 290 providers, 90+ free providers built-in, 19 routing strategies, 12-engine token compression, built-in MCP server with 104 tools, A2A agent protocol, persistent memory, guardrails, cloud agents, TLS fingerprint stealth, Desktop/Termux/PWA, 43 i18n UI locales, 100% MIT self-hosted. OmniRoute is the only one with the full set; competitors show a mix of checks, partials and crosses. Verified from each project's docs. -📊 Detailed comparison vs LiteLLM, OpenRouter & Portkey → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md) +📊 Full methodology & per-feature detail vs 9router, OpenRouter, CLIProxyAPI & LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
@@ -337,8 +338,9 @@ OmniRoute is free and open source, built and maintained in the open. If it saves - **🧠 Memory you control** — off by default, opt-in int8 vector quantization + typed decay, per-request `x-omniroute-no-memory`. → [Memory](docs/frameworks/MEMORY.md) - **🛡️ Security** — prompt-injection guard on every LLM route (red-team suite) + free DuckDuckGo last-resort web search. → [Guardrails](docs/security/GUARDRAILS.md) - **🖼️ New endpoints** — `/v1/ocr` (Mistral OCR) and `/v1/audio/translations` (Whisper-style) round out the media surface. → [API Reference](docs/reference/API_REFERENCE.md) +- **🎨 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](docs/reference/API_REFERENCE.md) - **🌍 Deployment & ops** — reverse-proxy `basePath`, browser-language auto-detect, per-key device tracking, root-less MITM trust, zh-TW localization. → [Environment](docs/reference/ENVIRONMENT.md) -- **🤝 More providers & agents** — Cursor Cloud Agent, Grok Build (xAI), Ollama first-class card, Claude Sonnet 5, Zed, Requesty, SenseNova, Yuanbao… and a refreshed 250-provider catalog. → [Providers](docs/reference/PROVIDER_REFERENCE.md) +- **🤝 More providers & agents** — Cursor Cloud Agent, Grok Build (xAI), Ollama first-class card, Claude Sonnet 5, Zed, Requesty, SenseNova, Yuanbao, Agnes AI… and a refreshed **290-provider catalog**. → [Providers](docs/reference/PROVIDER_REFERENCE.md) - **⚡ Local performance & infra** — one-click local Redis, Cloudflare Workers / Deno Deploy relay deployers, Bifrost & Mux as supervised embedded services. → [Embedded Services](docs/frameworks/EMBEDDED-SERVICES.md)
diff --git a/docs/diagrams/comparison-table.svg b/docs/diagrams/comparison-table.svg new file mode 100644 index 0000000000..35bd075e64 --- /dev/null +++ b/docs/diagrams/comparison-table.svg @@ -0,0 +1,138 @@ + + Static-header comparison table where each capability row fades in top to bottom; the OmniRoute column is highlighted and shows a check or a leading value in every row, while competitors show a mix of checks, partials and crosses. + + + + + + + + + + + WHAT SETS OMNIROUTE APART + + Every router does routing. OmniRoute does the whole platform. + + OmniRoute + 9router + OpenRouter + CLIProxyAPI + LiteLLM + + + + Providers + 290 + 40+ + 400+* + ~5 + 100+ + + + + Free providers built-in + 90+ + + + + + + + Routing strategies + 19 + 2 + 3 + 2 + 6 + + + + Token compression + 12 eng + + + + + + + Built-in MCP server (own tools) + 104 + + + + + + + + A2A agent protocol + + + + + + + + Persistent memory + + + + + + + + + Guardrails (PII / injection) + + + + + + + + Cloud agents (Codex/Devin/Jules) + + + + + + + + + TLS fingerprint stealth (JA3/JA4) + + + + + + + + Desktop · Termux · PWA + + + + + + + + + i18n UI locales + 43 + 6 + + + + + + Self-hosted · 100% MIT + MIT + MIT + + MIT + open-core + + + + full • partial • none  ·  *OpenRouter counts models & is a hosted SaaS, not self-hosted. + verified from each project's docs + diff --git a/docs/diagrams/works-zero-config.svg b/docs/diagrams/works-zero-config.svg new file mode 100644 index 0000000000..0664cc115d --- /dev/null +++ b/docs/diagrams/works-zero-config.svg @@ -0,0 +1,117 @@ + + Animated flow card: three step tiles (Install, Point your tool, It answers) fade in left to right, a dot travels along the connectors between them in a loop, and the final check pulses. + + + + + + + + + + + + + + + + + WORKS THE SECOND YOU INSTALL IT + + Fresh install → it already answers. Zero config. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + Install + $ npm i -g omniroute + One command. Server boots on + localhost:20128 + + + + + + + + + 2 + + + + Point your tool + http://localhost:20128/v1 + Any OpenAI-compatible tool — + Claude Code, Cursor, Cline… + + + + + + + + + + + + 3 + + + + It answers + model: "auto" → reply + Instant. OmniRoute builds a virtual + combo from keyless free providers. + + + + + + + + + ✕ no API key + + + + ✕ no signup + + + + ✕ no configuration + + + + + OpenCode Free & Felo are pre-wired into auto — a fresh install responds out of the box. + $0 · MIT +