# 🚀 OmniRoute — De gratis AI-gateway
**Gemaakt door [Diego Souza](https://github.com/diegosouzapw)**
## 💰 ~1,62B tokens / maand via gratis tiers van derden
> **Gebruik je eigen provideraccounts.** Dit is een geschat totaal van afzonderlijk in aanmerking komende gratis tiers van derden, geen tokentoewijzing van OmniRoute. Meld je aan, verkrijg waar nodig inloggegevens en verbind de providers die je kunt gebruiken; elke provider bepaalt zijn eigen limieten, beschikbaarheid en voorwaarden.
>
> Gratis tiers handmatig stapelen is lastig — tientallen SDK's, tientallen snelheidslimieten en geen idee hoeveel je daadwerkelijk tot je beschikking hebt. OmniRoute catalogiseert **465 gratis-tiervermeldingen verspreid over 34 terugkerende pool-sleutels** en berekent de tokenkop op basis van de **17 pools met een gepubliceerd positief maandelijks budget plus vijf Groq-limieten per model**, ontdubbeld op basis van gedeelde pools. Quota die pas beschikbaar worden na een regionale identiteitscontrole (vandaag: ModelScope) worden afzonderlijk weergegeven, +~6M na regionale identiteitsverificatie, en worden nooit bij de kop opgeteld. Het resultaat blijft zichtbaar op het dashboard (`/dashboard/free-tiers`).
> Geanimeerd overzicht van de livepagina `/dashboard/free-tiers`. Volledige methodologie (poolontdubbeling, credittiers, providervoorwaarden): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Deze cijfers worden elke twee weken opnieuw gecontroleerd aan de hand van de livecatalogus en **bewegen beide kanten op** — een provider beëindigt een gratis tier en het aantal daalt; er komt een nieuwe bij en het stijgt. We publiceren wat de catalogus daadwerkelijk berekent, nooit een naar boven afgerond best-case-scenario.
⭐ Geef de repo een ster als OMNIROUTE je heeft geholpen geld te besparen en je werk eenvoudiger te maken.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Word lid van de community
**👋 Volg de maintainer — ontvang 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, tips over providers, roadmap en ondersteuning → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brazilië](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portaal](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
# Nadat je een provider hebt verbonden, kopieer je je OmniRoute-sleutel uit 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 nieuwe installatie kan geen geschikte keyless-doelen hebben en een keyless provider kan clients van derden weigeren. Providers met de markering `tos: avoid`, waaronder Kiro, worden standaard uitgesloten van automatische routing; het verbinden van een account overschrijft die instelling niet. Raadpleeg de [Handleiding voor gratis tiers](docs/getting-started/FREE-TIERS-GUIDE.md) voordat je een provider kiest.📦 Direct te kopiëren quickstartscripts 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 versus 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.54**. Volledige geschiedenis in [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted`-routering** — de 20e combinatiestrategie slaat uitgeputte accounts over en kiest vervolgens uit de overige accounts in verhouding tot de resterende quota ÷ de belasting van lopende verzoeken, waarbij bestaande gesprekken aan hun account gekoppeld blijven. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Headless-modus** — `omniroute serve --headless` (of `OMNIROUTE_HEADLESS=1`) voert alleen de `/v1/*`-proxy-engine uit, waarbij het dashboard en dashboard-specifieke subsystemen zijn uitgeschakeld. → [Headless-modus](docs/guides/HEADLESS.md)
- **🔎 Modeldetectie** — `/v1/models` filtert op mogelijkheden, context, soort en tekst, en `POST /v1/models/query` retourneert een korte deterministische shortlist met dezelfde zichtbaarheid per sleutel. → [API-referentie](docs/reference/API_REFERENCE.md)
- **🔑 Routeringsbeheer per sleutel** — koppel een API-sleutel aan één model of combinatie met `forcedModel`, en voeg de modellen en combinaties van een sleutel atomair toe of verwijder ze (`/api/keys/{id}/access`). → [API-referentie](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Fijnmazigere PII-controles** — selectie per type, maximaal 20 gevalideerde aangepaste maskeringspatronen en detectietellers per type; maskering zelf blijft opt-in. → [Beveiligingsmaatregelen](docs/security/GUARDRAILS.md)
- **🌍 67 talen** — dashboard, documentatiespiegels en CLI, waarbij `npm run i18n:add-locale` in één opdracht overal een taal toevoegt. → [i18n-handleiding](docs/guides/I18N.md)
- **🎛️ OmniConductor** — inkomende A2A-delegatie naar je agentenpark, Conductor-vaardigheden op de Agent Card en een dashboardpaneel met Faro push-to-talk-spraakchat. → [A2A-server](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptieve toelating en bescherming tegen overbelasting** — zware chatverzoeken worden in de wachtrij geplaatst in plaats van met een 503-fout te eindigen, met atomische RPM-rolling leases per verbinding. → [Veerkrachthandleiding](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Canonieke volgorde van `/v1/models`** — één aaneengesloten, per provider gegroepeerd blok per provider (combinaties eerst), stabiel over elke catalogusbron heen. → [API-referentie](docs/reference/API_REFERENCE.md)
- **🗜️ Robuustere compressie** — standaard ingeschakelde bescherming tegen inflatie, Caveman-pakketten voor DE / FR / JA + Chinees (wényán), RTK-filters voor Gradle en .NET. → [Compressie](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Eerlijke kosten bij vaste tarieven** — providers met abonnementen of coding-plannen worden in kostenanalyses weergegeven als **$0**; budget, quota en routering blijven schattingen maken. → [API-referentie](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-routering** — verdeelt het quota van een gedeeld account eerlijk over gepoolde sleutels en maakt optimaal gebruik van capaciteit door ongebruikte delen uit te lenen. → [Veerkrachthandleiding](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI-/agentconfiguratie 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 doelomgevingen met een interactieve provider- en modelkiezer en favorieten per context. → [CLI-integraties](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Externe modus** — bedien een externe OmniRoute met tokens met beperkte scope (`connect` / `contexts` / `tokens`) plus een `antigravity` OAuth-helper voor VPS-installaties. → [Externe modus](docs/guides/REMOTE-MODE.md)
- **🧭 Slimmere automatische routering** — `auto/:`-combinaties, **Fusion** (modelpanel + beoordelaar), taakbewuste routering en overschrijvingen per verzoek voor model, modus en USD-budget. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Uitbreidbare compressie** — 12 combineerbare engines plus Compression Studios: LLMLingua-2, Ultra met twee niveaus, omniglyph, een getrouwheidscontrole per stap, GCF v3.2 en een editor voor slepen en herschikken. → [Compressie](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparante MITM-decryptie (TPROXY)** — CLI's vastleggen die proxy-omgevingsvariabelen negeren, met een CA per SNI en een installer voor de truststore. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Kostenmeting overal** — `X-OmniRoute-*`-headers voor kosten en gebruik op elk endpoint, een header voor besparingen door cache-HITs en USD-uitgavenquota per sleutel. → [API-referentie](docs/reference/API_REFERENCE.md)
- **🧠 Geheugen onder jouw controle** — standaard uitgeschakeld, opt-in int8-vectorquantisatie plus getypeerd verval, en `x-omniroute-no-memory` per verzoek. → [Geheugen](docs/frameworks/MEMORY.md)
- **🛡️ Beveiliging** — bescherming tegen promptinjectie op elke LLM-route (red-team-suite), opt-in beveiliging voor het maskeren van inloggegevens (redigeert gelekte API-sleutels en geheimen in beide richtingen), gratis webzoekopdrachten via DuckDuckGo als laatste redmiddel en een optionele OIDC-aanmeldingspoort voor het dashboard (aanmelden met een wachtwoord blijft altijd beschikbaar). → [Beveiligingsmaatregelen](docs/security/GUARDRAILS.md)
- **🖼️ Nieuwe endpoints** — `/v1/ocr` (Mistral OCR) en `/v1/audio/translations` (Whisper-achtig) completeren het media-aanbod. → [API-referentie](docs/reference/API_REFERENCE.md)
- **🎨 Generatie van afbeeldingen, video en audio** — één API voor media: xAI Grok Imagine en Novita AI-video, ComfyUI, Magnific, Adobe Firefly, Segmind en spraakproviders zoals ElevenLabs. → [API-referentie](docs/reference/API_REFERENCE.md)
- **🌍 Implementatie en beheer** — reverse-proxy-`basePath`, automatische detectie van de browsertaal, apparaatregistratie per sleutel, MITM-vertrouwen zonder root en zh-TW-lokalisatie. → [Omgeving](docs/reference/ENVIRONMENT.md)
- **🤝 Meer providers en agents** — cloudagents (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) met browser- en OAuth-aanmelding, een volwaardige Ollama-kaart, Claude Opus 5 en Sonnet 5, officiële samenwerking met Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… en een vernieuwde **388-providercatalogus**. → [Providers](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Transparantie van routering** — elke respons bevat een `X-OmniRoute-Decision`-header met de strategie, provider en latentie die de respons hebben geleverd; een nieuwe `cache-optimized`-combinatiestrategie en de `cacheAffinity`-factor van Auto-Combo sturen herhaalde verzoeken terug naar de verbinding met het gecachte prefix; en een alleen-lezen endpoint `/v1/auto-combo/{channel}/candidates` maakt de live kandidatenpool van een `auto/*`-kanaal zichtbaar. → [Auto-Combo](docs/routing/AUTO-COMBO.md).
- **⚡ Lokale prestaties & infrastructuur** — lokale Redis met één klik, relay-deployers voor Cloudflare Workers / Deno Deploy, Bifrost & Mux als bewaakte ingesloten services. → [Embedded Services](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Ook inbegrepen** — pluginframework + marketplace, Omni/Agent/GitHub-skillsframeworks, Obsidian-kluisintegratie (22 MCP-tools), OpenAI-compatibele Batch- & Files-API's, semantische responscache, gamification met ranglijsten, ACP-agentdetectie (15 ingebouwde agents), geplande logexport naar BigQuery, parallelle multi-model-fan-out via `auto/chaos`, een Telegram-botbridge, een ingebouwde versiebeheerder en gratis-provider-ranglijsten op basis van LMArena-ELO. → [Documentatie](docs/README.md)
## 🤖 Compatibele CLI's & Codeeragenten
> Eén configuratie — `http://localhost:20128/v1` — en **elke** AI IDE of CLI draait op gratis & goedkope modellen.
**Start elke ondersteunde CLI via OmniRoute met één commando** — geen configuratiebestanden geschreven,
referenties per proces geïnjecteerd, Qwen/Gemini krijgen een tijdelijke geïsoleerde home:
```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 provider+model interactief en schrijf de eigen configuratie van de tool:
omniroute configure codex # ook: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Elk commando respecteert de actieve remote context (`omniroute connect `), `--dry-run`
toont een voorbeeld van de exacte env/args zonder uit te voeren, en `--api-key-env NAME` houdt geheimen uit
je shellgeschiedenis. → [CLI-integraties](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 388 AI-providers — 153 in de catalogus als gratis gemarkeerd
> **388 geregistreerde providers** verspreid over de canonieke collecties voor chat, media, zoeken, lokaal, cloud-agents en systemen, waaronder **153 met `hasFree: true`-metadata voor ontdekking**. Het chatmodelregister omvat **239 providers / 3.059 unieke provider-modelparen / 1.475 onbewerkte model-ID's**; de afzonderlijke catalogus voor gratis budgetten bevat **471 rijen per model**, **34 terugkerende pools** en **52 terugkerende/keyless providers die voor altijd gratis zijn**. Dit zijn opzettelijk verschillende noemers; definities en pool-ontdubbeld berekeningen staan in de [Providerreferentie](docs/reference/PROVIDER_REFERENCE.md) en [Gratis niveaus](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 geladen uit de providercatalogus van het dashboard. 📖 [Providerreferentie](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Voor altijd gratis — $0, geen kaart nodig
OpenCode Zen DeepSeek V4, Nemotron 3 Geen tokenlimiet
Kilo Code Automatische router, Tencent Hy3 Voor altijd gratis
Requesty GPT-OSS 120B, Nemotron Voor altijd gratis
SiliconFlow DeepSeek V3.2 / R1 Gratis abonnement
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
Cloudflare AI 50+ modellen 10K neuronen/dag
NVIDIA NIM GLM, MiniMax ~40 RPM gratis
Cerebras GLM 4.7, GPT-OSS Eenmalig tegoed van $5; kaart vereist
### 🧩 Nieuw: OmniRoute in de Copilot chat van VS Code
> Geen nieuwe zijbalk, geen nieuwe chat UI - elk model OmniRoute serveert, verschijnt rechtstreeks in de**Copilot Chat-modelkiezer die u al gebruikt** . Sinds VS Code 1.122 werken providermodellen zonder een GitHub -aanmelding of een Copilot abonnement: agentmodus, toolaanroepen en vision, gratis.
Installeer de** [OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** extensie, wijs deze naar uw OmniRoute server (standaard `localhost:20128`) en open vervolgens Copilot Chat → modelkiezer →** Modellen beheren…** →**OmniRoute** .
Vanuit de editor: open het** Extensies** bekijken, zoeken** "OmniRoute"** , klik** Installeren** - werkt op beide winkels op dezelfde manier. Bron, problemen en het publicatie-runbook live op [diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [VS Code Copilot Chatgids](docs/guides/VSCODE-COPILOT.md) — installatie, wat de kiezer laat zien, dashboard-in-een-tabblad, probleemoplossing
### 🎩 Nieuw: OmniRouteTray — uw toegangspoort, levend in de menubalk
> `omniroute serve` is het gelukkigst als hij altijd aanstaat.** [OmniRouteTray](https://github.com/zoispag/omniroute-tray)** verandert dat in een set-and-forget-menubalk-app voor macOS: het start de server, houdt hem in leven bij opnieuw opstarten, werkt hem op zijn plaats bij en zet je live tokenbudget met één klik weg -** geen terminalvenster opengelaten, geen `npm install -g omniroute` om op te passen.**
Gebouwd met [Tauri v2](https://v2.tauri.app/) (een Rust-kern ter grootte van een afrondingsfout), levert het zijn eigen ondertekende Node 24-runtime en beheert het een OmniRoute -installatie die eigendom is van een app, zodat het nooit tegen je globale `node`/`bun` vecht. Het** deelt uw bestaande `~/.omniroute/` configuratie en database** – dus het is dezelfde OmniRoute die je al loopt, alleen met een hoed op. 🎩
Wat het doet
Hoe
🟢 Houdt toezicht op de server
Spawnt omniroute serve , gebruikt een reeds draaiende instance in plaats van deze te dupliceren
📊 Live gebruik in één oogopslag
Quotumbalken van providers, Claude session/weekly -limieten met aftellingen voor resetten, kostenoverzicht over 30 dagen
🔄 Automatische updates
Gefaseerde installatie, atomic swap, terugdraaien bij fouten — altijd op de nieuwste release
🚀 Start bij inloggen
Optioneel starten bij inloggen; alleen in de lade, geen dockpictogram
🩺 Dokter & logt
Diagnostiek met één klik en toegang tot serverlogboeken
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Liever downloaden? Pak de nieuwste .dmg van
Geeft . Bron, problemen en build
documenten live op zoispag/omniroute-tray.
💛 Een gemeenschapsproject 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 automatisch 15–95% tokens
### 📖 Hoe het werkt — pipeline, architectuur en besparingsberekening
De standaard gestapelde combinatie voert `RTK → Caveman` uit. Wanneer beide op dezelfde tool-/contextpayload werken, 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 gegevens worden **altijd beschermd** door de behoud-engine.
> **Waarom veel tokens gebruiken als een paar tokens volstaan?** Elk verzoek gaat **transparant** door de compressiepipeline van OmniRoute — zonder wijzigingen aan de client. Het is nu een **stack van 12 combineerbare engines** die in volgorde worden uitgevoerd en per routeringscombinatie kunnen worden gecombineerd en afgestemd — voortbouwend op ideeën uit [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 met 12 engines
Engines worden in pipelinevolgorde uitgevoerd; elke engine kan onafhankelijk worden in- en uitgeschakeld en per combinatie worden geconfigureerd:
#
Engine
Wat deze doet
1
Session-Dedup
Verwijdert inhoud die in meerdere beurten wordt herhaald (content-addressed, beurtoverschrijdend)
2
CCR
Archiveert grote blokken achter ophaalmarkeringen, die op verzoek worden opgehaald
3
Lite
Trimt witruimte en afbeeldings-URL's (latentiearme basislijn)
4
RTK
Slim filteren, dedupliceren en afkappen van toolresultaten (op de opdracht afgestemd)
5
Responses Tool Output
Lossless-first JSON + begrensde diagnostische compressie voor shell-/patch-/search-/builduitvoer (Responses API)
6
Headroom
Lossless tabulaire compactie van JSON-arrays (~30%) via een meegeleverde GCF-codec
7
Relevance
Extractieve zinsbeoordeling op basis van de laatste gebruikersquery
8
Caveman
Regelgebaseerde compressie van proza (~65–75% op uitvoer)
9
Aggressive
Samenvatting + progressieve veroudering van oude beurten
10
LLMLingua-2
ML-semantische snoeiing via MobileBERT ONNX — veilig voor code, asynchroon
11
Ultra
Heuristische tokensnoeiing met een optionele small-model-tier (SLM)
12
OmniGlyph
Experimentele context-als-afbeelding-codering voor gemeten Claude Fable 5 op de directe Anthropic-wire; GPT 5.6-transformers blijven fail-closed in afwachting van providerbevestigingen. Vier compressieprofielen (aggressive standaard, balanced, coding-safe, passthrough) (meest agressief; opt-in)
Codeblokken, URL's en gestructureerde gegevens worden **altijd byte-perfect behouden**. **Voorinstellingen met één klik** combineren de engines:
Modus
Besparing
Het meest geschikt voor
🪶 Lite
~15%
Altijd ingeschakelde veilige standaard
🪨 Standard (Caveman)
~30%
Dagelijks programmeren
⚡ Aggressive
~50%
Lange sessies met veel tools
🔥 Ultra
~75%
Maximale besparing
🧰 RTK
60–90%
Shell-/test-/build-/gituitvoer
🔗 Stacked (RTK → Caveman)
78–95%
Gemengde prompts + toollogs
**Praktijkvoorbeeld — Standard-modus:**
> **Voor (69 tokens):** _"De reden dat je React-component opnieuw wordt gerenderd, is waarschijnlijk dat je bij elke rendercyclus een nieuwe objectreferentie aanmaakt. Wanneer je een inline-object als prop doorgeeft, ziet React's oppervlakkige vergelijking het elke keer als een ander object, waardoor een nieuwe render wordt geactiveerd. Ik raad aan useMemo te gebruiken om het object te memoizen."_
>
> **Na (19 tokens):** _"Nieuwe objectref bij elke render. Inline-objectprop = nieuwe ref = opnieuw renderen. Verpak in useMemo."_
>
> **Hetzelfde antwoord. 72% minder tokens. Geen enkel verlies aan nauwkeurigheid.** ✅
**PT-BR-voorbeeld — [Troglodita](https://github.com/leninejunior/troglodita)-modus:**
> **Voorheen (42 tokens):** _"Het probleem is dat de component opnieuw wordt gerenderd omdat er in elke rendercyclus een nieuwe objectreferentie wordt aangemaakt. Ik zou aanraden `useMemo` te gebruiken."_
>
> **Daarna (12 tokens):** _"Opnieuw renderen: nieuwe ref per cyclus (inline-object opnieuw aangemaakt). `useMemo` gebruiken."_
>
> **Hetzelfde antwoord. ~70% minder tokens. Technische precisie intact.** ✅
### 🎚️ Verder dan de engines — uitvoerstijlen, de adaptieve draaiknop en beheer per verzoek
De 12 bovenstaande engines verkleinen wat erin gaat. Drie extra lagen bepalen **hoe**, **wanneer** en wat eruit komt:
- **🪄 Uitvoerstijlen** _(sturing op de uitvoeras)_ — voegen deterministische, cacheveilige instructies voor het vormgeven van antwoorden toe; combineerbaar, elk met intensiteit `lite` / `full` / `ultra`. Een stijl toevoegen is één regel in het register:
- **Beknopte tekst** — laat opvulling / lidwoorden / nuanceringen weg; houd de technische inhoud exact.
- **Minder code** — YAGNI van de "luie senior ontwikkelaar": de kleinst werkende wijziging, zonder niet-gevraagde steigers.
- **Ponytail (luie senior ontwikkelaar)** — beklim de YAGNI-ladder, verhelp de hoofdoorzaak, maak de kleinst werkende diff.
- **Ik heb ADHD (actie eerst)** — de volgende actie staat voorop, stappen zijn genummerd, één concrete volgende stap, geen inleiding.
- **Beknopt CJK (文言)** — ultrabeknopte stijl in klassiek Chinees (locale-beperkt tot `zh`).
- **🎯 Adaptief contextbudget** _(de draaiknop)_ — in plaats van één aan/uit-tokenlimiet worden de goedkoopste engines met het minste verlies stapsgewijs opgeschaald, alleen zover als nodig is om binnen het contextvenster van het model te passen. Beleid: `reserve-output` (standaard, modelbewust) · `percentage` · `absolute`. Modus: `floor` (past gegarandeerd) · `replace-autotrigger` (jouw expliciete keuze wint) · `off` (verouderde drempel).
- **🎛️ Waar compressie wordt bepaald** _(prioriteit, hoog → laag)_ — header `x-omniroute-compression` per verzoek › override van routing-combinatie › actief benoemd profiel › adaptief / automatisch triggeren › paneelstandaard › uit. Het toegepaste plan wordt teruggestuurd in de responsheader `X-OmniRoute-Compression: ; source=`.
Trigger automatisch op basis van een tokendrempel, zet de adaptieve draaiknop aan, leg een benoemd profiel vast, stel dit eenmalig per verzoek in of wijs een pipeline toe per routing-combinatie — wat het beste bij de werklast past. Een opt-in offline **eval-harnas** (`npm run eval:compression`) beoordeelt getrouwheid versus besparing op een vastgezette corpus voordat je een wijziging promoveert.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Snel aan de slag
**1) Installeren en uitvoeren**
```bash
npm install -g omniroute
omniroute
```
> 💡 Zie je `npm warn ERESOLVE` of waarschuwingen over peer-dependencies? [Die zijn onschadelijk](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Gebruik je npm 11 of nieuwer?** npm kan scripts voor de levenscyclus van pakketten blokkeren, tenzij ze zijn toegestaan. De `postinstall` van OmniRoute (`node scripts/build/postinstall.mjs`) is vereist om de native runtimebestanden voor te bereiden. Sta bij een globale installatie de pakketten toe die in de waarschuwing van npm worden genoemd. Voor de pakketset die door OmniRoute 3.8.54 wordt gerapporteerd:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Als je deze toestemmingslijst wilt hergebruiken voor toekomstige globale installaties, configureer je die éé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 afhankelijkheden kan tussen releases veranderen; als npm een andere lijst rapporteert, gebruik je de pakketnamen uit die waarschuwing. Door een pakket toe te staan, mogen de installatiescripts ervan worden uitgevoerd.
> **Gebruik je Gemini Web of een andere provider met webcookies?** Het npm-pakket bevat
> Playwright, maar niet het Chromium-binaire bestand. Bekijk de
> [Playwright Chromium-installatie](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> voordat je voor het eerst een verzoek naar een webprovider verstuurt.
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 jouw gebruikssituatie passen → voeg de API-sleutel toe of doorloop de accountprocedure. Voor gratis niveaus kan registratie, goedkeuring of een betaalmethode vereist zijn. Bekijk de [Handleiding voor gratis niveaus](docs/getting-started/FREE-TIERS-GUIDE.md); beschikbaarheid zonder sleutel is niet gegarandeerd en providers met de markering `tos: avoid` worden standaard uitgesloten van `auto`.
**3) Wijs je programmeertool naar OmniRoute**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose provider/model)
```
**4) Controleer of alles werkt**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Je zou je verbonden modellen moeten zien. 🎉 Dat is alles — ga coderen; OmniRoute routeert en schakelt automatisch voor je over.
Als je client geen aangepaste headers kan verzenden, biedt OmniRoute ook compatibiliteitsaliassen met tokens:
```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 toevoegen. Authenticatie via headers blijft de aanbevolen modus.
## 📦 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) |
wreq-js — JA3 / JA4 TLS-fingerprintimitatie, proxy met 3 niveaus
Veerkracht
Circuit breaker, exponentiële backoff, bescherming tegen de thundering herd, automatisch zelfherstel via combinaties
Logging
pino — gestructureerde JSON-logs met requestcontext
Testen
Node.js test runner + Vitest — 60.000+ statische testdeclaraties in meer dan 8.400 bijgehouden testbestanden (unit, integratie, E2E, beveiliging, ecosysteem)
Strategie voor testdekking van meer dan 60.000 statische testdeclaraties verspreid over meer dan 8.400 bijgehouden testbestanden
# ⭐ Belangrijkste bijdragers
> OmniRoute wordt gevormd door een gepassioneerde open-sourcecommunity. Deze personen hebben uitzonderlijke bijdragen geleverd die rechtstreeks van invloed zijn op de kwaliteit, stabiliteit en het bereik van het project. **Bedankt.**
### Externe bijdragers op basis van samengevoegde pull requests
Momentopname gemaakt op 2026-11-03 03:01:19 UTC met de actuele tip release/v3.8.5305bc048d6c. De gepagineerde GitHub GraphQL-momentopname bevat 9.947 samengevoegde PR's: 4.130 door de eigenaar van de repository, 240 door Dependabot, 6 door andere bots/apps en 5.571 externe PR's van 883 unieke bijdragers. “Gewijzigde regels” zijn GitHub-toevoegingen + verwijderingen en omvatten gegenereerde bestanden, lockfiles, catalogi, vertalingen en documentatie; het gaat om wijzigingen, niet om door auteurs geschreven LOC. 53 PR's rapporteren GitHub-diffs van meer dan 500.000 regels (bijvoorbeeld #13399, één enkele provider-toevoeging, vermeldt 2.347 gewijzigde bestanden), waardoor verschillende bovenstaande totalen hoger uitvallen. Gelijke standen worden gezamenlijk gerangschikt.
### Aan GitHub toegeschreven commits
Opnieuw gecontroleerd op 2026-11-03 02:09:16 UTC: GitHub-toegeschreven commits zoals gerapporteerd door de Contributors API van de repository voor de standaardbranch release/v3.8.53. De API retourneerde 903 identiteiten (429 gebruikers, 2 bots, 472 anonieme identiteiten); deze tabel sluit de maintainer, bots en anonieme identiteiten uit en behoudt gelijke standen. Deze rangschikking verschilt zowel van de bovenstaande rangschikking van gemergede PR's als van de onderstaande inventarisatie van Git-metadata.
> 🙏 De functies, bugfixes en infrastructuurverbeteringen van deze bijdragers vormen een **essentieel onderdeel** van wat OmniRoute betrouwbaar en rijk aan functies maakt. Elk pullrequest, elke testcase en elk i18n-vertaalbestand is belangrijk. 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.
## 👥 1.000+ Bijdragers
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Gecontroleerd op 2026-11-02 bij de live release/v3.8.53-tip 1c7135e0fb (7.972 commits): 1.074 genormaliseerde menselijke Git-identiteiten — 759 verschijnen als commit-auteurs (waaronder de maintainer) en 315 alleen in expliciete Co-authored-by-trailers. De telling past .mailmap toe, vergelijkt e-mailadressen hoofdletterongevoelig, voegt numerieke en gewone GitHub-noreply-adressen alleen samen wanneer ze dezelfde gebruikersnaam coderen, sluit 29 bot-/agent-/service-/placeholder-identiteiten uit en voegt gewone e-mailadressen niet samen enkel omdat hun weergavenamen overeenkomen. De audit van 2026-08-24 publiceerde 639; wanneer deze methode opnieuw wordt uitgevoerd op de basis van die audit, ac02c5b42f, levert dat 619 op. De toename komt dus door nieuwe bijdragers en niet door een soepelere methode.
### Bijdragen
1. Fork de repository
2. Maak een branch vanaf de **actieve** `release/vX.Y.Z`-tip (niet `main`) — zie [Branching- 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 pullrequest met **base = die `release/vX.Y.Z`-branch**
Zie [CONTRIBUTING.md](CONTRIBUTING.md) voor gedetailleerde richtlijnen.
### Een nieuwe versie uitbrengen
```bash
# Een release maken — npm publish gebeurt automatisch
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Sterren
## 🌍 StarMapper
## 🙏 Dankbetuigingen
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 daar werd elk subsysteem hieronder geïnspireerd door een opensourceproject dat er eerder was. Elk project heeft een concreet onderdeel van OmniRoute gevormd. Dit is onze dank aan al deze projecten. 🙏
> ⭐ aantallen sterren geverifieerd via de REST API van GitHub op 3 november 2026 — geef deze projecten een ster. De aantallen zijn een exacte momentopname op een bepaalde datum en zullen uiteraard veranderen.
### 🧬 Afkomst & gateway
De AI-gateway waarvan de openbare prijsdataset onze synchronisatie voor kostenregistratie voedt en waarvan het model voor providernormalisatie onze routering heeft geïnformeerd.
MIT-broncode aangepast voor de meegeleverde ChatGPT Web → Codex Responses-bridge, inclusief adapters voor browsersessies, response-framing, gebruik en webzoeken.
Patronen overgezet naar streamherstel, aliassen zonder denkstappen, fallback-webzoeken, limieten met een schuivend venster, logredactie en geharde launcherflows.
Standaardinstellingen voor transformaties die compatibel zijn met Claude Code en gedrag rond billing-headers gegeneraliseerd naar OmniRoute's configuratiegestuurde bridge.
De modeltoewijzingen voor Grok, de fake-TypeError Statsig-generator, de aanvraag- en apparaatstandaarden en de NDJSON-responseprocessor ervan zijn inhoudelijk aangepast voor OmniRoute's Grok Web-executor.
De belangrijkste transitieve broncode achter grok2api-merged; de implementaties voor modellen, headers, payloads, Statsig en verwerking ervan zijn behouden in de Grok Web-afkomst.
De onderliggende MIT-broncode voor Grok-payloads en apparaatstandaarden, de Statsig-generator en de processor voor result.response, die via TQZHR en grok2api-merged zijn overgenomen.
Een transitieve bron die door grok2api-merged wordt vermeld voor de proxy-poollaag; OmniRoute behoudt deze vermelding van de afkomst, maar claimt geen port van een proxy-pool in zijn begrensde Grok Web-executor.
De cookie-geauthenticeerde Grok-proxy en het streamingpatroon met result.response.token ervan hebben het Grok Web-transport van OmniRoute geïnformeerd.
De oorspronkelijke Grok Web-implementatie is geraadpleegd voor het ontwerp van de HTTP-/browser-upstream; het directe HTTP-pad is afgeleid van GrokProxy, dus er wordt geen onafhankelijke codeport geclaimd.
Het virale project "why use many token when few token do trick" — de filosofie in caveman-taal vormt de basis voor onze standaardcompressiemodus en meer dan 30 regels voor opvulling/verdichting.
Compressie van opdrachtuitvoer met hoge prestaties — inspireerde onze RTK-engine, JSON-filter-DSL, herstel van onbewerkte uitvoer en de gestapelde RTK → Caveman-pijplijn.
Tokencompressie voor PT-BR — vormt de basis voor ons pt-BR-taalpakket: vermindering van pleonasmen en verwijdering van opvulwoorden, afgestemd op de grammatica van het Braziliaans-Portugees.
De virale vaardigheid van de "luie senior developer" voor YAGNI-codering — inspireerde onze less-code-uitvoerstijl: aansturing op de kleinst mogelijke werkende wijziging die _gegenereerde_ code beperkt (de tegenhanger op de uitvoeras van Cavemans beknopte proza).
Inhoudsbewuste compressie van uitvoer per bestandstype met afbreken bij fouten — bevestigde onze dispatch per type en het overslaan bij minimale winst.
Kolomgebaseerde Rust-JSON + ophalen op basis van inhoudsadressen + deduplicatie over meerdere berichten — bevestigde ons ontwerp van de headroom/ccr/session-dedup-engines en de cache-stabiele invariant dat de "gecomprimeerde vorm positieonafhankelijk is".
Toolkit voor de TypeScript Compiler API — inspireerde onze parsergebaseerde verwijdering van opmerkingen, waarbij tekenreeks-, template- en reguliere-expressieliterals 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, geheimmaskering en header-sanitisatie — zijn vervangen door onafhankelijke clean-room-implementaties op basis van openbare protocolstandaarden. De twee host-passthrough-oppervlakken (passthrough.ts en _internal/bypass.cjs) blijven interne OmniRoute-implementaties die afzonderlijk zijn geclassificeerd; ze zijn niet herschreven als onderdeel van die vervanging.
Transparante proxyroutering per proces — inspireerde onze crashveilige MITM-afbouw, socket-inactiviteitstime-outs, procesattributie via /proc en TPROXY-captatie.
Een samengestelde lijst van bibliotheken met veilige standaardinstellingen die richting geeft aan onze beveiligingskeuzes (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
De accountbewuste modelremapping, validatie van uitvoerbare paden en het gedrag van plannaamlabels vormden de basis voor OmniRoute's Antigravity-runtime.
Identificeerde het quotumoppervlak van Grok Build; OmniRoute heeft vervolgens onafhankelijk de live wire-indeling geverifieerd en gecorrigeerd.
## 📄 Licentie
MIT-licentie - zie [LICENSE](LICENSE) voor meer informatie.
---
**[⬆ Terug naar boven](#-omniroute)** · Gebouwd met ❤️ voor de open-source AI-community.
Gemaakt door Diego Souza · OmniRoute v3.8.54 · Node ≥22.22.2 · MIT-licentie · omniroute.online