## 💰 ~1,62 Mrd. Tokens / Monat über kostenlose Kontingente von Drittanbietern
> **Verwende deine eigenen Anbieterkonten.** Dies ist eine geschätzte Gesamtsumme aus separat verfügbaren kostenlosen Kontingenten von Drittanbietern und kein Token-Kontingent von OmniRoute. Registriere dich, beschaffe dir bei Bedarf Zugangsdaten und verbinde die Anbieter, die du nutzen kannst; jeder Anbieter legt seine eigenen Limits, seine Verfügbarkeit und seine Bedingungen fest.
>
> Kostenlose Kontingente manuell zu bündeln ist mühsam — Dutzende SDKs, Dutzende Ratenbegrenzungen und keine Klarheit darüber, wie viel dir tatsächlich zur Verfügung steht. OmniRoute katalogisiert **489 Einträge für kostenlose Kontingente über 35 wiederkehrende Pool-Schlüssel hinweg** und berechnet die angegebene Token-Gesamtsumme anhand der **17 Pools mit einem veröffentlichten positiven Monatsbudget sowie fünf modellspezifischen Groq-Limits**, wobei gemeinsam genutzte Pools dedupliziert werden. Kontingente, die erst nach einer regionalen Identitätsprüfung verfügbar werden (derzeit: ModelScope), werden separat ausgewiesen: +~6 Mio. nach regionaler Identitätsprüfung. Sie werden niemals zur Gesamtsumme hinzugerechnet. Das Ergebnis bleibt im Dashboard (`/dashboard/free-tiers`) sichtbar.
> Animierte Zusammenfassung der Live-Seite `/dashboard/free-tiers`. Vollständige Methodik (Pool-Deduplizierung, Guthabenstufen, Anbieterbedingungen): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Diese Zahlen werden alle zwei Wochen anhand des Live-Katalogs erneut geprüft und **können sich in beide Richtungen verändern** — beendet ein Anbieter sein kostenloses Kontingent, sinkt die Zahl; kommt ein neues hinzu, steigt sie. Wir veröffentlichen stets das, was der Katalog tatsächlich berechnet, niemals einen aufgerundeten Bestwert.
⭐ Gib dem Repository einen Stern, wenn OMNIROUTE dir geholfen hat, Geld zu sparen und deine Arbeit zu erleichtern.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Tritt der Community bei
**👋 Folge dem Maintainer — erfahre als Erstes von neuen Anbietern, Releases und Tipps:**
[](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)
**Fragen, Anbietertipps, Roadmap und Support → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Weltweit](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasilien](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)**
## 📈 Das Gateway wächst weiter
## 🆓 Installieren, einen Anbieter verbinden und dann über einen Endpunkt routen
```bash
# Nachdem Sie einen Anbieter verbunden haben, kopieren Sie Ihren OmniRoute-Schlüssel aus 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":"Hallo!"}]}'
```
`auto` benötigt eine geeignete Route. Bei einer Neuinstallation sind möglicherweise keine geeigneten schlüssellosen Ziele vorhanden, und ein schlüsselloser Anbieter kann Drittanbieter-Clients ablehnen. Anbieter, die mit `tos: avoid` gekennzeichnet sind, einschließlich OpenCode Free und Kiro, werden standardmäßig vom automatischen Routing ausgeschlossen; das Verbinden eines Kontos setzt diese Einstellung nicht außer Kraft. Lesen Sie den [Leitfaden zu kostenlosen Tarifen](docs/getting-started/FREE-TIERS-GUIDE.md), bevor Sie einen Anbieter auswählen.📦 Sofort kopierbare Schnellstartskripte für **Python, Node.js, PHP und cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Das Versprechen
# 🤔 Warum OmniRoute?
## 🤝 Unterstützt von unseren Open-Source-Freunden
> **Möchten Sie sich als Open-Source-Freund anschließen?** Dies sind die Unternehmen, die Open Source unterstützen und dabei helfen, OmniRoute voranzubringen — und wir legen öffentlich offen, wofür jedes Token eingesetzt wird, das sie uns zur Verfügung stellen. Kontaktieren Sie uns: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Vielen Dank an Kimi (Moonshot AI), unseren ersten Open-Source-Freund, für die Unterstützung dieses Projekts! Kimi ist das KI-Labor hinter den Open-Weight-Modellfamilien K2 und K3 — Kimi K3 bietet ein Kontextfenster mit 1 Mio. Token, native Bildverarbeitung und Programmierfähigkeiten auf Spitzenniveau zu einem Bruchteil der Preise geschlossener Modelle und funktioniert sofort mit Claude Code, Codex und jedem von OmniRoute unterstützten Programmierwerkzeug.
Was durch Kimis Unterstützung ermöglicht wird: Kimis API-Guthaben finanzieren die KI-validierte Release-Pipeline von OmniRoute — die Phase Merge-Validierung, unterstützt von Kimi K3, die jeden Pull Request vor der Veröffentlichung prüft — sowie die tägliche Funktionsentwicklung. Erstklassige Kimi-Unterstützung ist auf beiden Wegen verfügbar: über die direkte Kimi API (kimi-k3) und den Kimi Code-Programmiertarif (OAuth und API-Schlüssel). OmniRoute ist außerdem das erste brasilianische Open-Source-Projekt im Unterstützungsprogramm von Kimi. Erhalten Sie einen Kimi-API-Schlüssel mit 15 % zusätzlichem Guthaben →
Cheaper Inference cheaperinference.com
Vielen Dank an Cheaper Inference, einen Open-Source-Freund von OmniRoute, für die Unterstützung dieses Projekts! Cheaper Inference ist ein nach Kosten sortiertes Gateway, das 42 Spitzenmodelle — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok und MiniMax — über einen einzigen OpenAI-kompatiblen Endpunkt weiterverkauft und jede Anfrage an den günstigsten geeigneten Anbieter weiterleitet, ohne jemals mehr als den Listenpreis des Modellherstellers zu berechnen.
Erstklassige Unterstützung in OmniRoute: Chat Completions, der native Endpunkt /v1/responses, Bildverarbeitung, Tool-Aufrufe und 3 Bildmodelle (grok-imagine, nano-banana-pro, nano-banana-2, erreichbar als cheaperinference/<model>). API-Schlüssel erhalten →
Mit aff=omniroute gekennzeichnete Links sind Partnerlinks. Sie finanzieren das Projekt, ohne dass Ihnen zusätzliche Kosten entstehen. 🎟️ Affiliate-Aktion — kostenlose Registrierungsgutscheine von Anbietern, die uns nicht sponsern (zum Aufklappen anklicken)Dieser Abschnitt ist ausschließlich für Empfehlungs-/Gutscheincodes vorgesehen. Gesponserte Partnerschaften finden Sie oben unter 🤝 Unterstützt von unseren Open-Source-Freunden. OmniRoute unterhält keine Sponsoringbeziehung oder Partnerschaft mit den hier aufgeführten Anbietern — dies sind öffentliche Gutscheine, die jeder nutzen kann.
AgentRouter agentrouter.org
AgentRouter — Affiliate-Registrierung · $100 kostenloses Guthaben bei der Registrierung (kostenloser Server, rechnen Sie mit höherer Latenz — am besten für Tests, nicht für die Produktion). Erstklassige Unterstützung in OmniRoute seit v3.8.50: Chat Completions, das Anthropic-kompatible Übertragungsformat und der OpenAI-kompatible Pfad. Zu den verfügbaren Modellen gehören claude-opus-4-8, claude-opus-5, gpt-5.6-sol und weitere. $100 sichern →
⚠️ Affiliate-Link — OmniRoute unterhält keine Sponsoringbeziehung oder Partnerschaft mit diesem Anbieter.
Kennen Sie einen weiteren Anbieter mit einem großzügigen kostenlosen Registrierungsgutschein, von dem OmniRoute-Nutzer profitieren? Eröffnen Sie ein Issue, und wir fügen ihn hier hinzu.
## 🎯 Combos — Das Flaggschiff
> Ein **Combo** ist eine Kette von Modellen, zwischen denen OmniRoute **automatisch** routet. Wenn das Kontingent erschöpft ist, ein Anbieter ausfällt oder die Kosten stark steigen, kann das Combo zum nächsten geeigneten, funktionsfähigen Modell wechseln. 🛡️
### ⚡ Keine Konfiguration — einfach `auto` verwenden
Es muss kein Combo erstellt werden. Setze dein Modell auf `auto` (oder eine Variante), und OmniRoute erstellt aus deinen verbundenen Anbietern ein virtuelles Combo, das live bewertet wird:
Modell-ID
Wofür es optimiert
auto
🎯 Ausgewogener Standard (LKGP — bleibt bei deinem letzten zuverlässigen Anbieter)
auto/coding
🧑💻 Qualitätsorientierte Gewichtung für die Codegenerierung
auto/fast
⚡ Niedrigste Latenz zuerst
auto/cheap
💰 Niedrigste Kosten pro Token zuerst
auto/offline
🔋 Größter Spielraum bei Kontingenten und Ratenbegrenzungen zuerst
auto/smart
🔭 Qualität zuerst + 10 % Exploration, um bessere Modelle zu entdecken
auto/lkgp
📌 Explizite Bindung an den letzten bekanntermaßen zuverlässigen Anbieter
auto/chaos
🧪 Parallele Verteilung an ein Panel von Modellen (eines pro Anbieter, standardmäßig 5), gibt eine Antwort zurück; ein Upstream-Aufruf pro Panel-Modell, keine Fehlerinjektion
##
### 🔀 Oder erstelle dein eigenes — 19 Routing-Strategien
Alle **19** Strategien — pro Combo-Schritt frei kombinierbar:
#
Strategie
Funktionsweise
1
priority
Geordnete Liste mit erstem Ziel — jedes vollständig ausschöpfen, bevor das nächste verwendet wird 🥇
2
fill-first
Das Kontingent jedes Ziels vollständig ausschöpfen, bevor zum nächsten gewechselt wird
3
weighted
Gewichtete Zufallsauswahl anhand der Gewichtung pro Ziel
4
round-robin
Ziele der Reihe nach zyklisch durchlaufen
5
p2c
Zufälliger Lastenausgleich nach dem Power-of-Two-Choices-Prinzip
6
least-used
Das Ziel mit der aktuell geringsten Auslastung auswählen
7
random
Gleichverteilte Zufallsauswahl (ohne Duplikate)
8
strict-random
Zufallsauswahl, ohne Wiederholungen zu entfernen 🎲
9
cost-optimized
Kosten in $ pro Anfrage anhand aktueller Katalogpreise minimieren 💸
10
headroom
Das Ziel mit dem größten verbleibenden Kontingent auswählen
11
reset-window
Das Ziel bevorzugen, dessen Kontingentfenster am frühesten zurückgesetzt wird
12
reset-aware
Nach Rücksetzzeit des Kontingents ordnen — kurze Zeitfenster zuerst 📊
13
context-relay
Kontext bei langen Unterhaltungen zwischen Zielen übergeben 🧠
14
context-optimized
Die beste Übereinstimmung für die aktuelle Kontextgröße auswählen
Letzter bekanntermaßen zuverlässiger Pfad — bindet an den letzten erfolgreichen Anbieter und greift anschließend auf Regeln zurück
17
auto
Live-Bewertung anhand von 16 Faktoren über alle Verbindungen hinweg 🤖
18
fusion
Anfragen an ein Panel von Modellen verteilen + ein Bewertungsmodell synthetisiert eine Antwort 🧬
19
pipeline
Schritte verketten — die Ausgabe jedes Ziels dient als Eingabe für das nächste 🔗
Die Auto-Combo-Engine bewertet jeden Kandidaten anhand von **16 Faktoren** (Funktionsfähigkeit, Kontingent, Kosten, Latenz, Aufgabeneignung, Qualität, Sitzungsverfügbarkeit …) — siehe [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Resilienz ist integriert (3 unabhängige Ebenen)
📖 [Auto-Combo-Engine](docs/routing/AUTO-COMBO.md) · [Resilienzleitfaden](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Was OmniRoute auszeichnet
📊 Vollständige Methodik & Details zu den einzelnen Funktionen im Vergleich zu 9router, OpenRouter, CLIProxyAPI & LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 OmniRoute unterstützen
OmniRoute ist MIT-lizenziert und wird offen weiterentwickelt. Wenn es Ihnen Zeit oder Geld spart, können Sie so dazu beitragen, dass es unabhängig bleibt — wählen Sie einfach, was zu Ihnen passt. Sponsoring beeinflusst niemals die Routing-Priorität; es verschafft Sichtbarkeit, keine bessere Platzierung.
⚠️ Senden Sie jede Kryptowährung ausschließlich über das angegebene Netzwerk — beim Senden über das falsche Netzwerk können die Mittel verloren gehen.
🐛 Einen Fehler gefunden oder Feedback? Eröffnen Sie eine [Diskussion](https://github.com/diegosouzapw/OmniRoute/discussions).
Hinweise für Entwickler: Das Projekt kann während npm install/postinstall der Einfachheit halber eine lokale .env-Datei für Entwickler erstellen. Diese Datei wird absichtlich über .gitignore ignoriert (siehe .gitignore) und darf niemals committet werden — falls sie versehentlich committet wurde, ändern Sie alle offengelegten Geheimnisse und entfernen Sie die Datei aus dem Verlauf. Hinweise zur Verwaltung lokaler Umgebungsdateien und Geheimnisse finden Sie unter docs/DEVELOPER-ENVIRONMENT.md.
## 📡 OmniRoute Radar
Die wichtigste Kennzahl für das kostenlose Kontingent bleibt bei **~1,62 Mrd. Tokens/Monat** aus dem oben dokumentierten,
poolbereinigten Katalog. Vorübergehende Startguthaben von Anbietern können den Umfang im ersten
Monat separat auf **~2,22 Mrd.** erhöhen. Radar ist eine optionale, signierte Katalog-Überlagerung für alle, die zwischen OmniRoute-Releases aktuellere
Informationen zur Verfügbarkeit kostenloser Modelle wünschen; der Community-Katalog und alle bestehenden kostenlosen
Funktionen bleiben kostenlos.
Unterstützer können Zugriff auf den Live-Katalog und zusätzliche Anbieterangebote erhalten. Dessen separate,
veränderliche Obergrenze liegt – abhängig von der Verfügbarkeit der Anbieter – bei **höchstens etwa 3 Mrd. Tokens/Monat**.
Diese Obergrenze ist nicht garantiert: Anbieter können Kontingente, Teilnahmevoraussetzungen, Modelle oder Regionen
jederzeit ändern.
Radar ist optional und ausschließlich für GET-Anfragen vorgesehen. Der OmniRoute-Client lädt weder Prompts noch Datenverkehr, Anbieter-
konfigurationen, Nutzungstelemetrie oder den lokalen Status verworfener Mitteilungen hoch. Informationen zu den Teilnahmevoraussetzungen und
zum aktuellen Katalog finden Sie unter **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Was ist neu?
> Aktuelle Highlights von **v3.8.20 → v3.8.50**. Den vollständigen Verlauf finden Sie in [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — eingehende A2A-Delegierung an Ihre Agentenflotte, Conductor-Skills auf der Agent Card und ein Dashboard-Panel mit Faro-Push-to-Talk-Sprachchat. → [A2A-Server](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptive Zulassung und Überlastungsschutz** — ressourcenintensive Chatanfragen werden in eine Warteschlange gestellt, statt einen 503-Fehler auszulösen, mit atomaren gleitenden RPM-Leases pro Verbindung. → [Resilienzleitfaden](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanonische `/v1/models`-Sortierung** — ein zusammenhängender, nach Anbieter gruppierter Block pro Anbieter (Combos zuerst angeheftet), stabil über alle Katalogquellen hinweg. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **🗜️ Gehärtete Komprimierung** — standardmäßig aktivierter Schutz vor Inflation, Caveman-Pakete für DE / FR / JA + Chinesisch (wényán), RTK-Filter für Gradle und .NET. → [Komprimierung](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Transparente Pauschalkosten** — Anbieter mit Abonnement-/Coding-Tarifen werden in der Kostenanalyse mit **$0** ausgewiesen; Budget, Kontingent und Routing verwenden weiterhin Schätzwerte. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-Routing** — verteilt das Kontingent eines gemeinsam genutzten Kontos fair auf gebündelte Schlüssel und bleibt dabei arbeitserhaltend, sodass ungenutzte Anteile weitergegeben werden. → [Resilienzleitfaden](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI-/Agenten-Einrichtung mit einem Befehl** — 13 registrierte `setup-*`-Befehle; `omniroute run` startet 7 CLIs (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` unterstützt 10 Ziele mit einer interaktiven Anbieter- und Modellauswahl sowie kontextspezifischen Favoriten. → [CLI-Integrationen](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Remote-Modus** — steuern Sie eine entfernte OmniRoute-Instanz mit bereichsgebundenen Tokens (`connect` / `contexts` / `tokens`) und einem `antigravity`-OAuth-Helfer für VPS-Installationen. → [Remote-Modus](docs/guides/REMOTE-MODE.md)
- **🧭 Intelligenteres automatisches Routing** — `auto/:`-Combos, **Fusion** (Modellpanel + Beurteiler), aufgabenbezogenes Routing sowie anfragespezifische Überschreibungen für Modell, Modus und USD-Budget. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Erweiterbare Komprimierung** — 12 kombinierbare Engines + Compression Studios: LLMLingua-2, zweistufiges Ultra, omniglyph, Fidelity-Gate pro Schritt, GCF v3.2 und Editor zur Neuanordnung per Drag-and-drop. → [Komprimierung](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparente MITM-Entschlüsselung (TPROXY)** — erfasst CLIs, die Proxy-Umgebungsvariablen ignorieren, mit einer CA pro SNI und einem Installationsprogramm für den Vertrauensspeicher. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Durchgängige Kostentelemetrie** — `X-OmniRoute-*`-Header für Kosten und Nutzung an jedem Endpunkt, ein Header für Einsparungen bei Cache-Treffern und USD-Ausgabenkontingente pro Schlüssel. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **🧠 Von Ihnen kontrollierter Speicher** — standardmäßig deaktiviert, optionale int8-Vektorquantisierung + typisierter Verfall, anfragespezifisches `x-omniroute-no-memory`. → [Speicher](docs/frameworks/MEMORY.md)
- **🛡️ Sicherheit** — Schutz vor Prompt-Injection auf jeder LLM-Route (Red-Team-Suite), optionale Schutzfunktion zur Maskierung von Zugangsdaten (schwärzt offengelegte API-Schlüssel und Geheimnisse in beide Richtungen), kostenlose DuckDuckGo-Websuche als letzte Ausweichmöglichkeit und eine optionale OIDC-Anmeldesperre für das Dashboard (die Passwortanmeldung bleibt immer verfügbar). → [Schutzmechanismen](docs/security/GUARDRAILS.md)
- **🖼️ Neue Endpunkte** — `/v1/ocr` (Mistral OCR) und `/v1/audio/translations` (im Whisper-Stil) vervollständigen die Medienfunktionen. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **🎨 Bild-, Video- und Audiogenerierung** — eine API für Medien: xAI Grok Imagine und Novita AI Video, ComfyUI, Magnific, Adobe Firefly, Segmind sowie Sprachanbieter wie ElevenLabs. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **🌍 Bereitstellung und Betrieb** — Reverse-Proxy-`basePath`, automatische Erkennung der Browsersprache, Geräteverfolgung pro Schlüssel, root-loses MITM-Vertrauen und zh-TW-Lokalisierung. → [Umgebung](docs/reference/ENVIRONMENT.md)
- **🤝 Weitere Anbieter und Agenten** — Cloud-Agenten (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) mit Browser- und OAuth-Anmeldung, erstklassige Ollama-Karte, Claude Opus 5 und Sonnet 5, offizielle Kimi-Partnerschaft (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI … sowie ein aktualisierter **Katalog mit 352 Anbietern**. → [Anbieter](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Routing-Transparenz** — jede Antwort enthält einen `X-OmniRoute-Decision`-Header, der die verwendete Strategie, den Anbieter und die Latenz nennt; eine neue `cache-optimized`-Combo-Strategie und der Auto-Combo-Faktor `cacheAffinity` leiten wiederholte Anfragen zurück an die Verbindung, die das zwischengespeicherte Präfix hält; außerdem legt ein schreibgeschützter `/v1/auto-combo/{channel}/candidates`-Endpunkt den aktuellen Kandidatenpool eines `auto/*`-Kanals offen. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Lokale Leistung und Infrastruktur** — lokales Redis mit einem Klick, Relay-Deployments für Cloudflare Workers / Deno Deploy sowie Bifrost und Mux als überwachte eingebettete Dienste. → [Eingebettete Dienste](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Ebenfalls enthalten** — Plugin-Framework + Marketplace, Omni-/Agent-/GitHub-Skills-Frameworks, Obsidian-Vault-Integration (22 MCP-Tools), OpenAI-kompatible Batch- und Files-APIs, semantischer Antwort-Cache, Gamification mit Bestenlisten, ACP-Agentenerkennung (15 integrierte Agenten), geplanter Logexport nach BigQuery, parallele Multi-Modell-Auffächerung mit `auto/chaos`, eine Telegram-Bot-Bridge, ein integrierter Versionsmanager und LMArena-ELO-Ranglisten kostenloser Anbieter. → [Dokumentation](docs/README.md)
## 🤖 Kompatible CLIs & Coding-Agenten
> Eine Konfiguration — `http://localhost:20128/v1` — und **jede** KI-IDE oder CLI läuft mit kostenlosen und kostengünstigen Modellen.
**Starten Sie jede unterstützte CLI mit nur einem Befehl über OmniRoute** — ohne dass Konfigurationsdateien geschrieben werden,
Anmeldedaten werden pro Prozess injiziert, und Qwen/Gemini erhalten ein temporäres, isoliertes Home-Verzeichnis:
```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"
# Oder wählen Sie Anbieter und Modell interaktiv aus und schreiben Sie die eigene Konfiguration des Tools:
omniroute configure codex # ebenfalls: claude opencode qwen aider goose gemini cline continue kilo
```
Jeder Befehl berücksichtigt den aktiven Remote-Kontext (`omniroute connect `), `--dry-run`
zeigt die exakten Umgebungsvariablen/Argumente als Vorschau an, ohne sie auszuführen, und `--api-key-env NAME` hält Geheimnisse
aus Ihrem Shell-Verlauf heraus. → [CLI-Integrationen](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 372 KI-Anbieter — 154 im Katalog als kostenlos gekennzeichnet
> **372 registrierte Anbieter** in den kanonischen Sammlungen für Chat, Medien, Suche, lokale Modelle, Cloud-Agenten und Systeme, darunter **154 mit den Discovery-Metadaten `hasFree: true`**. Das Chat-Modellregister umfasst **237 Anbieter / 3.009 unterschiedliche Anbieter-Modell-Paare / 1.443 rohe Modell-IDs**; der separate Katalog für kostenlose Kontingente enthält **491 modellspezifische Einträge**, **35 wiederkehrende Pools** und **54 dauerhaft kostenlose Anbieter mit wiederkehrenden Kontingenten oder ohne Schlüsselpflicht**. Diese Nenner unterscheiden sich bewusst; Definitionen und Pool-bereinigte Berechnungen finden Sie in der [Anbieterreferenz](docs/reference/PROVIDER_REFERENCE.md) und unter [Kostenlose Kontingente](docs/reference/FREE_TIERS.md).
### 🏢 Jedes große KI-Labor — über einen einzigen Endpunkt
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…und über 330 weitere — jedes Symbol wird live aus dem Anbieterkatalog des Dashboards geladen. 📖 [Anbieterreferenz](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Dauerhaft kostenlos — 0 $, keine Karte erforderlich
OpenCode Zen DeepSeek V4, Nemotron 3 Kein Token-Limit
Kilo Code Auto-Router, Tencent Hy3 Dauerhaft kostenlos
### 🧩 Neu: OmniRoute im nativen Copilot Chat von VS Code
> Keine neue Seitenleiste, keine neue Chat-Oberfläche — jedes von OmniRoute bereitgestellte Modell erscheint direkt in der
> **bereits verwendeten Modellauswahl von Copilot Chat**. Seit VS Code 1.122 funktionieren Anbietermodelle
> ohne GitHub-Anmeldung oder Copilot-Abonnement — Agentenmodus, Tool-Aufrufe und Bildverarbeitung,
> kostenlos.
Installiere die Erweiterung **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, verbinde sie
mit deinem OmniRoute-Server (standardmäßig `localhost:20128`) und öffne dann Copilot Chat → Modellauswahl
→ **Modelle verwalten…** → **OmniRoute**.
Im Editor: Öffne die Ansicht **Erweiterungen**, suche nach **„OmniRoute“** und klicke auf **Installieren**
— funktioniert in beiden Stores auf dieselbe Weise. Quellcode, Issues und das Runbook für die Veröffentlichung findest du unter
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Anleitung für VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — Einrichtung, Anzeige in der Modellauswahl, Dashboard in einem Tab, Fehlerbehebung
### 🎩 Neu: OmniRouteTray — dein Gateway in der Menüleiste
> `omniroute serve` funktioniert am besten, wenn es immer läuft. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> macht daraus eine einmalig einzurichtende Menüleisten-App für macOS: Sie startet den Server, hält ihn
> auch nach Neustarts am Laufen, aktualisiert ihn direkt und macht dein aktuelles Token-Budget mit einem Klick verfügbar — **kein
> offenes Terminalfenster und keine globale Installation mit `npm install -g omniroute`, um die du dich kümmern musst.**
Die App basiert auf [Tauri v2](https://v2.tauri.app/) (mit einem winzigen Rust-Kern) und bringt
eine eigene signierte Node-24-Laufzeitumgebung mit. Sie verwaltet eine app-eigene OmniRoute-Installation und gerät daher nie mit deinem
globalen `node`/`bun` in Konflikt. Sie **verwendet deine vorhandene Konfiguration und Datenbank unter `~/.omniroute/`** — es ist also
dasselbe OmniRoute, das du bereits ausführst, nur mit Hut. 🎩
Funktion
Funktionsweise
🟢 Überwacht den Server
Startet omniroute serve und übernimmt eine bereits laufende Instanz, statt sie zu duplizieren
📊 Live-Nutzung auf einen Blick
Kontingentanzeigen der Anbieter, Sitzungs- und Wochenlimits von Claude mit Countdown bis zur Zurücksetzung sowie Kostenaufschlüsselung für 30 Tage
🔄 Automatische direkte Updates
Mehrstufige Installation, atomarer Austausch und Rollback bei Fehlern — immer auf dem neuesten Release
🚀 Beim Anmelden starten
Optionaler Start bei der Anmeldung; nur in der Menüleiste, ohne Dock-Symbol
🩺 Diagnose & Protokolle
Diagnose mit einem Klick und Zugriff auf die Serverprotokolle
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Bevorzugen Sie einen Download? Laden Sie die neueste .dmg-Datei unter
Releases herunter. Quellcode, Issues und Build-Dokumentation
finden Sie unter zoispag/omniroute-tray.
💛 Ein Community-Projekt von @zoispag — keine offizielle OmniRoute-Veröffentlichung.
> Neben dem Server ist OmniRoute eine **vollständige Kommandozeilen-Schaltzentrale** mit **über 80 Befehlen** sowie offenen Agentenprotokollen, sodass ein KI-Agent sie **eigenständig** steuern kann.
### ⌨️ Eine echte CLI (nicht nur `start`)
```bash
omniroute # Gateway + Dashboard bereitstellen (Port 20128)
omniroute chat # interaktiver TUI-Chat-Client (Slash-Befehle: /model /combo /skill /memory)
omniroute setup # geführter Assistent für die Ersteinrichtung
omniroute doctor # Anbieter, Ports und native Abhängigkeiten diagnostizieren
```
### 🛰️ Remote-Modus — CLI hier ausführen, OmniRoute auf einem VPS
OmniRoute auf einem Server? Steuern Sie es von Ihrem Laptop aus mit **derselben CLI**. Melden Sie sich einmal
mit einem eingeschränkten Zugriffstoken an; anschließend wird jeder Befehl an das Remote-System gesendet.
```bash
omniroute connect 192.168.0.15 # Passwort → eingeschränktes Token, als Kontext gespeichert
omniroute models list # ← wird auf dem REMOTE-Server ausgeführt
omniroute configure codex # ← wählt ein Remote-Modell aus und schreibt ein lokales Codex-Profil
omniroute tokens create --name ci --scope read # eingeschränktere Token für andere Rechner erstellen
omniroute contexts use default # ← zurück zum lokalen Server wechseln
```
Token sind auf `read` / `write` / `admin` beschränkt; Routen, die Prozesse starten, bleiben ausschließlich über Loopback erreichbar.
📖 [Remote-Modus](docs/guides/REMOTE-MODE.md)
### 🤝 Einen Agenten verbinden — und er steuert OmniRoute selbst
Stellen Sie OmniRoute über **MCP**, **A2A**, eine **REST API**, **Webhooks** oder eine **Remote-CLI** bereit — jeder geeignete Agent (oder Ihr eigener Code) erhält die Kontrolle über das gesamte Gateway: Routing, Anbieter, Kombinationen, Cache, Komprimierung und Speicher — autonom. Die nachfolgenden HTTP-Endpunkte werden unter `http://localhost:20128` bereitgestellt.
Schnittstelle
Endpunkt / Befehl
Verwendungszweck
🧰 MCP (stdio)
omniroute --mcp
In Claude Desktop, Cursor oder jeden beliebigen MCP-Client integrieren
Anfrage- und Kontingentereignisse an Slack, Discord, Telegram oder eine beliebige URL senden
🛰️ Remote-CLI
omniroute connect
Eine Remote-Instanz mit eingeschränkten Zugriffstoken steuern
```bash
# Claude Code über MCP den vollständigen OmniRoute-Werkzeugsatz bereitstellen:
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) · [Agentenprotokolle](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ 15–95 % Tokens sparen — automatisch
### 📖 Funktionsweise — Pipeline, Architektur & Berechnung der Einsparungen
Die standardmäßige kombinierte Konfiguration führt `RTK → Caveman` aus. Wenn beide auf dieselbe Tool-/Kontext-Nutzlast angewendet werden, multiplizieren sich die Einsparungen:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Codeblöcke, URLs, JSON und strukturierte Daten werden von der Schutz-Engine **immer geschützt**.
> **Warum viele Tokens verwenden, wenn wenige genügen?** Jede Anfrage durchläuft die Komprimierungspipeline von OmniRoute **transparent** — ohne Änderungen am Client. Sie besteht jetzt aus einem **Stack von 12 kombinierbaren Engines**, die der Reihe nach ausgeführt und für jede Routing-Kombination flexibel zusammengestellt werden — aufbauend auf Ideen von [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) und [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Der Stack aus 12 Engines
Die Engines werden in der Reihenfolge der Pipeline ausgeführt; jede kann unabhängig aktiviert und für jede Kombination konfiguriert werden:
#
Engine
Funktionsweise
1
Session-Dedup
Entfernt über mehrere Gesprächsrunden hinweg wiederholte Inhalte (inhaltsadressiert, rundenübergreifend)
2
CCR
Archiviert große Blöcke hinter Abrufmarkierungen, die bei Bedarf abgerufen werden
3
Lite
Kürzt Leerraum und Bild-URLs (latenzarme Basis)
4
RTK
Intelligente Filterung, Deduplizierung und Kürzung von Tool-Ergebnissen (befehlsabhängig)
5
Responses Tool Output
Primär verlustfreie JSON-Komprimierung plus begrenzte Diagnosekomprimierung für Shell-/Patch-/Such-/Build-Ausgaben (Responses API)
6
Headroom
Verlustfreie tabellarische Kompaktierung von JSON-Arrays (~30 %) über einen eingebetteten GCF-Codec
7
Relevance
Extraktive Satzbewertung anhand der letzten Benutzeranfrage
8
Caveman
Regelbasierte Komprimierung von Fließtext (~65–75 % bei der Ausgabe)
9
Aggressive
Zusammenfassung und schrittweise Alterung früherer Gesprächsrunden
10
LLMLingua-2
Semantische ML-Bereinigung über MobileBERT ONNX — codesicher, asynchron
11
Ultra
Heuristische Token-Bereinigung mit einer optionalen Stufe für kleine Modelle (SLM)
12
OmniGlyph
Experimentelle Kodierung des Kontexts als Bild für gemessene Claude Fable 5 auf der direkten Anthropic-Verbindung; GPT 5.6-Transformer bleiben bis zum Vorliegen von Anbieterbelegen standardmäßig deaktiviert. Vier Komprimierungsprofile (standardmäßig aggressiv, ausgewogen, codesicher, unverändert) (am aggressivsten; Opt-in)
Codeblöcke, URLs und strukturierte Daten werden **immer bytegenau beibehalten**. **Ein-Klick-Voreinstellungen** kombinieren die Engines:
Modus
Einsparungen
Am besten geeignet für
🪶 Lite
~15 %
Sichere Standardeinstellung für den Dauereinsatz
🪨 Standard (Caveman)
~30 %
Tägliche Programmierarbeit
⚡ Aggressive
~50 %
Lange, Tool-intensive Sitzungen
🔥 Ultra
~75 %
Maximale Einsparungen
🧰 RTK
60–90 %
Shell-/Test-/Build-/git-Ausgaben
🔗 Kombiniert (RTK → Caveman)
78–95 %
Gemischte Prompts und Tool-Protokolle
**Praxisbeispiel — Standardmodus:**
> **Vorher (69 Tokens):** _„Der Grund dafür, dass deine React-Komponente erneut gerendert wird, liegt wahrscheinlich darin, dass du bei jedem Renderzyklus eine neue Objektreferenz erstellst. Wenn du ein Inline-Objekt als Prop übergibst, erkennt der flache Vergleich von React es jedes Mal als ein anderes Objekt, wodurch ein erneutes Rendern ausgelöst wird. Ich würde empfehlen, das Objekt mit useMemo zu memoizieren.“_
>
> **Nachher (19 Tokens):** _„Neue Objektreferenz bei jedem Rendern. Inline-Objekt-Prop = neue Referenz = erneutes Rendern. Mit useMemo umschließen.“_
>
> **Gleiche Antwort. 72 % weniger Tokens. Kein Genauigkeitsverlust.** ✅
**PT-BR-Beispiel — [Troglodita](https://github.com/leninejunior/troglodita)-Modus:**
> **Vorher (42 Tokens):** _„Das Problem besteht darin, dass die Komponente erneut gerendert wird, weil bei jedem Renderzyklus eine neue Objektreferenz erstellt wird. Ich würde die Verwendung von useMemo empfehlen.“_
>
> **Nachher (12 Tokens):** _„Erneutes Rendern: neue Referenz je Zyklus (Inline-Objekt neu erstellt). `useMemo` verwenden.“_
>
> **Gleiche Antwort. ~70 % weniger Tokens. Technische Präzision unverändert.** ✅
### 🎚️ Mehr als nur Engines — Ausgabestile, adaptive Steuerung & Kontrolle pro Anfrage
Die 12 Engines oben reduzieren, was **hineingeht**. Drei weitere Ebenen bestimmen, **wie**, **wann** und was **herauskommt**:
- **🪄 Ausgabestile** _(Steuerung der Ausgabeachse)_ — fügen deterministische, Cache-sichere Anweisungen zur Antwortgestaltung ein; kombinierbar, jeweils mit der Intensität `lite` / `full` / `ultra`. Zum Hinzufügen eines Stils genügt ein einzeiliger Registry-Eintrag:
- **Knapp formuliert** — Füllwörter / Artikel / Einschränkungen entfernen; technische Substanz exakt beibehalten.
- **Weniger Code** — „fauler Senior-Entwickler“-YAGNI: kleinste funktionierende Änderung, kein nicht angefordertes Gerüst.
- **Ponytail (fauler Senior-Entwickler)** — die YAGNI-Leiter hinaufsteigen, die eigentliche Ursache beheben, kleinstmöglicher funktionierender Diff.
- **Ich habe ADHS (handlungsorientiert)** — nächste Aktion zuerst, nummerierte Schritte, ein konkreter nächster Schritt, keine Einleitung.
- **Knappes CJK (文言)** — ultraknapper klassisch-chinesischer Stil (auf das Gebietsschema `zh` beschränkt).
- **🎯 Adaptives Kontextbudget** _(die Steuerung)_ — anstelle eines einzelnen Ein-/Aus-Token-Schwellenwerts werden die günstigsten Engines mit dem geringsten Informationsverlust nur so weit hochgestuft, wie es nötig ist, um **in das Kontextfenster des Modells zu passen**. Richtlinie: `reserve-output` (Standard, modellabhängig) · `percentage` · `absolute`. Modus: `floor` (Einpassen garantieren) · `replace-autotrigger` (Ihre explizite Auswahl hat Vorrang) · `off` (bisheriger Schwellenwert).
- **🎛️ Wo über die Komprimierung entschieden wird** _(Priorität, hoch → niedrig)_ — anfragespezifischer Header `x-omniroute-compression` › Überschreibung durch Routing-Kombination › aktives benanntes Profil › adaptiv / automatische Auslösung › Panel-Standard › aus. Der angewendete Plan wird im Antwort-Header `X-OmniRoute-Compression: ; source=` zurückgegeben.
Automatische Auslösung anhand eines Token-Schwellenwerts aktivieren, die adaptive Steuerung einschalten, ein benanntes Profil festlegen, eine einmalige Einstellung pro Anfrage vornehmen oder einer Routing-Kombination eine Pipeline zuweisen — je nachdem, was zur Arbeitslast passt. Ein optionales Offline-**Evaluierungsframework** (`npm run eval:compression`) bewertet die Wiedergabetreue im Verhältnis zur Einsparung anhand eines festgelegten Korpus, bevor Sie eine Änderung übernehmen.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Schnellstart
**1) Installieren & ausführen**
```bash
npm install -g omniroute
omniroute
```
> 💡 Sehen Sie `npm warn ERESOLVE` oder Warnungen zu Peer-Abhängigkeiten? [Sie sind harmlos](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Verwenden Sie npm 11 oder höher?** npm kann Lebenszyklus-Skripte von Paketen blockieren, sofern sie nicht ausdrücklich zugelassen sind. OmniRoutes `postinstall` (`node scripts/build/postinstall.mjs`) ist erforderlich, um seine nativen Laufzeitdateien vorzubereiten. Lassen Sie bei einer globalen Installation die in der npm-Warnung genannten Pakete zu. Für die von OmniRoute 3.8.51 gemeldete Paketauswahl:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Um diese Positivliste für zukünftige globale Installationen wiederzuverwenden, konfigurieren Sie sie einmal und installieren Sie anschließend wie gewohnt:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Die Abhängigkeitsliste kann sich zwischen Versionen ändern. Falls npm eine andere Liste meldet, verwenden Sie die Paketnamen aus dieser Warnung. Wird ein Paket zugelassen, dürfen seine Installationsskripte ausgeführt werden.
> **Verwenden Sie Gemini Web oder einen anderen Anbieter mit Web-Cookies?** Das npm-Paket enthält
> Playwright, jedoch nicht dessen Chromium-Binärdatei. Lesen Sie vor der ersten Anfrage an einen Webanbieter den
> Hinweis zur [Einrichtung von Playwright Chromium](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium).
Dashboard unter `http://localhost:20128` · API unter `http://localhost:20128/v1`.
**2) Einen geeigneten Anbieter mit Ihrem eigenen Konto verbinden**
Dashboard → **Anbieter** → wählen Sie einen Anbieter, dessen aktuelle Bedingungen und Kontingente zu Ihrem Anwendungsfall passen → fügen Sie dessen API-Schlüssel hinzu oder schließen Sie den zugehörigen Kontovorgang ab. Kostenlose Tarife können eine Registrierung, Genehmigung oder Zahlungsmethode erfordern. Lesen Sie den [Leitfaden zu kostenlosen Tarifen](docs/getting-started/FREE-TIERS-GUIDE.md); eine Verfügbarkeit ohne Schlüssel ist nicht garantiert, und mit `tos: avoid` gekennzeichnete Anbieter sind standardmäßig von `auto` ausgeschlossen.
**3) Ihr Programmierwerkzeug konfigurieren**
```txt
Base URL: http://localhost:20128/v1
API Key: [aus Dashboard → Endpoints kopieren]
Model: auto (leitet zwischen geeigneten Verbindungen weiter — alternativ Anbieter/Modell auswählen)
```
**4) Funktion überprüfen**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Ihre verbundenen Modelle sollten aufgelistet werden. 🎉 Das war's — beginnen Sie mit dem Programmieren; OmniRoute übernimmt automatisch das Routing und weicht bei Bedarf aus.
Falls Ihr Client keine benutzerdefinierten Header senden kann, stellt OmniRoute außerdem tokenisierte Kompatibilitätsaliasse bereit:
```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
```
Verwenden Sie diese nur für Clients, die `Authorization: Bearer ...` nicht anhängen können. Die Header-Authentifizierung bleibt die bevorzugte Methode.
## 📦 Weitere Installationsmethoden — Docker, Quellcode, 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` folgt der höchsten **veröffentlichten** stabilen SemVer-Version. Es folgt nicht dem Git-Branch `main`. Verwenden Sie für GitOps eine feste Version mit `:X.Y.Z`. Siehe [Docker-Veröffentlichungskanäle](docs/guides/DOCKER_GUIDE.md#release-channels). Das Image setzt **`OMNIROUTE_MEMORY_MB=1024`** fest. Das reicht für das Dashboard und einen einfachen Chat. **Coding-Agenten** (`POST /v1/responses` von Claude Code, Codex, Grok, …) benötigen einen wesentlich größeren V8-Heap, andernfalls kommt es bei zwei sich überschneidenden langen Kontexten bei etwa 12 GiB zu einem `FATAL ERROR`. Dimensionieren Sie den Container größer als den Heap (native Puffer befinden sich außerhalb von V8):
| Arbeitslast | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
| ---------------------------------------- | ------------------------------- | ---------------------- |
| Dashboard / einfacher Chat | `1024` (Image-Standardwert) | ≥2 g |
| Ein Coding-Agent | `8192` | ≥10 g |
| Zwei gleichzeitige 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
```
Vollständige Tabelle: [Docker-Leitfaden — Laufzeit-RAM](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Docker-Kanal für Vorabversionen:** `diegosouzapw/omniroute:next` und
> `diegosouzapw/omniroute:next-web` folgen dem aktuellen standardmäßigen `release/v*`-
> Branch. Diese veränderlichen Tags sind ausschließlich zum Testen unveröffentlichter Korrekturen vorgesehen und
> werden **für den Produktionseinsatz nicht unterstützt**. Siehe
> [Docker-Veröffentlichungskanäle](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Die standardmäßige Installation mit `bun install` sowie die globale Installation (`bun install -g omniroute`) werden über die Bun-Laufzeiterkennung unterstützt:
- **Integriertes `bun:sqlite`**: OmniRoute verwendet bei der Ausführung unter Bun dessen integrierten `bun:sqlite`-Treiber und greift unter Node.js auf `better-sqlite3` oder `sql.js` zurück.
- **Automatische Auswahl des Webpack-Bundlers in der Entwicklungsumgebung**: Die Entwicklungsumgebung (`bun run dev`) erkennt Bun automatisch und deaktiviert Turbopack zugunsten von Webpack, um Inkompatibilitäten mit nativen V8-Bindings zu vermeiden. Produktions-Builds (`bun run build`) folgen `OMNIROUTE_USE_TURBOPACK` genau wie unter Node: standardmäßig Turbopack, mit `OMNIROUTE_USE_TURBOPACK=0` wird mit Webpack gebaut (`Dockerfile.bun` stellt dies als `--build-arg` bereit).
- **Dediziertes Bun-Dockerfile**: Mehrstufiges `Dockerfile.bun` für native Bun-Produktionsbereitstellungen (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Mit Bun installieren und ausführen
bun install
bun run dev
```
**🛠️ Aus dem Quellcode**
```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
# Mit Nix-Flakes
nix develop
npm run dev
# Oder mit devbox
devbox run npm run dev
```
📖 [Docker-Leitfaden](docs/guides/DOCKER_GUIDE.md) — Compose-Profile, Caddy HTTPS, Cloudflare-Tunnel.
**🦭 Podman**
```bash
# 1. Das per Bind-Mount eingebundene Datenverzeichnis vorbereiten
mkdir -p data
# 2. Nur unter Linux + lokalem Rootless-Podman (niemals mit einem entfernten Podman-Machine-Client):
podman unshare chown 1000:1000 ./data
# 3. Den Laufzeithinweis festlegen, das lokale Compose-Image erstellen und starten
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
Unter macOS oder Windows verwendet Podman eine entfernte Podman Machine: Überspringen Sie `podman unshare` und
befolgen Sie die [topologiespezifischen Hinweise zum Datenverzeichnis](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Podman-Leitfaden](contrib/podman/README.md) — Compose-Builds, Podman Machine und
Linux/systemd-Quadlet-Einrichtung.
**⚡ Schnellere / schlankere Installation (nativen Build überspringen)**
Die native SQLite-Engine (`better-sqlite3`) ist eine **optionale** Abhängigkeit, daher wird eine globale
Installation niemals durch die Kompilierung aus dem Quellcode blockiert: Sie verwendet ein vorkompiliertes Binärprogramm, wenn eines zu
Ihrer Plattform/Node-Version passt, und greift andernfalls transparent auf eine reine JS-Engine zurück
(`node:sqlite` unter Node 22+, andernfalls das mitgelieferte `sql.js`-WASM) — keine Build-Werkzeuge erforderlich.
So überspringen Sie die native Aufwärmphase nach der Installation vollständig (CI, Headless-Systeme oder langsame Rechner):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 überspringt sie ebenfalls
```
Für die schnellsten Installationen empfiehlt sich **pnpm** (inhaltsadressierter Speicher + Hardlinks — siehe oben).
Für eine Headless-Laufzeitumgebung ohne Dashboard verwenden Sie das Docker-Profil `base` (siehe oben) oder den
[Termux-Leitfaden](docs/guides/TERMUX_GUIDE.md). Die CLI und das Web-Dashboard werden vom
gleichen Prozess über einen einzigen Port bereitgestellt, daher gibt es derzeit kein separates reines CLI-Paket.
OAuth 2.0 (PKCE) + JWT + API-Schlüssel + MCP-Authentifizierung mit Gültigkeitsbereichen · AES-256-GCM für ruhende Daten · DOMPurify
Tarnung
wreq-js — Nachahmung von JA3-/JA4-TLS-Fingerabdrücken, 3-stufiger Proxy
Ausfallsicherheit
Leistungsschalter, exponentieller Backoff, Schutz vor Anfragestürmen, selbstheilende Auto-Kombination
Protokollierung
pino — strukturierte JSON-Protokolle mit Anfragekontext
Tests
Node.js-Test-Runner + Vitest — über 39.000 statische Testdeklarationen in mehr als 5.100 nachverfolgten Testdateien (Unit-, Integrations-, E2E-, Sicherheits- und Ökosystemtests)
Testabdeckungsstrategie für mehr als 39.000 statische Testdeklarationen in mehr als 5.100 erfassten Testdateien
# ⭐ Wichtigste Mitwirkende
> OmniRoute wird von einer engagierten Open-Source-Community geprägt. Diese Personen haben außergewöhnliche Beiträge geleistet, die sich direkt auf die Qualität, Stabilität und Reichweite des Projekts auswirken. **Vielen Dank.**
### Externe Mitwirkende nach zusammengeführten Pull Requests
Eingefroren beim aktuellen Stand von release/v3.8.50 mit dafb4ae808, einschließlich Zusammenführungen bis 2026-08-24 05:26:03 UTC. Die paginierte GitHub-GraphQL-Erhebung enthält 5.911 zusammengeführte PRs: 2.707 vom Repository-Eigentümer, 179 von Dependabot und 3.025 externe PRs von 535 verschiedenen Mitwirkenden. „Geänderte Zeilen“ entspricht den GitHub-Hinzufügungen und -Löschungen und umfasst generierte Dateien, Lockfiles, Kataloge, Übersetzungen und Dokumentation; es handelt sich um Änderungsvolumen, nicht um selbst verfasste LOC. Gleichstände an der Auswahlgrenze werden beibehalten.
### GitHub-zugeordnete Commits
Bob.Hou 🏅 51 GitHub-zugeordnete Commits · geteilter 10. Platz
Xiangzhe 🏅 51 GitHub-zugeordnete Commits · geteilter 10. Platz
Erneut überprüft am 2026-08-24 um 06:14:31 UTC: GitHub-zugeordnete Commits, die von der Contributors API des Repositorys für den Standard-Branch release/v3.8.50 gemeldet wurden. Die API gab 525 Identitäten zurück (415 Benutzer, 2 Bots, 108 anonyme Identitäten); diese Tabelle schließt den Maintainer, Bots und anonyme Identitäten aus und berücksichtigt Gleichstände. Sie unterscheidet sich sowohl von der obigen Rangliste zusammengeführter PRs als auch von der unten stehenden, 639 Personen umfassenden Zählung auf Basis von Git-Metadaten.
> 🙏 Die Funktionen, Fehlerbehebungen und Infrastrukturverbesserungen dieser Mitwirkenden sind ein **zentraler Bestandteil** dessen, was OmniRoute zuverlässig und funktionsreich macht. Jeder Pull Request, jeder Testfall und jede i18n-Übersetzungsdatei zählt. Open Source wird von Menschen wie ihnen geschaffen.
---
## 💖 Sponsoren
Ein herzliches Dankeschön an die Menschen, die OmniRoute aus eigener Tasche finanzieren — jeder Beitrag sorgt dafür, dass das Projekt kostenlos, unabhängig und in Bewegung bleibt.
… und weitere Personen, die lieber anonym bleiben 💛Öffentliche GitHub-Sponsoren wurden am 2026-08-24 erneut validiert. Der activeOnly-Status von GitHub bestimmt die oben aufgeführten Aktiv-Kennzeichnungen; zuvor offengelegte öffentliche einmalige Unterstützer werden weiterhin gewürdigt, und private Sponsoren bleiben anonym.💖 Sponsor werden → — jeder Dollar trägt dazu bei, dass OmniRoute kostenlos und unabhängig bleibt.
## 👥 Über 600 Mitwirkende
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Geprüft am 2026-08-24 auf der eingefrorenen Basis ac02c5b42f und erneut an der aktuellen Spitze von release/v3.8.50 mit dafb4ae808 überprüft: 639 normalisierte menschliche Git-Identitäten — 407 erscheinen als Commit-Autoren (einschließlich des Maintainers) und 232 ausschließlich in expliziten Co-authored-by-Trailern. Die Erhebung normalisiert GitHub-Noreply-Handles, schließt 26 Bot-, Agenten-, Dienst- oder Platzhalteridentitäten aus und führt gewöhnliche E-Mail-Adressen nicht allein deshalb zusammen, weil ihre Anzeigenamen übereinstimmen.
### So können Sie beitragen
1. Forken Sie das Repository
2. Erstellen Sie Ihren Branch von der Spitze des **aktiven** `release/vX.Y.Z`-Branches (nicht von `main`) — siehe [Branching- und Release-Modell](docs/ops/BRANCHING_MODEL.md)
3. Erstellen Sie Ihren Feature-Branch (`git checkout -b feat/amazing-feature`)
4. Committen Sie Ihre Änderungen (`git commit -m 'feat: add amazing feature'`)
5. Pushen Sie in den Branch (`git push origin feat/amazing-feature`)
6. Öffnen Sie einen Pull Request mit **base = diesem `release/vX.Y.Z`-Branch**
Ausführliche Richtlinien finden Sie in [CONTRIBUTING.md](CONTRIBUTING.md).
### Veröffentlichung einer neuen Version
```bash
# Release erstellen — npm publish erfolgt automatisch
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Sterne
## 🌍 StarMapper
## 🙏 Danksagungen
OmniRoute steht auf den Schultern von Giganten. Es begann als Fork von **[9router](https://github.com/decolua/9router)** und als TypeScript-Portierung des Go-Projekts **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — und von da an wurde jedes der unten aufgeführten Subsysteme von einem Open-Source-Projekt inspiriert, das diesen Weg bereits zuvor beschritten hatte. Jedes davon hat einen konkreten Teil von OmniRoute geprägt. Dies ist unser Dank an sie alle. 🙏
> ⭐ Die Anzahl der Sterne wurde am 24. August 2026 über die REST API von GitHub verifiziert — gebt diesen Projekten einen Stern. Die Angaben sind eine exakte, datierte Momentaufnahme und werden sich selbstverständlich ändern.
### 🧬 Abstammung & Gateway
Das KI-Gateway, dessen öffentlicher Preisdatenbestand unsere Synchronisierung zur Kostenverfolgung speist und dessen Modell zur Anbieter-Normalisierung unser Routing geprägt hat.
MIT-lizenzierter Quellcode, der für die integrierte Brücke von ChatGPT Web zu Codex Responses angepasst wurde, einschließlich Adaptern für Browsersitzungen, Antwortformatierung, Nutzung und Websuche.
Muster, die in die Stream-Wiederherstellung, Aliasse ohne Denkmodus, die ersatzweise Websuche, Sliding-Window-Limits, die Schwärzung von Protokolldaten und gehärtete Startabläufe portiert wurden.
Claude-Code-kompatible Transformationsvorgaben und das Verhalten von Abrechnungs-Headern, die in OmniRoutes konfigurationsgesteuerter Brücke verallgemeinert wurden.
Seine Grok-Modellzuordnungen, der Fake-TypeError-Statsig-Generator, Anfrage- und Gerätevorgaben sowie der NDJSON-Antwortprozessor wurden in wesentlichem Umfang für OmniRoutes Grok-Web-Executor angepasst.
Die wichtigste transitive Codequelle hinter grok2api-merged; ihre Implementierungen für Modelle, Header, Nutzlasten, Statsig und Prozessoren bleiben in der Entwicklungslinie von Grok Web erhalten.
Der zugrunde liegende MIT-lizenzierte Quellcode für Grok-Nutzlast- und Gerätevorgaben, den Statsig-Generator und den über TQZHR und grok2api-merged übernommenen result.response-Prozessor.
Eine transitive Quelle, die von grok2api-merged für dessen Proxy-Pool-Schicht genannt wird; OmniRoute bewahrt diesen Herkunftshinweis, beansprucht jedoch keine Portierung des Proxy-Pools in seinem klar abgegrenzten Grok-Web-Executor.
Bei der ursprünglichen Grok-Web-Implementierung wurde dessen HTTP-/Browser-Upstream-Design herangezogen; da sein direkter HTTP-Pfad von GrokProxy abgeleitet ist, wird keine eigenständige Codeportierung beansprucht.
Seine Rust-Schemas für ChatOptions und Antwortumschläge dienten als Grundlage für OmniRoutes TypeScript-Typen für Grok-Anfragen und Streaming-Antworten.
Das virale „warum viele Token verwenden, wenn wenige Token reichen“-Projekt — seine Höhlenmenschen-Sprech-Philosophie bildet die Grundlage unseres Standardkomprimierungsmodus und von mehr als 30 Regeln zur Entfernung von Füllwörtern und zur Verdichtung.
Hochleistungsfähige Komprimierung von Befehlsausgaben — inspirierte unsere RTK-Engine, die JSON-Filter-DSL, die Wiederherstellung von Rohausgaben und die gestapelte RTK-→-Caveman-Pipeline.
Forschung zur Prompt-Komprimierung (LLMLingua / LLMLingua-2) — inspirierte unsere asynchrone, codesichere und nach dem Fail-open-Prinzip arbeitende llmlingua-Engine.
PT-BR-Tokenkomprimierung — bildet die Grundlage unseres pt-BR-Sprachpakets: Reduzierung von Pleonasmen und Entfernung von Füllwörtern, abgestimmt auf die brasilianisch-portugiesische Grammatik.
Der virale „faule Senior-Entwickler“-YAGNI-Coder-Skill — inspirierte unseren less-code-Ausgabestil: Ausrichtung auf die kleinstmögliche funktionierende Änderung, die den _generierten_ Code reduziert (das Pendant auf der Ausgabeachse zu Cavemans knapper Prosa).
Komprimierung von Bash-Ausgaben + MCP-Profile — inspirierte unsere disziplinierte Abbruchstrategie bei der Komprimierung und die Reduzierung von MCP-Werkzeugmanifesten.
Inhaltsabhängige Ausgabekomprimierung pro Dateityp mit fehlertoleranter Abbruchstrategie — bestätigte unsere typabhängige Weiterleitung und das Überspringen bei zu geringem Gewinn.
Spaltenorientiertes JSON in Rust + inhaltsadressierter Abruf + nachrichtenübergreifende Deduplizierung — bestätigte das Design unserer headroom/ccr/session-dedup-Engines und die cache-stabile Invariante „die komprimierte Form ist positionsunabhängig“.
Toolkit für die TypeScript Compiler API — inspirierte unsere parserbasierte Entfernung von Kommentaren, bei der String-, Template- und Regex-Literale erhalten bleiben.
Die MITM-Überwachung/-Analyse des Datenverkehrs zwischen Programmierassistenten und LLMs floss in die frühen Anforderungen an den Traffic Inspector ein. Vier zuvor abgeleitete Module — SSE-Zusammenführung, Konversationsnormalisierung, Maskierung geheimer Daten und Header-Bereinigung — wurden durch unabhängige Clean-Room-Implementierungen ersetzt, die auf öffentlichen Protokollstandards basieren. Die beiden Oberflächen für Host-Passthrough (passthrough.ts und _internal/bypass.cjs) bleiben interne OmniRoute-Implementierungen, die unabhängig klassifiziert sind; sie wurden im Rahmen dieser Ersetzung nicht neu geschrieben.
Transparente, prozessbezogene Proxy-Weiterleitung — inspirierte unseren absturzsicheren MITM-Abbau, Socket-Leerlaufzeitüberschreitungen, die Prozesszuordnung über /proc und die TPROXY-Erfassung.
Observability für Istio-Service-Meshes — inspirierte unsere Circuit-Breaker-Badges und die visuelle Darstellung von Fehlerkanten im Routing/Combo Studio.
Eine kuratierte Liste standardmäßig sicherer Bibliotheken, die unsere Sicherheitsentscheidungen leitet (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Inspirierte die Deduplizierung von Anfragen, einen kostenlosen Notfall-Fallback, austauschbare Auto-Combo-Strategien und die mehrsprachige Absichtsklassifizierung.
Seine kontobasierte Modellneuzuordnung, die Validierung ausführbarer Pfade und das Verhalten von Tarifbezeichnungen flossen in die Antigravity-Laufzeitumgebung von OmniRoute ein.
Identifizierte die Grok-Build-Kontingentschnittstelle; OmniRoute überprüfte und korrigierte anschließend das aktuelle Übertragungsformat unabhängig.
## 📄 Lizenz
MIT-Lizenz – Details finden Sie unter [LICENSE](LICENSE).
---
**[⬆ Zurück nach oben](#-omniroute)** · Mit ❤️ für die Open-Source-KI-Community entwickelt.
OmniRoute v3.8.52 · Node ≥22.22.2 · MIT-Lizenz · omniroute.online