{"id":44639934,"url":"https://github.com/diegosouzapw/omniroute","last_synced_at":"2026-06-14T02:10:04.301Z","repository":{"id":338299336,"uuid":"1157102282","full_name":"diegosouzapw/OmniRoute","owner":"diegosouzapw","description":"Never stop coding. Free AI gateway: one endpoint, 160+ providers (50+ free), connect Claude Code, Codex, Cursor, Cline \u0026 Copilot to FREE Claude/GPT/Gemini. RTK+Caveman stacked compression saves 15-95% tokens, smart auto-fallback, MCP/A2A, multimodal APIs, Desktop/PWA.","archived":false,"fork":false,"pushed_at":"2026-05-23T07:25:16.000Z","size":104144,"stargazers_count":5174,"open_issues_count":75,"forks_count":884,"subscribers_count":20,"default_branch":"main","last_synced_at":"2026-05-23T07:33:15.572Z","etag":null,"topics":["a2a","ai-agents","ai-gateway","anthropic","claude","claude-code","cline","codex","copilot","cursor","deepseek","free-ai","gemini","gemini-cli","llm-gateway","mcp","openai","openai-proxy","qwen","token-saver"],"latest_commit_sha":null,"homepage":"https://omniroute.online","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/diegosouzapw.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-13T12:38:31.000Z","updated_at":"2026-05-23T07:01:19.000Z","dependencies_parsed_at":"2026-02-26T00:01:24.751Z","dependency_job_id":null,"html_url":"https://github.com/diegosouzapw/OmniRoute","commit_stats":null,"previous_names":["diegosouzapw/omniroute"],"tags_count":264,"template":false,"template_full_name":null,"purl":"pkg:github/diegosouzapw/OmniRoute","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegosouzapw%2FOmniRoute","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegosouzapw%2FOmniRoute/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegosouzapw%2FOmniRoute/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegosouzapw%2FOmniRoute/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/diegosouzapw","download_url":"https://codeload.github.com/diegosouzapw/OmniRoute/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/diegosouzapw%2FOmniRoute/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33554780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a2a","ai-agents","ai-gateway","anthropic","claude","claude-code","cline","codex","copilot","cursor","deepseek","free-ai","gemini","gemini-cli","llm-gateway","mcp","openai","openai-proxy","qwen","token-saver"],"created_at":"2026-02-14T18:11:48.772Z","updated_at":"2026-06-14T02:10:04.293Z","avatar_url":"https://github.com/diegosouzapw.png","language":"TypeScript","funding_links":["https://github.com/sponsors/diegosouzapw"],"categories":["The latest additions 🎉"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"./docs/screenshots/MainOmniRoute.png\" alt=\"OmniRoute Dashboard\" width=\"820\"/\u003e\n\n\u003cbr/\u003e\n\n# 🚀 OmniRoute — The Free AI Gateway\n\n### Never stop coding. Connect every AI tool to **177 providers** — **50+ free** — through one endpoint.\n\n**Plug Claude Code, Codex, Cursor, Cline, Copilot \u0026 Antigravity into FREE Claude / GPT / Gemini. Auto-fallback.**\n\u003cbr/\u003e\n\n**RTK + Caveman compression saves 15–95% tokens. Never hit limits.**\n\n\u003cbr/\u003e\n\n**~1.9B+ documented free tokens/month** — up to **~2.5B in your first month** with signup credits — aggregated across the free tiers, 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))\n\n\u003cbr/\u003e\n\n[![177 AI Providers](https://img.shields.io/badge/177-AI_Providers-6C5CE7?style=for-the-badge)](#-177-ai-providers--50-free)\n[![50+ Free](https://img.shields.io/badge/50%2B-Free_Tiers-00B894?style=for-the-badge)](#-177-ai-providers--50-free)\n[![1.9B+ Free Tokens/mo](https://img.shields.io/badge/1.9B%2B-Free_Tokens%2Fmo-00B894?style=for-the-badge)](docs/reference/FREE_TIERS.md)\n[![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)\n[![15 Strategies](https://img.shields.io/badge/15-Routing_Strategies-0984E3?style=for-the-badge)](#-combos--the-flagship)\n[![$0 to start](https://img.shields.io/badge/%240-To_Start-FDCB6E?style=for-the-badge\u0026logoColor=black)](#-quick-start)\n\n\u003cbr/\u003e\n\n### 💬 Join the community\n\n[![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge\u0026logo=discord\u0026logoColor=white)](https://discord.gg/hmexnhgE)\n[![Telegram](https://img.shields.io/badge/Telegram-26A5E4?style=for-the-badge\u0026logo=telegram\u0026logoColor=white)](https://t.me/omnirouteOficial)\n[![WhatsApp Global](https://img.shields.io/badge/WhatsApp_Global-25D366?style=for-the-badge\u0026logo=whatsapp\u0026logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)\n[![WhatsApp Brasil](https://img.shields.io/badge/WhatsApp_Brasil-25D366?style=for-the-badge\u0026logo=whatsapp\u0026logoColor=white)](https://chat.whatsapp.com/BTGJXIyjeNIIgExvTMGGhI)\n\n**Questions, provider tips, roadmap \u0026 support → [Discord](https://discord.gg/hmexnhgE) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) / [🇧🇷 Brasil](https://chat.whatsapp.com/BTGJXIyjeNIIgExvTMGGhI)**\n\n\u003cbr/\u003e\n\n\u003ca href=\"https://trendshift.io/repositories/23589\" target=\"_blank\"\u003e\u003cimg src=\"https://trendshift.io/api/badge/repositories/23589\" alt=\"diegosouzapw%2FOmniRoute | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"/\u003e\u003c/a\u003e\n\n[![npm](https://img.shields.io/npm/v/omniroute?logo=npm\u0026style=flat-square)](https://www.npmjs.com/package/omniroute)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE)\n[![Node](https://img.shields.io/badge/node-%E2%89%A522.0.0-brightgreen?style=flat-square)](package.json)\n[![Stars](https://img.shields.io/github/stars/diegosouzapw/OmniRoute?style=social)](https://github.com/diegosouzapw/OmniRoute)\n\n\u003cdiv align=\"center\"\u003e\n\n[![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837\u0026logo=npm)](https://www.npmjs.com/package/omniroute)\n![NPM Monthly](https://img.shields.io/npm/dm/omniroute?label=npm/month\u0026color=cb3837\u0026logo=npm)\n[![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub\u0026logo=docker\u0026color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute)\n![Docker Pulls](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?label=docker%20pulls\u0026logo=docker\u0026color=2496ED)\n![Electron Downloads](https://img.shields.io/github/downloads/diegosouzapw/omniroute/total?style=flat\u0026label=electron%20downloads\u0026logo=electron\u0026color=47848F)\n[![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome\u0026logoColor=white)](https://omniroute.online)\n\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n[**🚀 Quick Start**](#-quick-start) • [**🎯 Combos**](#-combos--the-flagship) • [**🌐 Providers**](#-177-ai-providers--50-free) • [**🔌 CLI \u0026 MCP**](#-full-cli--a2a--mcp) • [**🗜️ Compression**](#%EF%B8%8F-save-1595-tokens--automatically) • [**🌍 Website**](https://omniroute.online)\n\n[💥 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)\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cb\u003e🌐 Available in 40+ languages\u003c/b\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"README.md\"\u003e🇺🇸\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/pt-BR/README.md\"\u003e🇧🇷\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/es/README.md\"\u003e🇪🇸\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/fr/README.md\"\u003e🇫🇷\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/it/README.md\"\u003e🇮🇹\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/ru/README.md\"\u003e🇷🇺\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/zh-CN/README.md\"\u003e🇨🇳\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/de/README.md\"\u003e🇩🇪\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/ja/README.md\"\u003e🇯🇵\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/ko/README.md\"\u003e🇰🇷\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/in/README.md\"\u003e🇮🇳\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/th/README.md\"\u003e🇹🇭\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/vi/README.md\"\u003e🇻🇳\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/id/README.md\"\u003e🇮🇩\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/ms/README.md\"\u003e🇲🇾\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/phi/README.md\"\u003e🇵🇭\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/ar/README.md\"\u003e🇸🇦\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/he/README.md\"\u003e🇮🇱\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/az/README.md\"\u003e🇦🇿\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/uk-UA/README.md\"\u003e🇺🇦\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/pl/README.md\"\u003e🇵🇱\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/cs/README.md\"\u003e🇨🇿\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/nl/README.md\"\u003e🇳🇱\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/bg/README.md\"\u003e🇧🇬\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/da/README.md\"\u003e🇩🇰\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/fi/README.md\"\u003e🇫🇮\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/no/README.md\"\u003e🇳🇴\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/sv/README.md\"\u003e🇸🇪\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/hu/README.md\"\u003e🇭🇺\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/ro/README.md\"\u003e🇷🇴\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/sk/README.md\"\u003e🇸🇰\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"docs/i18n/pt/README.md\"\u003e🇵🇹\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 💰 ~1.9B Free Tokens / Month\n\n\u003c/div\u003e\n\n\u003e 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 **50+ provider pools / 530 models** into one honest number and shows it live on the dashboard (`/dashboard/free-tiers`).\n\n- **~1.9B free tokens / month** (steady) — and **up to ~2.5B in your first month** with signup credits.\n- **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. (The naïve per-model sum would read ~8B; we don't publish that.)\n- **Per-model breakdown**, **live used / remaining** for the current month, and a transparent **terms flag** per provider.\n\n![Free-Tier Budget card (preview mockup)](docs/screenshots/free-tier-budget-card.svg)\n\n\u003e 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)**.\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 💥 The Promise\n\n\u003c/div\u003e\n\n\u003e One endpoint. **177 providers.** Never stop building — and let OmniRoute pick the cheapest one that works.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"33%\" valign=\"top\"\u003e\u003cb\u003e🚫 Never hit limits\u003c/b\u003e\u003cbr/\u003e\u003csub\u003eAuto-fallback across 177 providers in milliseconds. Quota out? Next provider takes over — zero downtime.\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd width=\"33%\" valign=\"top\"\u003e\u003cb\u003e💸 Save up to 95% tokens\u003c/b\u003e\u003cbr/\u003e\u003csub\u003eRTK + Caveman stacked compression cuts 15–95% of eligible tokens (~89% avg on tool-heavy sessions).\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd width=\"33%\" valign=\"top\"\u003e\u003cb\u003e🆓 $0 to start\u003c/b\u003e\u003cbr/\u003e\u003csub\u003e50+ providers with a free tier, 11 free \u003ci\u003eforever\u003c/i\u003e (Kiro, Qoder, Pollinations, LongCat…). No card needed.\u003c/sub\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd width=\"33%\" valign=\"top\"\u003e\u003cb\u003e🔌 Every tool works\u003c/b\u003e\u003cbr/\u003e\u003csub\u003e16+ coding agents — Claude Code, Codex, Cursor, Cline, Copilot, Antigravity — through one config.\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd width=\"33%\" valign=\"top\"\u003e\u003cb\u003e🧩 One endpoint\u003c/b\u003e\u003cbr/\u003e\u003csub\u003eOpenAI ↔ Claude ↔ Gemini ↔ Responses API translation. Point any tool at \u003ccode\u003e/v1\u003c/code\u003e and it just works.\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd width=\"33%\" valign=\"top\"\u003e\u003cb\u003e🛡️ Production-grade\u003c/b\u003e\u003cbr/\u003e\u003csub\u003eCircuit breakers, TLS stealth, MCP (87 tools), A2A, memory, guardrails, evals. 4,690+ tests.\u003c/sub\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 🤔 Why OmniRoute?\n\n\u003c/div\u003e\n\n\u003e Stop juggling 10 dashboards, dead API keys, and surprise bills.\n\n| ❌ The daily pain                                      | ✅ How OmniRoute fixes it                                                     |\n| ------------------------------------------------------ | ----------------------------------------------------------------------------- |\n| 📉 Subscription quota expires unused every month       | **Maximize subscriptions** — track quota, use every token before reset        |\n| 🛑 Rate limits stop you mid-coding                     | **4-tier auto-fallback** — Subscription → API → Cheap → Free, in milliseconds |\n| 🔥 Tool outputs (`git diff`, `grep`, logs) burn tokens | **RTK + Caveman compression** — save 15–95% eligible tokens per request       |\n| 💸 Expensive APIs ($20–50/mo per provider)             | **Cost-optimized routing** — auto-route to the cheapest viable model          |\n| 🧰 Each AI tool wants its own setup                    | **One endpoint, every tool, one dashboard**                                   |\n| 🌍 AI blocked in your country                          | **3-level proxy** + TLS fingerprint stealth — use AI from anywhere            |\n\n\u003cdiv align=\"center\"\u003e\n\n```\n┌──────────────────────────────────────────────────────────┐\n│        Your IDE / CLI  (Claude Code, Cursor, Cline…)       │\n└─────────────────────────┬──────────────────────────────────┘\n                          │ http://localhost:20128/v1\n                          ▼\n┌──────────────────────────────────────────────────────────┐\n│                  OmniRoute — Smart Router                  │\n│  RTK + Caveman compression · 15 routing strategies         │\n│  Circuit breakers · TLS stealth · MCP · A2A · Guardrails   │\n└─────────────────────────┬──────────────────────────────────┘\n        ┌─────────────┬────┴────────┬─────────────┐\n        ▼ Tier 1      ▼ Tier 2      ▼ Tier 3       ▼ Tier 4\n   SUBSCRIPTION     API KEY        CHEAP          FREE\n   Claude Code,     DeepSeek,      GLM $0.5,      Kiro, Qoder,\n   Codex, Copilot   Groq, xAI      MiniMax $0.2   Pollinations\n   quota out? ───▶  budget hit? ─▶ budget hit? ─▶ always on\n```\n\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 🎯 Combos — The Flagship\n\n\u003c/div\u003e\n\n\u003e 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.** 🛡️\n\n### ⚡ Zero-config — just use `auto`\n\nNo combo to create. Set your model to `auto` (or a variant) and OmniRoute builds a virtual combo from your connected providers, scored live:\n\n| Model ID       | What it optimizes for                                          |\n| -------------- | -------------------------------------------------------------- |\n| `auto`         | 🎯 Balanced default (LKGP — sticks to your last good provider) |\n| `auto/coding`  | 🧑‍💻 Quality-first weights for code generation                   |\n| `auto/fast`    | ⚡ Lowest latency first                                        |\n| `auto/cheap`   | 💰 Cheapest per token first                                    |\n| `auto/offline` | 🔋 Most quota / rate-limit headroom first                      |\n| `auto/smart`   | 🔭 Quality-first + 10% exploration to discover better models   |\n\n##\n\n### 🔀 Or build your own — 15 routing strategies\n\n| Goal                                    | Strategy / combo                                   |\n| --------------------------------------- | -------------------------------------------------- |\n| 🥇 Drain my subscription before paying  | `priority` / `fill-first`                          |\n| ⚖️ Spread load across accounts          | `round-robin` · `weighted` · `p2c` · `least-used`  |\n| 💸 Always cheapest viable model         | `cost-optimized` · `auto/cheap`                    |\n| 🧠 Hand off long context between models | `context-relay` · `context-optimized`              |\n| 🎲 Randomized / privacy routing         | `random` · `strict-random`                         |\n| 🤖 Just make it smart                   | `auto` (9-factor scoring) · `lkgp` · `reset-aware` |\n\n\u003csub\u003eThe 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).\u003c/sub\u003e\n\n##\n\n### 🧱 Resilience is built in (3 independent layers)\n\n| Layer                      | Scope             | What it does                                                               |\n| -------------------------- | ----------------- | -------------------------------------------------------------------------- |\n| 🔌 **Circuit breaker**     | whole provider    | Stops hammering a provider that's failing upstream; auto-probes to recover |\n| 💤 **Connection cooldown** | one account / key | Skips a rate-limited key while other keys keep serving                     |\n| 🎯 **Model lockout**       | provider + model  | Quarantines just one quota-limited model, not the whole connection         |\n\n```\nCombo: \"always-on\"                         Strategy: priority\n  1. cc/claude-opus-4-7   ← subscription (use it fully)\n  2. cx/gpt-5.5           ← second subscription\n  3. glm/glm-5.1          ← cheap backup ($0.5/1M)\n  4. kr/claude-sonnet-4.5 ← FREE, unlimited (never fails)\nResult: 4 layers of fallback = zero downtime\n```\n\n\u003csub\u003e📖 [Auto-Combo Engine](docs/routing/AUTO-COMBO.md) · [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md)\u003c/sub\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 🏆 What Sets OmniRoute Apart\n\n\u003c/div\u003e\n\n| Feature                                | OmniRoute                                                   | Other routers |\n| -------------------------------------- | ----------------------------------------------------------- | ------------- |\n| 🌐 Providers                           | **177**                                                     | 20–100        |\n| 🆓 Free providers                      | **50+ (11 free forever)**                                   | 1–5           |\n| 🔀 Routing strategies                  | **15** (priority, weighted, cost-optimized, context-relay…) | 1–3           |\n| 🗜️ Token compression                   | **RTK + Caveman stacked (15–95%)**                          | None / 20–40% |\n| 🧰 Built-in MCP server                 | **87 tools, 3 transports, 30 scopes**                       | Rare          |\n| 🤝 A2A agent protocol                  | **6 skills, JSON-RPC 2.0**                                  | None          |\n| 🧠 Memory (FTS5 + vector)              | **Yes**                                                     | Rare          |\n| 🛡️ Guardrails (PII, injection, vision) | **Yes**                                                     | Rare          |\n| ☁️ Cloud agents                        | **Codex, Devin, Jules**                                     | None          |\n| 🥷 TLS fingerprint stealth             | **JA3/JA4 via wreq-js**                                     | None          |\n| 🖥️ Multi-platform                      | **Web · Desktop · Termux · PWA**                            | Web only      |\n| 🌍 i18n                                | **40+ locales**                                             | 0–4           |\n\n\u003csub\u003e📊 Detailed comparison vs LiteLLM, OpenRouter \u0026 Portkey → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)\u003c/sub\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 🤖 Compatible CLIs \u0026 Coding Agents\n\n\u003e One config — `http://localhost:20128/v1` — and **every** AI IDE or CLI runs on free \u0026 low-cost models.\n\n\u003cdiv align=\"center\"\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"120\"\u003e\u003ca href=\"https://github.com/anthropics/claude-code\"\u003e\u003cimg src=\"./public/providers/claude.svg\" width=\"52\" alt=\"Claude Code\"/\u003e\u003cbr/\u003e\u003cb\u003eClaude Code\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"120\"\u003e\u003ca href=\"https://github.com/openai/codex\"\u003e\u003cimg src=\"./public/providers/codex.svg\" width=\"52\" alt=\"Codex CLI\"/\u003e\u003cbr/\u003e\u003cb\u003eCodex CLI\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"120\"\u003e\u003ca href=\"https://github.com/google-gemini/gemini-cli\"\u003e\u003cimg src=\"./public/providers/gemini-cli.svg\" width=\"52\" alt=\"Gemini CLI\"/\u003e\u003cbr/\u003e\u003cb\u003eGemini CLI\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"120\"\u003e\u003cimg src=\"./public/providers/cursor.png\" width=\"52\" alt=\"Cursor\"/\u003e\u003cbr/\u003e\u003cb\u003eCursor\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"120\"\u003e\u003cimg src=\"./public/providers/copilot.png\" width=\"52\" alt=\"Copilot\"/\u003e\u003cbr/\u003e\u003cb\u003eCopilot\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"120\"\u003e\u003cimg src=\"./public/providers/continue.png\" width=\"52\" alt=\"Continue\"/\u003e\u003cbr/\u003e\u003cb\u003eContinue\u003c/b\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"120\"\u003e\u003ca href=\"https://github.com/anomalyco/opencode\"\u003e\u003cimg src=\"./public/providers/opencode.svg\" width=\"52\" alt=\"OpenCode\"/\u003e\u003cbr/\u003e\u003cb\u003eOpenCode\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"120\"\u003e\u003ca href=\"https://github.com/Kilo-Org/kilocode\"\u003e\u003cimg src=\"./public/providers/kilocode.svg\" width=\"52\" alt=\"Kilo Code\"/\u003e\u003cbr/\u003e\u003cb\u003eKilo Code\u003c/b\u003e\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"120\"\u003e\u003cimg src=\"./public/providers/droid.svg\" width=\"52\" alt=\"Droid\"/\u003e\u003cbr/\u003e\u003cb\u003eDroid\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"120\"\u003e\u003cimg src=\"./public/providers/openclaw.png\" width=\"52\" alt=\"OpenClaw\"/\u003e\u003cbr/\u003e\u003cb\u003eOpenClaw\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"120\"\u003e\u003cimg src=\"./public/providers/kiro.svg\" width=\"52\" alt=\"Kiro\"/\u003e\u003cbr/\u003e\u003cb\u003eKiro\u003c/b\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"120\"\u003e\u003cimg src=\"./public/providers/command-code.svg\" width=\"52\" alt=\"Command Code\"/\u003e\u003cbr/\u003e\u003cb\u003eCommand\u003c/b\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cb\u003e＋ also works with\u003c/b\u003e · Cline · Antigravity · Windsurf · AMP · Hermes · Qwen CLI · Roo · Continue · \u003cb\u003eany OpenAI-compatible tool\u003c/b\u003e\n\u003c/div\u003e\n\n\u003csub\u003e📖 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)\u003c/sub\u003e\n\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 🌐 177 AI Providers — 50+ Free\n\n\u003c/div\u003e\n\n\u003e The most complete catalog of any open-source router: **177 providers**, **50+ with a free tier**, **11 free forever**.\n\n\u003cdiv align=\"center\"\u003e\n\n### 🆓 Free Forever — $0, no card\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\u003cimg src=\"https://img.shields.io/badge/AgentRouter-FF6600?style=flat-square\" alt=\"AgentRouter\"/\u003e\u003cbr/\u003e\u003csub\u003eGPT-5, Claude, Gemini\u003cbr/\u003e$100 free credits\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\u003cimg src=\"https://img.shields.io/badge/Qoder_AI-6366F1?style=flat-square\" alt=\"Qoder AI\"/\u003e\u003cbr/\u003e\u003csub\u003eKimi-K2, DeepSeek-R1\u003cbr/\u003eUnlimited FREE\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\u003cimg src=\"https://img.shields.io/badge/Pollinations-10B981?style=flat-square\" alt=\"Pollinations\"/\u003e\u003cbr/\u003e\u003csub\u003eGPT-5, Claude, Llama 4\u003cbr/\u003eNo key needed\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\u003cimg src=\"https://img.shields.io/badge/LongCat-FF7A00?style=flat-square\" alt=\"LongCat\"/\u003e\u003cbr/\u003e\u003csub\u003eFlash-Lite\u003cbr/\u003e50M tokens/day 🔥\u003c/sub\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\u003cimg src=\"https://img.shields.io/badge/Cloudflare_AI-F38020?style=flat-square\u0026logo=cloudflare\u0026logoColor=white\" alt=\"Cloudflare AI\"/\u003e\u003cbr/\u003e\u003csub\u003e50+ models\u003cbr/\u003e10K neurons/day\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\u003cimg src=\"https://img.shields.io/badge/Gemini_CLI-8E75B2?style=flat-square\u0026logo=googlegemini\u0026logoColor=white\" alt=\"Gemini CLI\"/\u003e\u003cbr/\u003e\u003csub\u003egemini-3-flash\u003cbr/\u003e180K/mo free\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\u003cimg src=\"https://img.shields.io/badge/NVIDIA_NIM-76B900?style=flat-square\u0026logo=nvidia\u0026logoColor=white\" alt=\"NVIDIA NIM\"/\u003e\u003cbr/\u003e\u003csub\u003e129 models\u003cbr/\u003e~40 RPM free\u003c/sub\u003e\u003c/td\u003e\n    \u003ctd align=\"center\" width=\"150\"\u003e\u003cimg src=\"https://img.shields.io/badge/Cerebras-F15A29?style=flat-square\" alt=\"Cerebras\"/\u003e\u003cbr/\u003e\u003csub\u003eQwen3 235B\u003cbr/\u003e1M tokens/day\u003c/sub\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n📖 Full machine-readable catalog → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)\n\n\u003cbr/\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 🖥️ Where OmniRoute Runs — Anywhere\n\n\u003c/div\u003e\n\n\u003e Same app, your machine, your rules. From a global npm install to **your phone** via Termux.\n\n| Platform                  | Install                                      | Highlights                                                |\n| ------------------------- | -------------------------------------------- | --------------------------------------------------------- |\n| 📦 **npm (global)**       | `npm install -g omniroute`                   | One command, any OS                                       |\n| 🐳 **Docker**             | `docker run … diegosouzapw/omniroute`        | Multi-arch **AMD64 + ARM64**                              |\n| 🖥️ **Desktop (Electron)** | `npm run electron:build`                     | Native window + system tray — **Windows / macOS / Linux** |\n| 💪 **ARM**                | native `arm64`                               | Raspberry Pi, ARM servers, Apple Silicon                  |\n| 📱 **Android (Termux)**   | `pkg install nodejs-lts \u0026\u0026 npx -y omniroute` | Runs **on your phone**, 24/7, no root                     |\n| 📲 **PWA**                | \"Add to Home Screen\"                         | Fullscreen, offline, installable from browser             |\n| 🧩 **OpenCode plugin**    | `@omniroute/opencode-provider`               | Native OpenCode integration                               |\n| 🛠️ **From source**        | `npm install \u0026\u0026 npm run dev`                 | Hack on it, contribute                                    |\n\n\u003csub\u003e📖 [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)\u003c/sub\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 🔒 Private \u0026 Local-First\n\n\u003c/div\u003e\n\n\u003e Your keys, your machine, your data. OmniRoute is a **local proxy** — it never phones home.\n\n- 🏠 **Runs 100% on your hardware** — npm, Docker, desktop, or your phone. No OmniRoute cloud sits in the request path.\n- 🔐 **Credentials encrypted at rest** — API keys \u0026 OAuth tokens sealed with **AES-256-GCM**.\n- 🚫 **Zero telemetry by default** — your prompts go only to the providers _you_ choose, nowhere else.\n- 🛡️ **Hardened gateway** — API-key scoping, IP filtering, rate limits, prompt-injection guard, loopback-only process routes.\n- 📜 **MIT licensed \u0026 fully open-source** — audit every line, self-host forever.\n\n\u003csub\u003e📖 [Authorization](docs/architecture/AUTHZ_GUIDE.md) · [Guardrails](docs/security/GUARDRAILS.md) · [Compliance](docs/security/COMPLIANCE.md)\u003c/sub\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 🔌 Full CLI + A2A \u0026 MCP\n\n\u003c/div\u003e\n\n\u003e 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**.\n\n### ⌨️ A real CLI (not just `start`)\n\n```bash\nomniroute               # serve gateway + dashboard (port 20128)\nomniroute chat          # interactive TUI chat client (slash: /model /combo /skill /memory)\nomniroute setup         # guided first-run wizard\nomniroute doctor        # diagnose providers, ports, native deps\n```\n\n\u003cdiv align=\"center\"\u003e\n\n`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` …\n\n\u003c/div\u003e\n\n### 🤝 Connect an agent — and it controls OmniRoute itself\n\nExpose OmniRoute over **MCP** or **A2A** and any capable agent gets the keys to the whole gateway — routing, providers, combos, cache, compression, memory — autonomously.\n\n| Protocol           | Endpoint                                        | Use it for                                             |\n| ------------------ | ----------------------------------------------- | ------------------------------------------------------ |\n| 🧰 **MCP (stdio)** | `omniroute --mcp`                               | Plug into Claude Desktop, Cursor, any MCP client       |\n| 🌊 **MCP (HTTP)**  | `http://localhost:20128/api/mcp/stream`         | Remote MCP — **87 tools**, 30 scopes, full audit trail |\n| 📡 **MCP (SSE)**   | `http://localhost:20128/api/mcp/sse`            | Streaming MCP transport                                |\n| 🤝 **A2A**         | `http://localhost:20128/.well-known/agent.json` | Agent-to-agent, **JSON-RPC 2.0** + SSE, 6 skills       |\n\n```bash\n# Give Claude Code the full OmniRoute toolset over MCP:\nclaude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream\n```\n\n\u003csub\u003e📖 [MCP Server](docs/frameworks/MCP-SERVER.md) · [A2A Server](docs/frameworks/A2A-SERVER.md) · [Agent Protocols](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)\u003c/sub\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 🗜️ Save 15–95% Tokens — Automatically\n\n\u003c/div\u003e\n\n\u003e **Why use many token when few token do trick?** Every request passes through OmniRoute's compression pipeline **transparently** — no client changes. It stacks ideas from [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 51K+), and [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).\n\n| Mode                           | Savings    | Best for                    |\n| ------------------------------ | ---------- | --------------------------- |\n| 🪶 **Lite**                    | ~15%       | Always-on safe default      |\n| 🪨 **Standard (Caveman)**      | ~30%       | Daily coding                |\n| ⚡ **Aggressive**              | ~50%       | Long tool-heavy sessions    |\n| 🔥 **Ultra**                   | ~75%       | Maximum savings             |\n| 🧰 **RTK**                     | 60–90%     | Shell/test/build/git output |\n| 🔗 **Stacked (RTK → Caveman)** | **78–95%** | Mixed prompts + tool logs   |\n\n**Real example — Standard mode:**\n\n\u003e **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.\"_\n\u003e\n\u003e **After (19 tokens):** _\"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo.\"_\n\u003e\n\u003e **Same answer. 72% fewer tokens. Zero accuracy loss.** ✅\n\n**PT-BR example — [Troglodita](https://github.com/leninejunior/troglodita) mode:**\n\n\u003e **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.\"_\n\u003e\n\u003e **Depois (12 tokens):** _\"Re-render: ref nova cada ciclo (objeto inline recriado). Usar `useMemo`.\"_\n\u003e\n\u003e **Mesma resposta. ~70% menos tokens. Precisão técnica intacta.** ✅\n\n\u003cbr/\u003e\n\n### 📖 How it works — pipeline, architecture \u0026 savings math\n\n```\nClient (10,000 tok) ──▶ OmniRoute Compression (7 options) ──▶ Provider (~1,080 tok, up to 95% saved)\n```\n\nDefault stacked combo runs `RTK → Caveman`. When both act on the same tool/context payload, savings compound:\n\n```txt\ncombined = 1 − (1 − RTK) × (1 − Caveman_input)\naverage  = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%\nrange    = 78.4 – 94.6%\n```\n\nCode blocks, URLs, JSON and structured data are **always protected** by the preservation engine. Auto-trigger compression by token threshold, or assign a compression pipeline per routing combo.\n\n📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# ⚡ Quick Start\n\n\u003c/div\u003e\n\n**1) Install \u0026 run**\n\n```bash\nnpm install -g omniroute\nomniroute\n```\n\nDashboard at `http://localhost:20128` · API at `http://localhost:20128/v1`.\n\n**2) Connect a FREE provider (no signup)**\n\nDashboard → **Providers** → connect **Kiro AI** (free Claude unlimited) or **OpenCode Free** (no auth) → done.\n\n**3) Point your coding tool**\n\n```txt\nBase URL: http://localhost:20128/v1\nAPI Key:  [copy from Dashboard → Endpoints]\nModel:    auto            (zero-config smart routing — or any provider/model)\n```\n\n**4) Verify it's working**\n\n```bash\ncurl http://localhost:20128/v1/models -H \"Authorization: Bearer YOUR_KEY\"\n```\n\nYou should see your connected models listed. 🎉 That's it — start coding, and OmniRoute auto-routes \u0026 falls back for you.\n\nIf your client cannot send custom headers, OmniRoute also exposes tokenized compatibility aliases:\n\n```txt\nOpenAI catalog:   http://localhost:20128/vscode/YOUR_KEY/\nOpenAI models:    http://localhost:20128/vscode/YOUR_KEY/models\nOpenAI chat:      http://localhost:20128/vscode/YOUR_KEY/chat/completions\nOpenAI responses: http://localhost:20128/vscode/YOUR_KEY/responses\nOllama chat:      http://localhost:20128/vscode/YOUR_KEY/api/chat\nOllama tags:      http://localhost:20128/vscode/YOUR_KEY/api/tags\n```\n\nUse these only for clients that cannot attach `Authorization: Bearer ...`. Header auth remains the preferred mode.\n\n\u003cbr/\u003e\n\n## 📦 More install methods — Docker, source, pnpm, Arch\n\n**🐳 Docker**\n\n```bash\ndocker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \\\n  -p 20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest\n```\n\n**🛠️ From source**\n\n```bash\ncp .env.example .env \u0026\u0026 npm install\nPORT=20128 npm run dev\n```\n\n**📦 pnpm**\n\n```bash\npnpm install -g omniroute \u0026\u0026 pnpm approve-builds -g \u0026\u0026 omniroute\n```\n\n**🐧 Arch Linux (AUR)**\n\n```bash\nyay -S omniroute-bin \u0026\u0026 systemctl --user enable --now omniroute.service\n```\n\n**🔧 Nix (Flake)**\n\n```bash\n# Using Nix flakes\nnix develop\nnpm run dev\n\n# Or using devbox\ndevbox run npm run dev\n```\n\n📖 [Docker Guide](docs/guides/DOCKER_GUIDE.md) — Compose profiles, Caddy HTTPS, Cloudflare tunnels.\n\n**🦭 Podman**\n\n```bash\n# 1. Build the image\npodman build --target runner-base -t omniroute:base .\n\n# 2. Fix data directory permissions for rootless Podman\nmkdir -p data \u0026\u0026 podman unshare chown 1000:1000 ./data\n\n# 3. Set runtime in .env, then run (see contrib/podman/ for Quadlet)\necho \"CONTAINER_HOST=podman\" \u003e\u003e .env\npodman compose --profile base up -d\n```\n\n📖 [Podman Guide](contrib/podman/README.md) — Quadlet setup, podman-compose, Quadlet.\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 🎬 OmniRoute in Action\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"280\"\u003e\n      \u003ca href=\"https://www.youtube.com/watch?v=Rxdc36yUyOQ\"\u003e\u003cimg src=\"https://img.youtube.com/vi/Rxdc36yUyOQ/maxresdefault.jpg\" alt=\"Guia em Português\" width=\"260\"/\u003e\u003c/a\u003e\u003cbr/\u003e\n      \u003cb\u003e🇧🇷 Português\u003c/b\u003e\u003cbr/\u003e\u003csub\u003eGuia completo\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"280\"\u003e\n      \u003ca href=\"https://www.youtube.com/watch?v=CMzyOiUyEVc\"\u003e\u003cimg src=\"https://img.youtube.com/vi/CMzyOiUyEVc/maxresdefault.jpg\" alt=\"English Guide\" width=\"260\"/\u003e\u003c/a\u003e\u003cbr/\u003e\n      \u003cb\u003e🇺🇸 English\u003c/b\u003e\u003cbr/\u003e\u003csub\u003eComplete walkthrough\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"280\"\u003e\n      \u003ca href=\"https://www.youtube.com/watch?v=il_5Ii6v4-Y\"\u003e\u003cimg src=\"https://img.youtube.com/vi/il_5Ii6v4-Y/maxresdefault.jpg\" alt=\"Руководство\" width=\"260\"/\u003e\u003c/a\u003e\u003cbr/\u003e\n      \u003cb\u003e🇷🇺 Русский\u003c/b\u003e\u003cbr/\u003e\u003csub\u003eПолное руководство\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003e 🎬 **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.\n\n\u003cbr/\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 📚 Explore More\n\n\u003c/div\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e💰 Pricing at a glance \u0026 the $0 Free Stack (11 providers)\u003c/b\u003e\u003c/summary\u003e\n\n\u003cbr/\u003e\n\n| Tier                        | Example                                  | Cost       |\n| --------------------------- | ---------------------------------------- | ---------- |\n| 💳 **Subscription**         | Claude Code Pro / Codex / Copilot        | $10–200/mo |\n| 🔑 **API Key (free tiers)** | NVIDIA NIM, Cerebras, Groq               | **FREE**   |\n| 💰 **Cheap**                | GLM-5 $0.5/1M · MiniMax M2.5 $0.3/1M     | pennies    |\n| 🆓 **Free Forever**         | Kiro, Qoder, Qwen, Pollinations, LongCat | **$0**     |\n\n**The $0 Free Stack — combine into one unbreakable combo:**\n\n| Provider          | Prefix      | Free models                                     | Quota             |\n| ----------------- | ----------- | ----------------------------------------------- | ----------------- |\n| **Kiro**          | `kr/`       | Claude Sonnet 4.5, Haiku 4.5, Opus 4.6          | 50 credits/mo     |\n| **Qoder**         | `if/`       | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 | ♾️ Unlimited      |\n| **Qwen**          | `qw/`       | qwen3-coder-plus/flash/next                     | ♾️ Unlimited      |\n| **Pollinations**  | `pol/`      | GPT-5, Claude, Gemini, DeepSeek, Llama 4        | No key needed     |\n| **LongCat**       | `lc/`       | LongCat-Flash-Lite                              | 50M tokens/day 🔥 |\n| **Cloudflare AI** | `cf/`       | 50+ models                                      | 10K neurons/day   |\n| **NVIDIA NIM**    | `nvidia/`   | 129 models                                      | ~40 RPM           |\n| **Cerebras**      | `cerebras/` | Qwen3 235B, GPT-OSS 120B                        | 1M tok/day        |\n\n\u003e 💡 The dashboard \"cost\" is a **savings tracker**, not a bill — OmniRoute never charges you. A \"$290 total cost\" using free models means **$290 saved**.\n\n📖 Complete free directory → [`docs/reference/FREE_TIERS.md`](docs/reference/FREE_TIERS.md) — 25+ providers, quotas, base URLs.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🎯 Use Cases — ready-made combo playbooks\u003c/b\u003e\u003c/summary\u003e\n\n\u003cbr/\u003e\n\n**$0 forever:**\n\n```\n1. kr/claude-sonnet-4.5   (Kiro — unlimited)\n2. if/kimi-k2-thinking    (Qoder — unlimited)\n3. pol/gpt-5              (Pollinations — no key)\n4. lc/longcat-flash-lite  (50M tok/day backup)\nCompression: aggressive (~50%) → double your free quota · Cost: $0/mo\n```\n\n**24/7 no interruptions:** chain 2 subscriptions → cheap → free for 5 layers of fallback.\n**Blocked region:** free providers + global/per-provider proxy → access AI from any country.\n**Max savings:** subscription + cheap backup + `ultra` compression (~75%) → ~$150–300/mo saved for heavy users.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🌍 Bypass geo-blocks — 3-level proxy + stealth\u003c/b\u003e\u003c/summary\u003e\n\n\u003cbr/\u003e\n\n🇷🇺 🇨🇳 🇮🇷 🇨🇺 🇹🇷 In a blocked region? OmniRoute's **3-level proxy** (Global / Per-Provider / Per-Connection) proxies API requests, OAuth flows, connection tests, token refresh \u0026 model sync.\n\n- **Protocols:** HTTP/HTTPS, SOCKS5, authenticated proxies\n- **🆓 1proxy marketplace** — hundreds of free validated proxies, quality scores, auto-rotation\n- **Anti-detection** — TLS fingerprint spoofing (`wreq-js`), CLI fingerprint matching, proxy IP preservation\n\n📖 [`docs/ops/PROXY_GUIDE.md`](docs/ops/PROXY_GUIDE.md)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e✨ Full feature list — 30+ capabilities (memory, evals, observability)\u003c/b\u003e\u003c/summary\u003e\n\n\u003cbr/\u003e\n\n**Routing:** 15 strategies · task-aware smart routing · thinking budget controls · wildcard routing · system prompt injection.\n**Compatibility:** OpenAI ↔ Claude ↔ Gemini ↔ Responses API · auto OAuth refresh (PKCE, 8 providers) · multi-account round-robin · Batch + Files API · live OpenAPI 3.0.\n**Protocols:** MCP (87 tools, 3 transports, 30 scopes) · A2A (JSON-RPC 2.0, SSE, 6 skills) · ACP · cloud agents (Codex, Devin, Jules).\n**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).\n**Embedded services:** one-click install \u0026 lifecycle management of local sidecar services (CLIProxy, NineRouter).\n**Quality \u0026 Ops:** built-in **Evals** (golden-set: exact/contains/regex/custom) · guardrails (PII, injection, vision) · health dashboard · p50/p95/p99 telemetry · webhooks · compliance audit.\n**AI Agent Skills:** drop-in markdown manifests — point any agent at a `skills/*/SKILL.md` manifest. 43 skills available.\n\n📖 [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)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e📖 Setup, env vars \u0026 FAQ\u003c/b\u003e\u003c/summary\u003e\n\n\u003cbr/\u003e\n\n| Env var           | Default        | Purpose                          |\n| ----------------- | -------------- | -------------------------------- |\n| `PORT`            | `20128`        | API + dashboard port             |\n| `REQUIRE_API_KEY` | `false`        | Require API key for all requests |\n| `DATA_DIR`        | `~/.omniroute` | Database \u0026 config storage        |\n\n**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.\n**Are FREE providers really unlimited?** Yes — Kiro, Qoder, Pollinations, LongCat, Cloudflare. No catch.\n**Will compression hurt quality?** No — it only compresses the **input**; code, URLs, JSON are always protected.\n**Does it work where AI is blocked?** Yes — 3-level proxy + 1proxy marketplace reach all 177 providers.\n\n📖 [User Guide](docs/guides/USER_GUIDE.md) · [API Reference](docs/reference/API_REFERENCE.md) · [Environment Config](docs/reference/ENVIRONMENT.md)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e🐛 Troubleshooting\u003c/b\u003e\u003c/summary\u003e\n\n\u003cbr/\u003e\n\n| Problem                                   | Quick fix                                                     |\n| ----------------------------------------- | ------------------------------------------------------------- |\n| \"Language model did not provide messages\" | Provider quota exhausted → use a combo fallback               |\n| Rate limiting (429)                       | Add fallback: `cc/claude → glm/glm-4.7 → if/kimi-k2-thinking` |\n| OAuth token expired                       | Auto-refreshed; if stuck, delete + re-auth in Providers       |\n| `unsupported_country_region_territory`    | Configure proxy in Settings → Proxy                           |\n| Docker SQLite locks                       | Use `--stop-timeout 40` for clean WAL checkpoint              |\n| Node runtime errors                       | Use Node `\u003e=22.0.0 \u003c23` or `\u003e=24.0.0 \u003c27`                     |\n\n🐛 **Reporting a bug?** Run `npm run system-info` and attach `system-info.txt`. 📖 [`docs/guides/TROUBLESHOOTING.md`](docs/guides/TROUBLESHOOTING.md)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e📸 Dashboard screenshots\u003c/b\u003e\u003c/summary\u003e\n\n\u003cbr/\u003e\n\n| Page       | Screenshot                                        | Page       | Screenshot                                    |\n| ---------- | ------------------------------------------------- | ---------- | --------------------------------------------- |\n| Providers  | ![Providers](docs/screenshots/01-providers.png)   | Combos     | ![Combos](docs/screenshots/02-combos.png)     |\n| Analytics  | ![Analytics](docs/screenshots/03-analytics.png)   | Health     | ![Health](docs/screenshots/04-health.png)     |\n| Translator | ![Translator](docs/screenshots/05-translator.png) | Settings   | ![Settings](docs/screenshots/06-settings.png) |\n| CLI Tools  | ![CLI Tools](docs/screenshots/07-cli-tools.png)   | Usage Logs | ![Usage](docs/screenshots/08-usage.png)       |\n\n\u003c/details\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 📧 Support \u0026 Community\n\n\u003e 💬 **Chat with the community** — Discord, Telegram \u0026 WhatsApp (🌍 / 🇧🇷) links are at the [top of this README](#-join-the-community).\n\n- 🌍 **Website**: [omniroute.online](https://omniroute.online)\n- 🐙 **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)\n- 🐛 **Issues**: [report a bug](https://github.com/diegosouzapw/OmniRoute/issues) (attach `npm run system-info` output)\n- 🤝 **Contributing**: see [CONTRIBUTING.md](CONTRIBUTING.md) or pick a `good first issue`\n\n\u003c/div\u003e\n\n---\n\n\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n\n## 🛠️ Tech Stack\n\n\u003c/div\u003e\n\n- **Runtime**: Node.js 22.x or 24.x LTS (24 LTS recommended) — `\u003e=22.0.0 \u003c23 || \u003e=24.0.0 \u003c27`\n- **Language**: TypeScript 6.0 — **100% TypeScript** across `src/` and `open-sse/` (zero `any` in core modules since v2.0)\n- **Framework**: Next.js 16 + React 19 + Tailwind CSS 4\n- **Database**: better-sqlite3 (SQLite) + LowDB (JSON legacy) — domain state, proxy logs, MCP audit, routing decisions, memory, skills\n- **Schemas**: Zod (MCP tool I/O validation, API contracts)\n- **Protocols**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)\n- **Streaming**: Server-Sent Events (SSE) + WebSocket bridge (`/v1/ws`)\n- **Auth**: OAuth 2.0 (PKCE) + JWT + API Keys + MCP Scoped Authorization\n- **Testing**: Node.js test runner + Vitest (**4,690+ test cases** across 517 files — unit, integration, E2E, security, ecosystem)\n- **Platforms**: Desktop (Electron), Android (Termux), PWA (any browser)\n- **CI/CD**: GitHub Actions (auto npm publish + Docker Hub on release)\n- **Website**: [omniroute.online](https://omniroute.online)\n- **Package**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)\n- **Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)\n- **Resilience**: Circuit breaker, exponential backoff, anti-thundering herd, TLS spoofing, auto-combo self-healing\n\n\u003cdiv align=\"center\"\u003e\n\n\u003cbr/\u003e\n\n## 📖 Documentation\n\n\u003c/div\u003e\n\n### 📘 Getting Started\n\n| Document                                       | Description                                                                   |\n| ---------------------------------------------- | ----------------------------------------------------------------------------- |\n| [User Guide](docs/guides/USER_GUIDE.md)        | Providers, combos, CLI integration, deployment                                |\n| [Setup Guide](docs/guides/SETUP_GUIDE.md)      | Full install methods, CLI tool configs, protocol setup, timeout tuning        |\n| [CLI Tools Guide](docs/reference/CLI-TOOLS.md) | Per-tool setup for Claude Code, Codex, Cursor, Cline, OpenClaw, Kilo, Copilot |\n| [Quick Start](README.md#-quick-start)          | 3-step install → connect → configure                                          |\n\n### 🔧 Operations \u0026 Deployment\n\n| Document                                                 | Description                                                    |\n| -------------------------------------------------------- | -------------------------------------------------------------- |\n| [Docker Guide](docs/guides/DOCKER_GUIDE.md)              | Docker run, Compose profiles, Caddy HTTPS, tunnels, image tags |\n| [Podman Guide](contrib/podman/README.md)                 | Quadlet systemd integration, podman-compose, SELinux           |\n| [VM Deployment](docs/ops/VM_DEPLOYMENT_GUIDE.md)         | Complete guide: VM + nginx + Cloudflare setup                  |\n| [Fly.io Deployment](docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md) | Deploy to Fly.io with persistent storage                       |\n| [Termux Guide](docs/guides/TERMUX_GUIDE.md)              | Run OmniRoute on Android via Termux                            |\n| [PWA Guide](docs/guides/PWA_GUIDE.md)                    | Progressive Web App install, caching, architecture             |\n| [Uninstall Guide](docs/guides/UNINSTALL.md)              | Clean removal for all install methods                          |\n| [Environment Config](docs/reference/ENVIRONMENT.md)      | Complete `.env` variables and references                       |\n\n### 🧠 Features \u0026 Architecture\n\n| Document                                                                     | Description                                                                   |\n| ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |\n| [Architecture](docs/architecture/ARCHITECTURE.md)                            | System architecture, data flow, and internals                                 |\n| [Compression Guide](docs/compression/COMPRESSION_GUIDE.md)                   | 7-option pipeline: off / lite / standard / aggressive / ultra / RTK / stacked |\n| [RTK Compression](docs/compression/RTK_COMPRESSION.md)                       | Command-output compression, filters, trust, verify, raw-output recovery       |\n| [Compression Engines](docs/compression/COMPRESSION_ENGINES.md)               | Caveman, RTK, stacked pipelines, dashboard/API/MCP surfaces                   |\n| [Compression Rules Format](docs/compression/COMPRESSION_RULES_FORMAT.md)     | JSON rule-pack schemas for Caveman and RTK filters                            |\n| [Compression Language Packs](docs/compression/COMPRESSION_LANGUAGE_PACKS.md) | Language detection and Caveman rule-pack authoring                            |\n| [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md)                    | Circuit breakers, cooldowns, queue, anti-thundering herd, TLS spoofing        |\n| [Auto-Combo Engine](docs/routing/AUTO-COMBO.md)                              | 9-factor scoring, mode packs, self-healing                                    |\n| [Proxy Guide](docs/ops/PROXY_GUIDE.md)                                       | 3-level proxy system, 1proxy marketplace, registry CRUD                       |\n| [Free Tiers](docs/reference/FREE_TIERS.md)                                   | 25+ free API providers consolidated directory                                 |\n| [Features Gallery](docs/guides/FEATURES.md)                                  | Visual dashboard tour with screenshots                                        |\n| [Codebase Documentation](docs/architecture/CODEBASE_DOCUMENTATION.md)        | Beginner-friendly codebase walkthrough                                        |\n\n### 🤖 Protocols \u0026 APIs\n\n| Document                                          | Description                                         |\n| ------------------------------------------------- | --------------------------------------------------- |\n| [API Reference](docs/reference/API_REFERENCE.md)  | All endpoints with examples                         |\n| [OpenAPI Spec](docs/reference/openapi.yaml)       | OpenAPI 3.0 specification                           |\n| [MCP Server](open-sse/mcp-server/README.md)       | 87 MCP tools, IDE configs, Python/TS/Go clients     |\n| [MCP Server Guide](docs/frameworks/MCP-SERVER.md) | MCP installation, transports, and tool reference    |\n| [A2A Server](src/lib/a2a/README.md)               | JSON-RPC 2.0 protocol, skills, streaming, task mgmt |\n| [A2A Server Guide](docs/frameworks/A2A-SERVER.md) | A2A agent card, tasks, skills, and streaming        |\n\n### 📋 Project \u0026 Quality\n\n| Document                                           | Description                                     |\n| -------------------------------------------------- | ----------------------------------------------- |\n| [Contributing](CONTRIBUTING.md)                    | Development setup and guidelines                |\n| [Changelog](CHANGELOG.md)                          | Full per-version release history                |\n| [Security Policy](SECURITY.md)                     | Vulnerability reporting and security practices  |\n| [i18n Guide](docs/guides/I18N.md)                  | 40+ language support, translation workflow, RTL |\n| [Release Checklist](docs/ops/RELEASE_CHECKLIST.md) | Pre-release validation steps                    |\n| [Coverage Plan](docs/ops/COVERAGE_PLAN.md)         | Test coverage strategy and 4,690+ test suite    |\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# ⭐ Top Contributors\n\n\u003e 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.**\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\" width=\"160\"\u003e\n      \u003ca href=\"https://github.com/oyi77\"\u003e\n        \u003cimg src=\"https://github.com/oyi77.png\" width=\"80\" style=\"border-radius:50%\" alt=\"oyi77\"/\u003e\u003cbr/\u003e\n        \u003cb\u003eoyi77\u003c/b\u003e\n      \u003c/a\u003e\u003cbr/\u003e\n      \u003csub\u003e🥇 190 commits • +72K lines\u003c/sub\u003e\u003cbr/\u003e\n      \u003csub\u003eAnalytics engine, SQL aggregations,\u003cbr/\u003eproxy marketplace, test coverage\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"160\"\u003e\n      \u003ca href=\"https://github.com/christopher-s\"\u003e\n        \u003cimg src=\"https://github.com/christopher-s.png\" width=\"80\" style=\"border-radius:50%\" alt=\"Chris Staley\"/\u003e\u003cbr/\u003e\n        \u003cb\u003eChris Staley\u003c/b\u003e\n      \u003c/a\u003e\u003cbr/\u003e\n      \u003csub\u003e🥈 72 commits • +5.7K lines\u003c/sub\u003e\u003cbr/\u003e\n      \u003csub\u003eSSE stream hardening, Responses API,\u003cbr/\u003eGemini pagination, test regression fixes\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"160\"\u003e\n      \u003ca href=\"https://github.com/zenobit\"\u003e\n        \u003cimg src=\"https://github.com/zenobit.png\" width=\"80\" style=\"border-radius:50%\" alt=\"zenobit\"/\u003e\u003cbr/\u003e\n        \u003cb\u003ezenobit\u003c/b\u003e\n      \u003c/a\u003e\u003cbr/\u003e\n      \u003csub\u003e🥉 62 commits • +24K lines\u003c/sub\u003e\u003cbr/\u003e\n      \u003csub\u003eCI/CD pipeline, i18n for 33 languages,\u003cbr/\u003eVoid Linux package, platform fixes\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"160\"\u003e\n      \u003ca href=\"https://github.com/rdself\"\u003e\n        \u003cimg src=\"https://github.com/rdself.png\" width=\"80\" style=\"border-radius:50%\" alt=\"R.D. \u0026 Randi\"/\u003e\u003cbr/\u003e\n        \u003cb\u003eR.D. \u0026 Randi\u003c/b\u003e\n      \u003c/a\u003e\u003cbr/\u003e\n      \u003csub\u003e🏅 107 commits • +28K lines\u003c/sub\u003e\u003cbr/\u003e\n      \u003csub\u003eEndpoints page, tunnel integrations,\u003cbr/\u003eDocker workflows, A2A status, compression UI\u003c/sub\u003e\n    \u003c/td\u003e\n    \u003ctd align=\"center\" width=\"160\"\u003e\n      \u003ca href=\"https://github.com/benzntech\"\u003e\n        \u003cimg src=\"https://github.com/benzntech.png\" width=\"80\" style=\"border-radius:50%\" alt=\"benzntech\"/\u003e\u003cbr/\u003e\n        \u003cb\u003ebenzntech\u003c/b\u003e\n      \u003c/a\u003e\u003cbr/\u003e\n      \u003csub\u003e🏅 20 commits • +7.5K lines\u003c/sub\u003e\u003cbr/\u003e\n      \u003csub\u003eElectron desktop app, auto-updater,\u003cbr/\u003erelease build workflows, cross-platform CI\u003c/sub\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003e 🙏 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.\n\n\u003c/div\u003e\n\n---\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n## 👥 Contributors\n\n\u003c/div\u003e\n\n[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute\u0026max=100\u0026columns=20\u0026anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)\n\n### How to Contribute\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.\n\n### Releasing a New Version\n\n```bash\n# Create a release — npm publish happens automatically\ngh release create v3.8.2 --title \"v3.8.2\" --generate-notes\n```\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n## 📊 Stars\n\n\u003ca href=\"https://www.star-history.com/?repos=diegosouzapw%2Fomniroute\u0026type=date\u0026legend=top-left\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/chart?repos=diegosouzapw/omniroute\u0026type=date\u0026theme=dark\u0026legend=top-left\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/chart?repos=diegosouzapw/omniroute\u0026type=date\u0026legend=top-left\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/chart?repos=diegosouzapw/omniroute\u0026type=date\u0026legend=top-left\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n## 🌍 StarMapper\n\n\u003ca href=\"https://starmapper.bruniaux.com/diegosouzapw/omniroute\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://starmapper.bruniaux.com/api/map-image/diegosouzapw/omniroute?theme=dark\" /\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://starmapper.bruniaux.com/api/map-image/diegosouzapw/omniroute?theme=light\" /\u003e\n    \u003cimg alt=\"StarMapper\" src=\"https://starmapper.bruniaux.com/api/map-image/diegosouzapw/omniroute\" /\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr/\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n## 🙏 Acknowledgments\n\n\u003c/div\u003e\n\nSpecial thanks to **[9router](https://github.com/decolua/9router)** by **[decolua](https://github.com/decolua)** — the original project that inspired this fork. OmniRoute builds upon that incredible foundation with additional features, multi-modal APIs, and a full TypeScript rewrite.\n\nSpecial thanks to **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** by **[router-for-me](https://github.com/router-for-me)** — the original Go implementation that inspired this JavaScript port.\n\nSpecial thanks to **[Caveman](https://github.com/JuliusBrussee/caveman)** by **[JuliusBrussee](https://github.com/JuliusBrussee)** (⭐ 51K+) — the viral \"why use many token when few token do trick\" project whose caveman-speak compression philosophy inspired OmniRoute's standard compression mode and 30+ filler/condensation regex rules.\n\nSpecial thanks to **[RTK - Rust Token Killer](https://github.com/rtk-ai/rtk)** by **[RTK AI](https://github.com/rtk-ai)** — the high-performance command-output compression project whose terminal, build, test, git, and tool-output filtering model inspired OmniRoute's RTK engine, JSON filter DSL, raw-output recovery, and stacked RTK → Caveman compression pipeline.\n\nSpecial thanks to **[Troglodita](https://github.com/leninejunior/troglodita)** by **[Lenine Júnior](https://github.com/leninejunior)** — the PT-BR token compression project (\"por que gastar muitos tokens quando poucos resolve?\") whose Portuguese-native rules power OmniRoute's pt-BR language pack: pleonasm reduction, filler removal tuned for Brazilian Portuguese grammar, and technical abbreviations for the dev BR community.\n\n## ❤️ Support\n\nOmniRoute is free and open source, built and maintained in the open. If it saves you time or money, consider supporting development:\n\n- ⭐ **Star the repo** — it genuinely helps visibility\n- 💖 **[GitHub Sponsors](https://github.com/sponsors/diegosouzapw)** — fund ongoing maintenance and new providers\n- 🐛 **Report bugs and share feedback** in [Discussions](https://github.com/diegosouzapw/OmniRoute/discussions)\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**[⬆ Back to top](#-omniroute)** · Built with ❤️ for the open-source AI community.\n\n\u003csub\u003eOmniRoute v3.8.24 · Node ≥22.0.0 · MIT License · \u003ca href=\"https://omniroute.online\"\u003eomniroute.online\u003c/a\u003e\u003c/sub\u003e\n\n\u003c/div\u003e\n\u003c!-- GitHub Discussions enabled for community Q\u0026A --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiegosouzapw%2Fomniroute","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiegosouzapw%2Fomniroute","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiegosouzapw%2Fomniroute/lists"}