## 💰 ~1,62 mld. tokens / maand via gratis tiers van derde partijen
> **Gebruik je eigen provideraccounts.** Dit is een geschatte som over afzonderlijk in aanmerking komende gratis tiers van derde partijen, geen tokentoekenning van OmniRoute. Meld je aan, verkrijg inloggegevens waar vereist, en verbind de providers die je kunt gebruiken; elke provider bepaalt zijn eigen limieten, beschikbaarheid en voorwaarden.
>
> Gratis tiers handmatig stapelen is een crime — tientallen SDK's, tientallen snelheidslimieten en geen idee hoeveel je echt hebt. OmniRoute catalogiseert **467 gratis-tier-vermeldingen verdeeld over 34 terugkerende pool-sleutels** en berekent de token-headline op basis van de **17 pools met een gepubliceerd positief maandbudget plus vijf model-specifieke Groq-limieten**, gededupliceerd per gedeelde pool. Quota's die pas opengaan na een regionale identiteitscontrole (momenteel: ModelScope) worden apart getoond, +~6M achter regionale identiteitsverificatie, en worden nooit meegeteld in de headline. Het resultaat blijft zichtbaar op het dashboard (`/dashboard/free-tiers`).
> Geanimeerde samenvatting van de live pagina `/dashboard/free-tiers`. Volledige methodologie (pool-dedupe, krediettiers, providervoorwaarden): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Deze cijfers worden elke twee weken opnieuw gecontroleerd aan de hand van de live catalogus en **bewegen beide kanten op** — een provider beëindigt een gratis tier en het getal daalt; een nieuwe komt erbij en het stijgt. We publiceren wat de catalogus daadwerkelijk berekent, nooit een naar boven afgerond beste geval.
⭐ Geef de repo een ster als OMNIROUTE je heeft geholpen geld te besparen en je werk makkelijker te maken.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Sluit je aan bij de community
**👋 Volg de maintainer — krijg als eerste nieuwe providers, releases en tips:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](https://omniroute.online)
**Vragen, providertips, roadmap en support → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 De Gateway Blijft Groeien
## 🆓 Installeer, verbind een provider en routeer vervolgens via één endpoint
```bash
# After connecting a provider, copy your OmniRoute key from Dashboard → Endpoints:
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
`auto` heeft een geschikte route nodig. Een verse installatie kan geen geschikte keyless doelen hebben, en een keyless provider kan externe clients weigeren. Providers met `tos: avoid`, waaronder Kiro, zijn standaard uitgesloten van automatische routering; een account verbinden overschrijft die instelling niet. Zie de [Gratis Tiers-gids](docs/getting-started/FREE-TIERS-GUIDE.md) voordat je een provider kiest.📦 Kopieer-en-plak quickstart-scripts voor **Python, Node.js, PHP en cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 De Belofte
# 🤔 Waarom OmniRoute?
## 🤝 Ondersteund door onze Open Source Vrienden
> **Wil je meedoen als Open Source Vriend?** Dit zijn de bedrijven die open source ondersteunen en OmniRoute draaiende houden — en we vermelden publiekelijk waar elke token die ze ons geven naartoe gaat. Neem contact op: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Dank aan Kimi (Moonshot AI), onze oprichtende Open Source Vriend, voor het ondersteunen van dit project! Kimi is het AI-lab achter de open-weight K2 en K3 modelfamilies — Kimi K3 levert een 1M-token contextvenster, native visie en grensverleggende codering tegen een fractie van de prijzen van gesloten modellen, en werkt direct met Claude Code, Codex en elke coderingstool die OmniRoute ondersteunt.
Wat Kimi's ondersteuning mogelijk maakt: Kimi's API-credits voeden OmniRoute's AI-gevalideerde release-pijplijn — de samenvoegvalidatie aangedreven door Kimi K3-fase die elke pull request beoordeelt voordat deze wordt verzonden — plus dagelijkse functieontwikkeling. Eersteklas Kimi-ondersteuning wordt op beide manieren geleverd: de directe Kimi API (kimi-k3) en het Kimi Code coderingsplan (OAuth en API-sleutel). OmniRoute is ook het eerste Braziliaanse open-source project in Kimi's ondersteuningsprogramma. Ontvang een Kimi API-sleutel met 15% extra credits →
Cheaper Inference cheaperinference.com
Dank aan Cheaper Inference, een OmniRoute Open Source Vriend, voor het ondersteunen van dit project! Cheaper Inference is een op kosten gerangschikte gateway die 42 grensverleggende modellen — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok en MiniMax — doorverkoopt via één OpenAI-compatibel eindpunt, waarbij elke aanvraag naar de goedkoopste in aanmerking komende provider wordt gerouteerd zonder ooit meer te rekenen dan de catalogusprijs van de modelmaker.
Eersteklas ondersteuning in OmniRoute: Chat Completions, het native /v1/responses eindpunt, visie, tool calling en 3 afbeeldingsmodellen (grok-imagine, nano-banana-pro, nano-banana-2, bereikbaar als cheaperinference/<model>). Ontvang een API-sleutel →
Links getagd met aff=omniroute zijn partnerlinks. Ze financieren het project zonder extra kosten voor jou. 🎟️ Affiliates Promo — gratis aanmeldingscoupons van providers die we niet sponsoren (klik om uit te vouwen)Deze sectie is alleen voor verwijzings-/couponcodes. Gesponsorde partnerschappen staan hierboven in 🤝 Ondersteund door onze Open Source Vrienden. OmniRoute heeft geen sponsoring of partnerschap met de hier vermelde providers — dit zijn openbare coupons die iedereen kan gebruiken.
AgentRouter agentrouter.org
AgentRouter — affiliate aanmelding · $100 gratis credits bij aanmelding (gratis server, verwacht hogere latentie — het beste voor testen, niet voor productie). Eersteklas ondersteuning in OmniRoute sinds v3.8.50: Chat Completions, het Anthropic-compatibele wire format en het OpenAI-compatibele pad. Beschikbare modellen zijn onder andere claude-opus-4-8, claude-opus-5, gpt-5.6-sol en meer. Pak je $100 →
⚠️ Affiliate link — OmniRoute heeft geen sponsoring of partnerschap met deze provider.
Ken je een andere provider met een royale gratis aanmeldingscoupon die OmniRoute-gebruikers ten goede komt? Open een issue en we voegen het hier toe.
## 🎯 Combo's — Het vlaggenschip
> Een **combo** is een keten van modellen waarlangs OmniRoute **automatisch** routeert. Als het quotum opraakt, een provider uitvalt of de kosten plotseling stijgen, kan de combo doorgaan naar het volgende geschikte, correct werkende model. 🛡️
### ⚡ Geen configuratie — gebruik gewoon `auto`
Je hoeft geen combo te maken. Stel je model in op `auto` (of een variant) en OmniRoute bouwt een virtuele combo op basis van je gekoppelde providers, die live worden beoordeeld:
Model-ID
Waarvoor het optimaliseert
auto
🎯 Gebalanceerde standaardinstelling (LKGP — blijft bij je laatst correct werkende provider)
auto/coding
🧑💻 Weging met kwaliteit voorop voor het genereren van code
auto/fast
⚡ Laagste latentie eerst
auto/cheap
💰 Laagste kosten per token eerst
auto/subscription
🎟️ Alleen het abonnementsquotum waarvoor je al betaalt — stopt bij een fout, nooit een factureerbare fallback (handleiding)
auto/thrifty
🪜 Eerst het abonnementsquotum, daarna trede voor trede naar de goedkoopste betaalde opties — terug naar het abonnement nadat het is gereset (handleiding)
auto/offline
🔋 Meeste ruimte binnen quotum/snelheidslimiet eerst
auto/smart
🔭 Kwaliteit voorop + 10% verkenning om betere modellen te ontdekken
auto/lkgp
📌 Blijft expliciet bij de laatst correct werkende provider
auto/chaos
🧪 Parallelle fan-out naar een panel van modellen (één per provider, standaard 5), retourneert één antwoord; één upstream-aanroep per panelmodel, geen foutinjectie
##
### 🔀 Of bouw je eigen combo — 20 routeringsstrategieën
Alle **20** strategieën — naar wens te combineren per combostap:
#
Strategie
Wat deze doet
1
priority
Geordende lijst met het eerste doel voorop — put elk doel uit voordat het volgende wordt gebruikt 🥇
2
fill-first
Benut het quotum van elk doel volledig voordat wordt doorgegaan
3
weighted
Gewogen willekeurige selectie op basis van het gewicht per doel
4
round-robin
Doorloop de doelen op volgorde
5
p2c
Willekeurige taakverdeling volgens het power-of-two-choices-principe
6
least-used
Kies het doel met de laagste huidige belasting
7
random
Uniform willekeurige selectie (ontdubbeld)
8
strict-random
Willekeurig zonder herhalingen te ontdubbelen 🎲
9
cost-optimized
Minimaliseer de kosten per aanvraag op basis van live catalogusprijzen 💸
10
headroom
Kies het doel met het grootste resterende quotum
11
quota-weighted
Sla uitgeputte accounts over en selecteer vervolgens naar verhouding van resterend quotum ÷ actieve belasting — bestaande gesprekken blijven vastgepind ⚖️
12
reset-window
Geef de voorkeur aan het doel waarvan het quotumvenster het snelst wordt gereset
13
reset-aware
Rangschik op tijdstip van quotumreset — korte vensters eerst 📊
14
context-relay
Draag context tussen doelen over voor lange gesprekken 🧠
15
context-optimized
Kies het doel dat het beste bij de huidige contextgrootte past
16
cache-optimized
Pin elk herbruikbaar promptvoorvoegsel aan hetzelfde account — maximaliseer treffers in de promptcache 🎯
17
lkgp
Last-Known-Good Path — pint aan de laatst succesvolle provider en valt daarna terug op regels
18
auto
Live beoordeling op basis van 16 factoren voor elke verbinding 🤖
19
fusion
Fan-out naar een panel van modellen + een beoordelaar voegt alles samen tot één antwoord 🧬
20
pipeline
Keten van stappen — de uitvoer van elk doel wordt doorgegeven aan het volgende 🔗
De Auto-Combo-engine beoordeelt elke kandidaat op **16 factoren** (status, quotum, kosten, latentie, taakgeschiktheid, kwaliteit, sessiebeschikbaarheid…) — zie [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Veerkracht is ingebouwd (3 onafhankelijke lagen)
📖 [Auto-Combo-engine](docs/routing/AUTO-COMBO.md) · [Veerkrachthandleiding](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Wat OmniRoute onderscheidt
📊 Volledige methodologie & details per functie vergeleken met 9router, OpenRouter, CLIProxyAPI & LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Steun OmniRoute
OmniRoute heeft een MIT-licentie en wordt openbaar onderhouden. Als het je tijd of geld bespaart, kun je het zo onafhankelijk helpen houden — kies wat bij je past. Sponsoring heeft nooit invloed op de routeringsprioriteit; het zorgt voor zichtbaarheid, niet voor een hogere positie.
**🇧🇷 PIX** — direct, zonder kosten (Brazilië)
Sleutel (willekeurig): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix kopiëren en plakken:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Crypto — BTC · ETH · USDT-TRC20 · USDC-Solana (klik om uit te vouwen)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Verzend elke munt alleen via het aangegeven netwerk — verzending via het verkeerde netwerk kan leiden tot verlies van het geld.
🐛 Een bug gevonden of heb je feedback? Open een [Discussie](https://github.com/diegosouzapw/OmniRoute/discussions).
Opmerkingen voor ontwikkelaars: Het project kan tijdens npm install/postinstall voor het gemak van ontwikkelaars een lokaal .env-bestand genereren. Dit bestand wordt bewust genegeerd via .gitignore (zie .gitignore) en mag nooit worden gecommit — als het per ongeluk toch is gecommit, roteer dan alle blootgestelde geheimen en verwijder het bestand uit de geschiedenis. Zie docs/DEVELOPER-ENVIRONMENT.md voor richtlijnen over het beheren van lokale omgevingsbestanden en geheimen.
## 📡 OmniRoute Radar
De belangrijkste claim voor de gratis laag blijft **~1,62 mld. tokens/maand** uit de hierboven gedocumenteerde catalogus, waarbij dubbele vermeldingen in gedeelde pools zijn verwijderd. Tijdelijke aanmeldtegoeden van providers kunnen de eerste maand afzonderlijk verhogen tot **~2,22 mld.** Radar is een optionele, ondertekende catalogusoverlay voor mensen die tussen OmniRoute-releases door actuelere beschikbaarheidsinformatie over gratis modellen willen; de communitycatalogus en alle bestaande gratis functies blijven gratis.
Supporters kunnen de livecatalogus en aanvullende mogelijkheden van providers ontvangen. Het afzonderlijke, veranderlijke maximum bedraagt **hooguit ongeveer 3 mld. tokens/maand**, afhankelijk van de beschikbaarheid bij providers. Dat maximum is geen garantie: providers kunnen quota, deelnamevoorwaarden, modellen of regio's op elk moment wijzigen.
Radar is opt-in en gebruikt alleen GET. De OmniRoute-client uploadt geen prompts, verkeer, providerconfiguratie, gebruikstelemetrie of de lokaal opgeslagen status van weggeklikte meldingen. Lees meer over de deelnamevoorwaarden en de huidige catalogus op **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Wat is er nieuw
> Recente hoogtepunten van **v3.8.20 → v3.8.53**. Volledige geschiedenis in [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted`-routing** — de 20e combo-strategie slaat uitgeputte accounts over en kiest vervolgens onder de rest naar rato van resterende quota ÷ actieve belasting, waarbij bestaande gesprekken vastgepind blijven. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Headless-modus** — `omniroute serve --headless` (of `OMNIROUTE_HEADLESS=1`) draait alleen de `/v1/*`-proxy-engine, met het dashboard en subsystemen die alleen voor het dashboard dienen uitgeschakeld. → [Headless Mode](docs/guides/HEADLESS.md)
- **🔎 Modeldetectie** — `/v1/models` filtert op mogelijkheid, context, soort en tekst, en `POST /v1/models/query` retourneert een korte deterministische shortlist met dezelfde zichtbaarheid per sleutel. → [API Reference](docs/reference/API_REFERENCE.md)
- **🔑 Routingbesturing per sleutel** — pin een API-sleutel aan één model of combo met `forcedModel`, en voeg modellen en combo's van een sleutel atomair toe of verwijder ze (`/api/keys/{id}/access`). → [API Reference](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Fijnmazigere PII-controles** — selectie per type, tot 20 gevalideerde aangepaste maskeerpatronen en detectietellers per type; maskeren zelf blijft optioneel. → [Guardrails](docs/security/GUARDRAILS.md)
- **🌍 67 talen** — dashboard, documentatiespiegels en CLI, waarbij `npm run i18n:add-locale` met één opdracht een taal overal toevoegt. → [i18n Guide](docs/guides/I18N.md)
- **🎛️ OmniConductor** — inkomende A2A-delegatie naar je agentvloot, Conductor-vaardigheden op de Agent Card, en een dashboardpaneel met Faro push-to-talk spraakchat. → [A2A Server](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptieve toelating & overbelastingsbeveiliging** — zware chatverzoeken komen in de wachtrij in plaats van een 503 te krijgen, met atomaire RPM-rollende leases per verbinding. → [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Canonieke `/v1/models`-ordening** — één aaneengesloten, per provider gegroepeerd blok per provider (combo's eerst vastgepind), stabiel over elke catalogusbron. → [API Reference](docs/reference/API_REFERENCE.md)
- **🗜️ Compressie-hardening** — standaard ingeschakelde inflatieguard, Caveman-packs voor DE / FR / JA + Chinees (wényán), RTK-filters voor Gradle & .NET. → [Compression](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Eerlijke vaste-tariefkosten** — abonnement- / coding-plan-providers tonen **$0** in kostenanalyses; budget, quota en routing blijven schatten. → [API Reference](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-routing** — verdeel de quota van een gedeeld account eerlijk over gepoolde sleutels, work-conserving zodat inactieve delen worden uitgeleend. → [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI/agent-installatie met één opdracht** — 15 geregistreerde `setup-*`-opdrachten; `omniroute run` start 7 CLI's (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` ondersteunt 11 doelen met een interactieve provider+model-kiezer en favorieten per context. → [CLI Integrations](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Externe modus** — bestuur een externe OmniRoute met tokens met beperkte reikwijdte (`connect` / `contexts` / `tokens`) + een `antigravity`-OAuth-hulp voor VPS-installaties. → [Remote Mode](docs/guides/REMOTE-MODE.md)
- **🧭 Slimmere auto-routing** — `auto/:`-combo's, **Fusion** (modelpanel + judge), taakbewuste routing, overschrijvingen per verzoek van model / modus / USD-budget. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Plugbare compressie** — 12 combineerbare engines + Compression Studios: LLMLingua-2, tweelaags Ultra, omniglyph, fidelity-gate per stap, GCF v3.2, editor met slepen en neerzetten om te herordenen. → [Compression](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparante MITM-ontsleuteling (TPROXY)** — leg CLI's vast die proxy-omgevingsvariabelen negeren, met een CA per SNI + installateur voor de truststore. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Kostentelemetrie overal** — `X-OmniRoute-*`-kosten-/gebruiksheaders op elk endpoint, cache-HIT-besparingsheader, USD-uitgavenquota per sleutel. → [API Reference](docs/reference/API_REFERENCE.md)
- **🧠 Geheugen dat jij beheert** — standaard uit, optionele int8-vectorquantisatie + getypeerd verval, `x-omniroute-no-memory` per verzoek. → [Memory](docs/frameworks/MEMORY.md)
- **🛡️ Beveiliging** — prompt-injectieguard op elke LLM-route (red-team-suite), optionele guardrail voor het maskeren van inloggegevens (redigeert gelekte API-sleutels/secrets in beide richtingen), gratis DuckDuckGo-webzoekopdracht als laatste redmiddel, en een optionele OIDC-loginpoort voor het dashboard (aanmelden met wachtwoord blijft altijd beschikbaar). → [Guardrails](docs/security/GUARDRAILS.md)
- **🖼️ Nieuwe endpoints** — `/v1/ocr` (Mistral OCR) en `/v1/audio/translations` (Whisper-stijl) maken het media-aanbod compleet. → [API Reference](docs/reference/API_REFERENCE.md)
- **🎨 Afbeelding / video / audio genereren** — één API voor media: xAI Grok Imagine & Novita AI-video, ComfyUI, Magnific, Adobe Firefly, Segmind en spraakproviders zoals ElevenLabs. → [API Reference](docs/reference/API_REFERENCE.md)
- **🌍 Implementatie & beheer** — reverse-proxy-`basePath`, automatische detectie van browsertaal, apparaattracking per sleutel, root-loos MITM-vertrouwen, zh-TW-localisatie. → [Environment](docs/reference/ENVIRONMENT.md)
- **🤝 Meer providers & agents** — cloudagents (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) met browser- + OAuth-login, Ollama als eersteklas kaart, Claude Opus 5 & Sonnet 5, officieel partnerschap met Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… en een vernieuwde **375-provider-catalogus**. → [Providers](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Routingtransparantie** — elk antwoord draagt een `X-OmniRoute-Decision`-header die de strategie/provider/latentie noemt die het heeft bediend, een nieuwe `cache-optimized`-combo-strategie + Auto-Combo-`cacheAffinity`-factor die herhaalverzoeken terugstuurt naar de verbinding met het gecachte prefix, en een alleen-lezen `/v1/auto-combo/{channel}/candidates`-endpoint dat de live kandidatenpool van een `auto/*`-kanaal toont. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Lokale prestaties & infrastructuur** — lokale Redis met één klik, Cloudflare Workers / Deno Deploy relay-deployers, Bifrost & Mux als gesuperviseerde ingebedde services. → [Embedded Services](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Ook inbegrepen** — plugin-framework + marktplaats, Omni/Agent/GitHub skills-frameworks, Obsidian vault-integratie (22 MCP-tools), OpenAI-compatibele Batch- en Files-API's, semantische responscache, gamification met leaderboards, ACP-agentdetectie (15 ingebouwde agents), geplande log-export naar BigQuery, `auto/chaos` parallelle multi-model fan-out, een Telegram-botbrug, een in-app versiebeheerder en LMArena-ELO-ranglijsten voor gratis providers. → [Documentatie](docs/README.md)
## 🤖 Compatibele CLI's en programmeeragents
> Eén configuratie — `http://localhost:20128/v1` — en **elke** AI-IDE of CLI draait op gratis en voordelige modellen.
+ werkt ook met · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · elke OpenAI-compatibele tool
📖 Configuratie per tool voor alle 37 tools (27 CLI Code-tools + 10 CLI-agents) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode-plugin → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Start elke ondersteunde CLI met één opdracht via OmniRoute** — er worden geen configuratiebestanden geschreven,
referenties worden per proces geïnjecteerd en Qwen/Gemini krijgen een tijdelijke, geïsoleerde thuismap:
```bash
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# Of kies interactief een provider en model en schrijf de eigen configuratie van de tool:
omniroute configure codex # ook: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Elke opdracht respecteert de actieve externe context (`omniroute connect `), `--dry-run`
toont vooraf de exacte omgevingsvariabelen/argumenten zonder deze uit te voeren, en `--api-key-env NAME` houdt geheimen buiten
de geschiedenis van je shell. → [CLI-integraties](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 375 AI-providers — 153 als gratis gemarkeerd in de catalogus
> **375 geregistreerde providers** in de canonieke chat-, media-, zoek-, lokale, cloud-agent- en systeemcollecties, waaronder **153 met `hasFree: true`-discoverymetadata**. Het chatmodelregister omvat **239 providers / 3.059 afzonderlijke provider-modelparen / 1.475 ruwe model-ID's**; de afzonderlijke gratis-budgetcatalogus heeft **467 rijen per model**, **34 terugkerende pools** en **51 terugkerende/keyless gratis-voor-altijd-providers**. Dit zijn met opzet verschillende noemers; definities en pool-gededupliceerde berekeningen staan in de [Provider Reference](docs/reference/PROVIDER_REFERENCE.md) en [Free Tiers](docs/reference/FREE_TIERS.md).
### 🏢 Elk groot lab — via één endpoint
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…en nog 350+ meer — elk pictogram wordt live opgehaald uit de providercatalogus van het dashboard. 📖 [Provider Reference](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Gratis voor altijd — $0, geen kaart nodig
OpenCode Zen DeepSeek V4, Nemotron 3 Geen tokenlimiet
Kilo Code Auto-router, Tencent Hy3 Voor altijd gratis
Requesty GPT-OSS 120B, Nemotron Voor altijd gratis
SiliconFlow DeepSeek V3.2 / R1 Gratis tier
Z.AI GLM GLM-4.7 / 4.5-Flash Voor altijd gratis
Baidu ERNIE ERNIE 4.0 Voor altijd gratis
Qoder AI Qwen3-Max, Kimi-K2 Onbeperkt GRATIS
Pollinations GPT, Llama, Claude Geen sleutel nodig
### 🧩 Nieuw: OmniRoute in de native Copilot Chat van VS Code
> Geen nieuwe zijbalk, geen nieuwe chatinterface — elk model dat OmniRoute aanbiedt, verschijnt direct in de
> **Copilot Chat-modelkiezer die je al gebruikt**. Sinds VS Code 1.122 werken providermodellen
> zonder aanmelding bij GitHub of Copilot-abonnement — agentmodus, het aanroepen van tools en beeldverwerking,
> gratis.
Installeer de extensie **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, verbind deze
met je OmniRoute-server (standaard `localhost:20128`) en open vervolgens Copilot Chat → modelkiezer
→ **Modellen beheren…** → **OmniRoute**.
Vanuit de editor: open de weergave **Extensies**, zoek naar **"OmniRoute"** en klik op **Installeren**
— werkt op dezelfde manier in beide stores. De broncode, issues en het publicatiedraaiboek zijn te vinden op
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Handleiding voor VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — installatie, wat de kiezer toont, dashboard in een tabblad, probleemoplossing
### 🎩 Nieuw: OmniRouteTray — jouw gateway in de menubalk
> `omniroute serve` werkt het best wanneer het altijd actief is. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> maakt er een eenmalig in te stellen menubalk-app voor macOS van: de app start de server, houdt deze actief
> na herstarts, werkt deze ter plekke bij en maakt je actuele tokenbudget met één klik toegankelijk — **geen
> terminalvenster dat open hoeft te blijven en geen `npm install -g omniroute` om voortdurend in de gaten te houden.**
Gebouwd met [Tauri v2](https://v2.tauri.app/) (een Rust-kern die nauwelijks ruimte inneemt), wordt het geleverd
met een eigen ondertekende Node 24-runtime en beheert het een OmniRoute-installatie die eigendom is van de app, zodat deze nooit botst met je
globale `node`/`bun`. Het **deelt je bestaande configuratie en database in `~/.omniroute/`** — het is dus
dezelfde OmniRoute die je al gebruikt, maar dan met een hoed op. 🎩
Wat het doet
Hoe
🟢 Bewaakt de server
Start omniroute serve en neemt een reeds actieve instantie over in plaats van deze te dupliceren
📊 Actueel gebruik in één oogopslag
Quotabalken per provider, sessie- en weeklimieten van Claude met aftellers tot de reset, kostenoverzicht over 30 dagen
🔄 Automatische updates ter plekke
Gefaseerde installatie, atomische omwisseling, terugdraaien bij fouten — altijd de nieuwste release
🚀 Starten bij aanmelden
Optioneel starten bij aanmelden; alleen in het systeemvak, zonder Dock-pictogram
🩺 Diagnose & logboeken
Diagnostiek met één klik en toegang tot serverlogboeken
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Liever downloaden? Haal de nieuwste .dmg op via
Releases. Broncode, issues en builddocumentatie
zijn te vinden op zoispag/omniroute-tray.
💛 Een communityproject van @zoispag — geen officiële OmniRoute-release.
> Naast de server is OmniRoute een **volledige commandocentrale voor de opdrachtregel** met **meer dan 80 commando's**, plus open agentprotocollen zodat een AI-agent deze **zelfstandig** kan bedienen.
### ⌨️ Een echte CLI (niet alleen `start`)
```bash
omniroute # gateway + dashboard uitvoeren (poort 20128)
omniroute chat # interactieve TUI-chatclient (slashcommando's: /model /combo /skill /memory)
omniroute setup # begeleide wizard voor de eerste configuratie
omniroute doctor # providers, poorten en native afhankelijkheden diagnosticeren
```
### 🛰️ Externe modus — voer de CLI hier uit en OmniRoute op een VPS
Draait OmniRoute op een server? Bedien het vanaf je laptop met **dezelfde CLI**. Log eenmaal in
met een toegangstoken met beperkt bereik; daarna wordt elk commando op de externe server uitgevoerd.
```bash
omniroute connect 192.168.0.15 # wachtwoord → token met beperkt bereik, opgeslagen als context
omniroute models # ← wordt uitgevoerd op de EXTERNE server
omniroute configure codex # ← kiest een extern model en schrijft een lokaal Codex-profiel
omniroute tokens create --name ci --scope read # maak tokens met een beperkter bereik voor andere machines
omniroute contexts use default # ← schakel terug naar de lokale server
```
Tokens hebben het bereik `read` / `write` / `admin`; routes die processen starten, blijven beperkt tot loopback.
📖 [Externe modus](docs/guides/REMOTE-MODE.md)
### 🤝 Verbind een agent — en deze bestuurt OmniRoute zelf
Stel OmniRoute beschikbaar via **MCP**, **A2A**, een **REST API**, **webhooks** of een **externe CLI** — elke geschikte agent (of je eigen code) krijgt toegang tot de volledige gateway: routering, providers, combinaties, cache, compressie en geheugen — volledig autonoom. De onderstaande HTTP-eindpunten zijn beschikbaar onder `http://localhost:20128`.
Interface
Eindpunt / commando
Te gebruiken voor
🧰 MCP (stdio)
omniroute --mcp
Integreer met Claude Desktop, Cursor of elke andere MCP-client
Stuur aanvraag- en quotagebeurtenissen naar Slack, Discord, Telegram of elke gewenste URL
🛰️ Externe CLI
omniroute connect
Bedien een externe instantie met toegangstokens met een beperkt bereik
```bash
# Geef Claude Code via MCP toegang tot de volledige OmniRoute-toolset:
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) · [Agentprotocollen](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Bespaar 15–95% tokens — automatisch
### 📖 Hoe het werkt — pipeline, architectuur en besparingsberekening
De standaard gestapelde combinatie voert `RTK → Caveman` uit. Wanneer beide op dezelfde tool-/contextpayload inwerken, stapelen de besparingen zich op:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Codeblokken, URL's, JSON en gestructureerde data worden **altijd beschermd** door de preservation-engine.
> **Waarom veel tokens gebruiken als weinig tokens volstaan?** Elke aanvraag gaat **transparant** door de compressiepipeline van OmniRoute — geen wijzigingen aan de client. Het is nu een **stack van 12 combineerbare engines** die in volgorde draaien en per routingcombinatie worden gemixt en gematcht — voortbouwend op ideeën van [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) en [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 De stack van 12 engines
Engines draaien in pipelinevolgorde; elke engine is afzonderlijk schakelbaar en configureerbaar per combinatie:
#
Engine
Wat het doet
1
Session-Dedup
Verwijdert inhoud die zich over beurten herhaalt (content-addressed, cross-turn)
2
CCR
Archiveert grote blokken achter retrieve-markers, op aanvraag opgehaald
3
Lite
Trimmen van witruimte + afbeeldings-URL's (latency-arme baseline)
4
RTK
Slimme filtering, deduplicatie en truncatie van toolresultaten (command-aware)
5
Responses Tool Output
Verliesvrij-eerst JSON + begrensde diagnostische compressie voor shell-/patch-/search-/build-uitvoer (Responses API)
6
Headroom
Verliesvrije tabelvormige compactie van JSON-arrays (~30%) via een ingebedde GCF-codec
7
Relevance
Extractieve zinsbeoordeling tegen de laatste gebruikersvraag
8
Caveman
Regelgebaseerde prozacompressie (~65–75% op uitvoer)
9
Aggressive
Samenvatting + progressieve veroudering van oude beurten
10
LLMLingua-2
ML-semantische pruning via MobileBERT ONNX — code-safe, async
11
Ultra
Heuristische tokenpruning met een optionele small-model (SLM)-tier
12
OmniGlyph
Experimentele context-als-afbeelding-codering voor gemeten Claude Fable 5 op de directe Anthropic-verbinding; GPT 5.6-transformers blijven fail-closed in afwachting van ontvangstbevestigingen van de provider. Vier compressieprofielen (aggressive als standaard, balanced, coding-safe, passthrough) (meest agressief; opt-in)
Codeblokken, URL's en gestructureerde data worden **altijd byte-perfect behouden**. **Voorinstellingen met één klik** combineren de engines:
Modus
Besparing
Het best voor
🪶 Lite
~15%
Altijd aan veilige standaard
🪨 Standard (Caveman)
~30%
Dagelijks coderen
⚡ Aggressive
~50%
Lange sessies met veel toolgebruik
🔥 Ultra
~75%
Maximale besparing
🧰 RTK
60–90%
Shell-/test-/build-/git-uitvoer
🔗 Gestapeld (RTK → Caveman)
78–95%
Gemengde prompts + toollogs
**Praktijkvoorbeeld — Standaardmodus:**
> **Voor (69 tokens):** _"De reden dat je React-component opnieuw rendert, is waarschijnlijk dat je bij elke rendercyclus een nieuwe objectreferentie maakt. Wanneer je een inline-object als prop doorgeeft, ziet React's ondiepe vergelijking dit elke keer als een ander object, wat een re-render veroorzaakt. Ik raad aan om useMemo te gebruiken om het object te memoïseren."_
>
> **Na (19 tokens):** _"Nieuwe objectreferentie bij elke render. Inline object-prop = nieuwe ref = re-render. Wikkel in useMemo."_
>
> **Hetzelfde antwoord. 72% minder tokens. Geen verlies van nauwkeurigheid.** ✅
**PT-BR-voorbeeld — [Troglodita](https://github.com/leninejunior/troglodita)-modus:**
> **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.** ✅
### 🎚️ Voorbij de engines — uitvoerstijlen, de adaptieve knop en sturing per request
De 12 engines hierboven verkleinen wat er **in** gaat. Nog drie lagen bepalen **hoe**, **wanneer** en wat er **uit** komt:
- **🪄 Uitvoerstijlen** _(sturing op de uitvoer-as)_ — injecteer deterministische, cache-veilige instructies die de vorm van het antwoord bepalen; combineerbaar, elk op `lite` / `full` / `ultra` intensiteit. Een stijl toevoegen is één regel in het register:
- **Beknopt proza** — vulsel / lidwoorden / nuanceringen weglaten; technische inhoud exact houden.
- **Minder code** — "luie senior dev" YAGNI: kleinste werkende wijziging, geen ongevraagde scaffolding.
- **Ponytail (luie senior dev)** — beklim de YAGNI-ladder, pak de grondoorzaak aan, kleinste werkende diff.
- **Ik heb ADHD (actie eerst)** — de volgende actie voorop, genummerde stappen, één concrete volgende stap, geen inleiding.
- **Beknopt CJK (文言)** — ultra-beknopte klassiek-Chinese stijl (alleen bij locale `zh`).
- **🎯 Adaptief contextbudget** _(de knop)_ — in plaats van één aan/uit-tokendrempel escaleer je alleen de goedkoopste, meest verliesvrije engines zo ver als nodig om **binnen het contextvenster van het model te passen**. Beleid: `reserve-output` (standaard, modelbewust) · `percentage` · `absolute`. Modus: `floor` (garandeer dat het past) · `replace-autotrigger` (jouw expliciete keuze wint) · `off` (legacy drempel).
- **🎛️ Waar compressie wordt bepaald** _(prioriteit, hoog → laag)_ — per-request `x-omniroute-compression`-header › routing-combo-override › actief benoemd profiel › adaptief / auto-trigger › paneelstandaard › uit. Het toegepaste plan wordt teruggegeven in de response-header `X-OmniRoute-Compression: ; source=`.
Auto-trigger op tokendrempel, de adaptieve knop aanzetten, een benoemd profiel vastpinnen, een eenmalige instelling per request, of een pipeline per routing-combo toewijzen — wat het beste bij de workload past. Een opt-in offline **eval-harness** (`npm run eval:compression`) scoort fidelity vs. besparing op een vastgezette corpus voordat je een wijziging uitrolt.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Snelstart
**1) Installeren en starten**
```bash
npm install -g omniroute
omniroute
```
> 💡 Zie je `npm warn ERESOLVE` of peer-dep-waarschuwingen? [Die zijn onschadelijk](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Gebruik je npm 11 of nieuwer?** npm kan lifecycle-scripts van packages blokkeren tenzij ze zijn toegestaan. De `postinstall` van OmniRoute (`node scripts/build/postinstall.mjs`) is vereist om de native runtime-bestanden voor te bereiden. Sta de packages toe die in de waarschuwing van npm worden genoemd bij een globale installatie. Voor de packageset die OmniRoute 3.8.53 meldt:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Om deze allowlist te hergebruiken voor toekomstige globale installaties, configureer je hem één keer en installeer je daarna normaal:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> De lijst met dependencies kan per release veranderen; als npm een andere lijst meldt, gebruik dan de packagenamen uit die waarschuwing. Een package toestaan betekent dat de installatiescripts ervan mogen draaien.
> **Gebruik je Gemini Web of een andere web-cookie-provider?** Het npm-package bevat Playwright, maar niet de Chromium-binary. Zie de
> [Playwright Chromium-setup](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> voordat je het eerste web-provider-request doet.
Dashboard op `http://localhost:20128` · API op `http://localhost:20128/v1`.
**2) Verbind een geschikte provider met je eigen account**
Dashboard → **Providers** → kies een provider waarvan de huidige voorwaarden en quota bij je use case passen → voeg de API-key toe of doorloop de accountflow. Gratis tiers kunnen registratie, goedkeuring of een betaalmethode vereisen. Lees de [Free Tiers Guide](docs/getting-started/FREE-TIERS-GUIDE.md); keyless beschikbaarheid is niet gegarandeerd, en providers met `tos: avoid` worden standaard uitgesloten van `auto`.
**3) Wijs je codingtool aan**
```txt
Base URL: http://localhost:20128/v1
API Key: [kopieer uit Dashboard → Endpoints]
Model: auto (routeert over geschikte verbindingen — of kies provider/model)
```
**4) Controleer of het werkt**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Je zou je verbonden modellen in de lijst moeten zien. 🎉 Klaar — begin met coderen, en OmniRoute routeert en valt automatisch terug voor je.
Als je client geen custom headers kan versturen, biedt OmniRoute ook getokeniseerde compatibiliteitsaliassen:
```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
```
Gebruik deze alleen voor clients die geen `Authorization: Bearer ...` kunnen meesturen. Auth via headers blijft de voorkeursmodus.
## 📦 Meer installatiemethoden — Docker, broncode, pnpm, Arch
**🐳 Docker**
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
`:latest` volgt de hoogste **gepubliceerde** stabiele SemVer. Deze tag volgt niet de git-branch `main`. Zet de versie voor GitOps vast op `:X.Y.Z`. Zie [Docker-releasekanalen](docs/guides/DOCKER_GUIDE.md#release-channels).De image stelt **`OMNIROUTE_MEMORY_MB=1024`** in. Dat is voldoende voor het dashboard en lichte chats. **Codeeragents** (`POST /v1/responses` vanuit Claude Code, Codex, Grok, …) hebben een veel grotere V8-heap nodig, anders treedt bij ongeveer 12 GiB een `FATAL ERROR` op wanneer twee lange contexten elkaar overlappen. Maak de container groter dan de heap (native buffers bevinden zich buiten V8):
| Werklast | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
| ---------------------------------------- | ------------------------------- | ---------------------- |
| Dashboard / lichte chats | `1024` (standaard van de image) | ≥2 g |
| Eén codeeragent | `8192` | ≥10 g |
| Twee gelijktijdige lange `/v1/responses` | `10240`–`12288` | ≥12–16 g |
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-e OMNIROUTE_MEMORY_MB=8192 --memory=10g \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
Volledige tabel: [Docker-handleiding — RAM tijdens runtime](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Docker-kanaal voor prereleases:** `diegosouzapw/omniroute:next` en
> `diegosouzapw/omniroute:next-web` volgen de huidige standaardbranch `release/v*`.
> Deze veranderlijke tags zijn uitsluitend bedoeld voor het testen van nog niet uitgebrachte
> oplossingen en worden **niet ondersteund voor productie**. Zie
> [Docker-releasekanalen](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
De standaardopdracht `bun install` en globale installatie (`bun install -g omniroute`) worden ondersteund via detectie van de Bun-runtime:
- **Ingebouwde `bun:sqlite`**: OmniRoute gebruikt het ingebouwde `bun:sqlite`-stuurprogramma van Bun wanneer het onder Bun wordt uitgevoerd en valt bij Node.js terug op `better-sqlite3` of `sql.js`.
- **Automatische selectie van de Webpack-bundler tijdens ontwikkeling**: De ontwikkelmodus (`bun run dev`) detecteert Bun automatisch en schakelt Turbopack uit ten gunste van Webpack om incompatibiliteit met native V8-bindings te voorkomen. Productiebuilds (`bun run build`) volgen `OMNIROUTE_USE_TURBOPACK` precies zoals bij Node: standaard Turbopack, of `OMNIROUTE_USE_TURBOPACK=0` om met Webpack te bouwen (`Dockerfile.bun` stelt dit beschikbaar als een `--build-arg`).
- **Specifieke Bun-Dockerfile**: `Dockerfile.bun` met meerdere fasen voor native Bun-productie-implementaties (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Installeren en uitvoeren met Bun
bun install
bun run dev
```
**🛠️ Vanuit de broncode**
```bash
cp .env.example .env && npm install
PORT=20128 npm run dev
```
**📦 pnpm**
```bash
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
```
**🐧 Arch Linux (AUR)**
```bash
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
```
**🔧 Nix (Flake)**
```bash
# Nix-flakes gebruiken
nix develop
npm run dev
# Of devbox gebruiken
devbox run npm run dev
```
📖 [Docker-handleiding](docs/guides/DOCKER_GUIDE.md) — Compose-profielen, Caddy HTTPS, Cloudflare-tunnels.
**🦭 Podman**
```bash
# 1. De als bind-mount gekoppelde gegevensmap voorbereiden
mkdir -p data
# 2. Alleen voor Linux + lokale rootless Podman (nooit voor een externe Podman Machine-client):
podman unshare chown 1000:1000 ./data
# 3. De runtime-hint instellen, de lokale Compose-image bouwen en starten
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
Op macOS of Windows gebruikt Podman een externe Podman Machine: sla `podman unshare` over en
volg de [topologiespecifieke richtlijnen voor de gegevensmap](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Podman-handleiding](contrib/podman/README.md) — Compose-builds, Podman Machine en
Quadlet-configuratie voor Linux/systemd.
**⚡ Snellere / lichtere installatie (sla de native build over)**
De native SQLite-engine (`better-sqlite3`) is een **optionele** afhankelijkheid, zodat een globale
installatie nooit wordt geblokkeerd door compilatie vanuit de broncode: er wordt een vooraf gecompileerd binair bestand gebruikt wanneer dat
overeenkomt met uw platform/Node-versie, en anders wordt transparant teruggevallen op een pure JavaScript-engine
(`node:sqlite` op Node 22+, anders de meegeleverde `sql.js`-WASM) — geen buildtools vereist.
Om de native opwarming na installatie volledig over te slaan (CI, headless- of trage machines):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 slaat dit ook over
```
Gebruik voor de snelste installaties bij voorkeur **pnpm** (content-addressed opslag + hardlinks — zie hierboven).
Gebruik voor een headless runtime zonder dashboard het Docker-profiel `base` (hierboven) of de
[Termux-handleiding](docs/guides/TERMUX_GUIDE.md). De CLI en het webdashboard worden door hetzelfde
proces op één poort aangeboden, dus er is momenteel geen afzonderlijk pakket met alleen de CLI.
# 🎬 OmniRoute in actie
## 📹 Videogidsen
Momentopname van het dashboard op 2026-10-18 · Ruwe catalogus: YT 1.352 | TT 334 | IG 290 · Actualiteit (dagen): YT 5 | TT 48 | IG 49
**Volledige ranglijst (ontdubbelde canonieke URL's, `v > 0`, grootste bereik):**
| #1 | #2 | #3 | #4 | #5 |
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [nick_saraev — Instagram](https://www.instagram.com/reel/Da8ZthUPK98/) — **3,042,474** | [nnapier7 — Instagram](https://www.instagram.com/reel/Dbp7wv_CIO0/) — **1,454,535** | [Amidia AI & Tech — YouTube](https://www.youtube.com/watch?v=NJ0TQ-pyMDY) — **794,974** | [theopenstack — Instagram](https://www.instagram.com/reel/DaSs65mMrHk/) — **692,419** | [migue.baena — TikTok](https://www.tiktok.com/@migue.baena/video/7670919268216622358) — **685,788** |
| #6 | #7 | #8 | #9 | #10 |
| ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [milesreevesai — TikTok](https://www.tiktok.com/@milesreevesai/video/7667980059189366019) — **620,400** | [nikothetech — TikTok](https://www.tiktok.com/@nikothetech/video/7671890769665477918) — **610,803** | [Vaibhav Sisinty — YouTube](https://www.youtube.com/watch?v=QucgvbO5gsM) — **509,281** | [buildwithai.club — Instagram](https://www.instagram.com/reel/DbIt9AjK7-U/) — **347,652** | [nivedan.ai — Instagram](https://www.instagram.com/reel/DbIrCksJiqq/) — **331,973** |
Canonieke statistieken op 2026-10-18: **1.976 unieke video's** · **20.220.289 bekende weergaven** (`v > 0`) · **1.210 kanalen/profielen per netwerk**. Het ruwe dashboard bevat 1.976 regels (YouTube 1.352 = 740 lange video's + 612 Shorts · TikTok 334 · Instagram 290); na normalisatie op basis van de canonieke URL zijn er geen duplicaten overgebleven, waarbij het hoogste aantal per video wordt behouden. De gegevensverzameling van YouTube is bevroren op 2026-10-13 (API-quotum uitgeput van 14 t/m 18/10) en die van TikTok/Instagram sinds 2026-09-02 (geen verzamelcredits); voor 76 video's ontbreekt nog steeds het aantal weergaven.
> 🎬 **Heb je een video over OmniRoute gemaakt?** Open een [issue](https://github.com/diegosouzapw/OmniRoute/issues/new) of [discussie](https://github.com/diegosouzapw/OmniRoute/discussions) met de link — dan nemen we deze hier op.
# 📧 Community & hulp
> Alles op één plek — volg de beheerder, chat met de community of open een issue.
| Kanaal | Waar / hoe |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| 💼 **LinkedIn** — volg de beheerder | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) |
| 🐙 **GitHub** — volg voor releases en tips | [@diegosouzapw](https://github.com/diegosouzapw) |
| 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) |
| ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) |
| 🟢 **WhatsApp — 🌍 Wereldwijd** | [word lid van de groep](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) |
| 🟢 **WhatsApp — 🇧🇷 Brazilië** | [word lid van de groep](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) |
| 🌍 **Website** | [omniroute.online](https://omniroute.online) |
| 🌍 **🌍StHub OmniRoute-community (gratis)** | [StHub-portaal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK) |
| 📦 **Broncode** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) |
| 🐛 **Een bug melden** | [open een issue](https://github.com/diegosouzapw/OmniRoute/issues) — voeg de uitvoer van `npm run system-info` toe |
| 🤝 **Bijdragen** | [CONTRIBUTING.md](CONTRIBUTING.md) · [Branch- en releasemodel](docs/ops/BRANCHING_MODEL.md) · kies een `good first issue` |
| 💚 **Steun het project** | [Manieren om te steunen ↑](#-support-omniroute) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
Strategie voor testdekking voor meer dan 56.000 statische testdeclaraties in meer dan 7.800 gevolgde testbestanden
# ⭐ Topbijdragers
> OmniRoute wordt gevormd door een gepassioneerde open-sourcegemeenschap. Deze personen hebben uitzonderlijke bijdragen geleverd die direct invloed hebben op de kwaliteit, stabiliteit en reikwijdte van het project. **Dank jullie wel.**
### Externe bijdragers op basis van gemergde pull requests
Telling uitgevoerd op 2026-10-18 15:09:09 UTC met live release/v3.8.52-tip 656f01cb43. De gepagineerde GitHub GraphQL-telling bevat 9.191 gemergde PR's: 3.834 door de eigenaar van de repository, 229 door Dependabot, 6 door andere bots/apps, en 5.122 externe PR's van 835 verschillende bijdragers. "Gewijzigde regels" is GitHub-toevoegingen + -verwijderingen en omvat gegenereerde bestanden, lockfiles, catalogi, vertalingen en documentatie; het is churn, geen zelf geschreven LOC. 49 PR's melden GitHub-diffs van meer dan 500.000 regels (bijvoorbeeld #13399, de toevoeging van één provider, vermeldt 2.347 gewijzigde bestanden), wat verschillende totalen hierboven opblaast. Gelijke scores worden samen gerangschikt.
### Aan GitHub toegewezen commits
Opnieuw gecontroleerd op 2026-10-18 14:44:45 UTC: door GitHub toegeschreven commits die door de Contributors API van de repository worden gerapporteerd voor de standaardbranch release/v3.8.52. De API gaf 849 identiteiten terug (429 gebruikers, 2 bots, 418 anonieme); deze tabel sluit de maintainer, bots en anonieme identiteiten uit en behoudt gedeelde rangen. Deze lijst staat los van zowel de ranglijst op basis van samengevoegde PR's hierboven als de Git-metadata-inventarisatie hieronder.
> 🙏 De functies, bugfixes en infrastructuurverbeteringen van deze bijdragers zijn een **kernonderdeel** van wat OmniRoute betrouwbaar en rijk aan functies maakt. Elke pull request, elke testcase en elk i18n-vertaalbestand doet ertoe. Open source wordt gebouwd door mensen zoals zij.
---
## 💖 Sponsors
Een welgemeend dankjewel aan de mensen die OmniRoute uit eigen zak financieren — elke bijdrage houdt het project gratis, onafhankelijk en in beweging.
… en anderen die liever privé blijven 💛Openbare GitHub Sponsors zijn op 2026-10-18 opnieuw gevalideerd via de GitHub Sponsors GraphQL API: 11 openbare sponsorbijdragen (6 actief, 5 voormalig) van in totaal 14. De isActive-status van GitHub bepaalt de actieve labels hierboven; voormalige openbare eenmalige supporters blijven vermeld als dank, en privésponsors blijven anoniem. Donaties via Ko-fi, Buy Me a Coffee, Liberapay, PIX en crypto worden niet vermeld, omdat daarvoor geen openbaar sponsorprofiel bestaat.💖 Word sponsor → — elke dollar houdt OmniRoute gratis en onafhankelijk.
## 👥 900+ bijdragers
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Gecontroleerd op 2026-10-18 bij de actuele tip ad160ab2d1 van release/v3.8.52 (6.826 commits): 993 genormaliseerde menselijke Git-identiteiten — 707 verschijnen als auteurs van commits (inclusief de beheerder) en 286 uitsluitend in expliciete Co-authored-by-trailers. De telling past .mailmap toe, vergelijkt e-mailadressen zonder onderscheid tussen hoofdletters en kleine letters, voegt numerieke en gewone GitHub-noreply-adressen alleen samen wanneer ze dezelfde gebruikersnaam coderen, sluit 26 bot-/agent-/service-/placeholder-identiteiten uit en voegt gewone e-mailadressen niet samen enkel omdat hun weergavenamen overeenkomen. De controle van 2026-08-24 publiceerde 639; wanneer deze methode opnieuw wordt uitgevoerd op de basis ac02c5b42f van die controle, levert dit 619 op. De toename is dus afkomstig van nieuwe bijdragers en niet van een soepelere methode.
### Bijdragen
1. Fork de repository
2. Maak een branch vanaf de **actieve** tip van `release/vX.Y.Z` (niet vanaf `main`) — zie [Branch- en releasemodel](docs/ops/BRANCHING_MODEL.md)
3. Maak je featurebranch (`git checkout -b feat/amazing-feature`)
4. Commit je wijzigingen (`git commit -m 'feat: add amazing feature'`)
5. Push naar de branch (`git push origin feat/amazing-feature`)
6. Open een pull request met **base = die `release/vX.Y.Z`-branch**
Zie [CONTRIBUTING.md](CONTRIBUTING.md) voor gedetailleerde richtlijnen.
### Een nieuwe versie uitbrengen
```bash
# Maak een release — npm publish wordt automatisch uitgevoerd
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Sterren
## 🌍 StarMapper
## 🙏 Erkenningen
OmniRoute staat op de schouders van reuzen. Het begon als een fork van **[9router](https://github.com/decolua/9router)** en een TypeScript-port van het Go-project **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — en vanaf dat punt werd elk onderstaand subsysteem geïnspireerd door een opensourceproject dat ons voorging. Elk daarvan heeft een concreet onderdeel van OmniRoute vormgegeven. Hiermee willen we ze allemaal bedanken. 🙏
> ⭐ aantallen sterren geverifieerd via GitHubs REST API op 18 oktober 2026 — geef deze projecten een ster. De aantallen vormen een exacte, gedateerde momentopname en zullen vanzelf veranderen.
### 🧬 Afstamming & gateway
De AI-gateway waarvan de openbare prijsgegevens onze synchronisatie voor kostentracking voeden en waarvan het model voor providernormalisatie onze routering mede heeft vormgegeven.
MIT-broncode die is aangepast voor de meegeleverde ChatGPT Web → Codex Responses-bridge, inclusief adapters voor browsersessies, responseframing, gebruik en zoeken op het web.
Patronen die zijn overgenomen voor streamherstel, aliassen zonder denkproces, fallback voor zoeken op het web, limieten op basis van een schuivend venster, redactie van logboeken en versterkte opstartflows.
Met Claude Code compatibele standaardwaarden voor transformaties en gedrag van factureringsheaders, gegeneraliseerd in OmniRoutes configuratiegestuurde bridge.
De Grok-modeltoewijzingen, de Statsig-generator met een gesimuleerde TypeError, standaardwaarden voor verzoeken en apparaten en de NDJSON-responseprocessor zijn in belangrijke mate aangepast voor OmniRoutes Grok Web-executor.
De belangrijkste transitieve codebron achter grok2api-merged; de implementaties voor modellen, headers, payloads, Statsig en verwerking ervan zijn behouden in de afstamming van Grok Web.
De onderliggende MIT-broncode voor standaardwaarden van Grok-payloads en -apparaten, de Statsig-generator en de result.response-processor die via TQZHR en grok2api-merged zijn overgenomen.
Een transitieve bron die door grok2api-merged wordt vermeld voor de proxy-poollaag; OmniRoute behoudt die afstammingsvermelding, maar claimt geen port van een proxy-pool in zijn afgebakende Grok Web-executor.
Voor de oorspronkelijke Grok Web-implementatie is het upstreamontwerp voor HTTP en browsers geraadpleegd; het directe HTTP-pad is afgeleid van GrokProxy, waardoor geen aanspraak wordt gemaakt op een onafhankelijke codeport.
Het virale project "waarom veel tokens gebruiken als weinig tokens volstaan" — de holbewonersfilosofie ervan vormt de basis voor onze standaardcompressiemodus en meer dan 30 regels voor het verwijderen van opvulling en verdichting.
Hoogwaardige compressie van opdrachtuitvoer — inspireerde onze RTK-engine, JSON-filter-DSL, herstel van ruwe uitvoer en de gestapelde RTK → Caveman-pijplijn.
PT-BR-tokencompressie — vormt de basis voor ons pt-BR-taalpakket: vermindering van pleonasmen en verwijdering van opvulwoorden, afgestemd op de Braziliaans-Portugese grammatica.
De virale YAGNI-codeervaardigheid voor "luie senior developers" — inspireerde onze less-code-uitvoerstijl: sturen op de kleinste werkende wijziging, waardoor de hoeveelheid _gegenereerde_ code afneemt (de tegenhanger op de uitvoeras van het beknopte proza van Caveman).
Kolomgerichte JSON in Rust + inhoudsgeadresseerd ophalen + ontdubbeling tussen berichten — bevestigde het ontwerp van onze headroom/ccr/session-dedup-engines en de cache-stabiele invariant "de gecomprimeerde vorm is positie-onafhankelijk".
Toolkit voor de TypeScript Compiler API — inspireerde onze parsergebaseerde verwijdering van commentaar waarbij string-, template- en regex-literalen behouden blijven.
MITM-onderschepping en -analyse van verkeer tussen codeerassistenten en LLM's vormden de basis voor de eerste vereisten van Traffic Inspector. Vier eerder afgeleide modules — SSE-samenvoeging, gespreksnormalisatie, geheimenmaskering en opschoning van headers — zijn vervangen door onafhankelijke cleanroomimplementaties op basis van openbare protocolstandaarden. De twee oppervlakken voor host-passthrough (passthrough.ts en _internal/bypass.cjs) blijven interne OmniRoute-implementaties die onafhankelijk zijn geclassificeerd; ze zijn niet herschreven als onderdeel van die vervanging.
Transparante proxyroutering per proces — inspireerde onze crashbestendige MITM-beëindiging, time-outs voor inactieve sockets, procestoewijzing via /proc en TPROXY-vastlegging.
Een samengestelde lijst van standaard beveiligde bibliotheken die richting geeft aan onze beveiligingskeuzes (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
De accountbewuste modelhertoewijzing, validatie van uitvoerbare bestandspaden en verwerking van planlabels vormden de basis voor de Antigravity-runtime van OmniRoute.
Identificeerde de quota-interface van Grok Build; OmniRoute verifieerde en corrigeerde vervolgens zelfstandig de actuele wire-indeling.
## 📄 Licentie
MIT-licentie - zie [LICENSE](LICENSE) voor details.
---
**[⬆ Terug naar boven](#-omniroute)** · Gebouwd met ❤️ voor de open-source AI-community.
OmniRoute v3.8.53 · Node ≥22.22.2 · MIT-licentie · omniroute.online