# 🚀 OmniRoute — Das kostenlose KI-Gateway
**Erstellt von [Diego Souza](https://github.com/diegosouzapw)**
## 💰 ~1,62 Mrd. Tokens / Monat über kostenlose Drittanbieter-Tarife
> **Verwende deine eigenen Anbieter-Konten.** Dies ist eine geschätzte Gesamtsumme über separat berechtigte kostenlose Tarife von Drittanbietern und keine Token-Zuteilung von OmniRoute. Registriere dich, beschaffe die erforderlichen Zugangsdaten und verbinde die Anbieter, die du verwenden kannst; jeder Anbieter legt seine Limits, Verfügbarkeit und Bedingungen selbst fest.
>
> Das manuelle Kombinieren kostenloser Tarife ist mühsam — Dutzende SDKs, Dutzende Rate-Limits und keine Ahnung, wie viel tatsächlich verfügbar ist. OmniRoute katalogisiert **465 Einträge kostenloser Tarife über 34 wiederkehrende Pool-Schlüssel** und berechnet die Token-Kennzahl aus den **17 Pools mit einem veröffentlichten positiven monatlichen Budget sowie fünf an das Modell gebundenen Groq-Limits**, dedupliziert nach gemeinsam genutztem Pool. Kontingente, die erst nach einer regionalen Identitätsprüfung verfügbar werden (heute: ModelScope), werden separat angezeigt, +~6 Mio. hinter regionaler Identitätsprüfung, und niemals in die Kennzahl einbezogen. Das Ergebnis bleibt im Dashboard (`/dashboard/free-tiers`) sichtbar.
> Animierte Zusammenfassung der aktuellen 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 aktuellen Katalogs erneut geprüft und **bewegen sich in beide Richtungen** — ein Anbieter beendet einen kostenlosen Tarif und die Zahl sinkt; ein neuer Anbieter kommt hinzu und sie steigt. Wir veröffentlichen, was der Katalog tatsächlich berechnet, niemals einen aufgerundeten Best-Case.
⭐ 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, Tipps zu Anbietern, Roadmap & Support → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](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
# Nach dem Verbinden eines Anbieters Ihren OmniRoute-Schlüssel aus Dashboard → Endpoints kopieren:
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` benötigt eine geeignete Route. Eine frische Installation kann keine geeigneten schlüssellosen Ziele haben, und ein schlüsselloser Anbieter kann Drittanbieter-Clients ablehnen. Anbieter, die mit `tos: avoid` gekennzeichnet sind, einschließlich Kiro, sind standardmäßig vom automatischen Routing ausgeschlossen; das Verbinden eines Kontos setzt diese Einstellung nicht außer Kraft. Lesen Sie vor der Auswahl eines Anbieters den [Leitfaden zu kostenlosen Tarifen](docs/getting-started/FREE-TIERS-GUIDE.md).📦 Schnellstart-Skripte zum Kopieren und Einfügen 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
> Eine **Combo** ist eine Kette von Modellen, zwischen denen OmniRoute **automatisch** routet. Wenn das Kontingent aufgebraucht ist, ein Anbieter ausfällt oder die Kosten stark steigen, kann die Combo zum nächsten geeigneten, funktionsfähigen Modell wechseln. 🛡️
### ⚡ Keine Konfiguration — einfach `auto` verwenden
Es muss keine Combo erstellt werden. Lege dein Modell auf `auto` (oder eine Variante) fest, und OmniRoute erstellt aus deinen verbundenen Anbietern eine virtuelle Combo, die fortlaufend bewertet wird:
Modell-ID
Wofür optimiert wird
auto
🎯 Ausgewogene Standardeinstellung (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/subscription
🎟️ Nur das bereits bezahlte Abonnementkontingent — bei Fehlern geschlossen, niemals ein kostenpflichtiger Fallback (Anleitung)
auto/thrifty
🪜 Zuerst das Tarifkontingent, danach stufenweise die günstigsten kostenpflichtigen Optionen — nach dem Zurücksetzen wieder zurück zum Tarif (Anleitung)
auto/offline
🔋 Größter Spielraum bei Kontingent bzw. Ratenlimit 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 eine Gruppe von Modellen (eines pro Anbieter, standardmäßig 5), die eine Antwort zurückgibt; ein Upstream-Aufruf pro Modell in der Gruppe, keine Fehlerinjektion
##
### 🔀 Oder erstelle deine eigene — 20 Routing-Strategien
Alle **20** Strategien — pro Combo-Schritt frei kombinierbar:
#
Strategie
Funktionsweise
1
priority
Geordnete Liste mit bevorzugtem Ziel — jedes Ziel wird vollständig ausgeschöpft, bevor das nächste verwendet wird 🥇
2
fill-first
Das Kontingent jedes Ziels wird vollständig ausgeschöpft, 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 (dedupliziert)
8
strict-random
Zufallsauswahl ohne Deduplizierung von Wiederholungen 🎲
9
cost-optimized
Kosten pro Anfrage anhand aktueller Katalogpreise minimieren 💸
10
headroom
Das Ziel mit dem größten verbleibenden Kontingent auswählen
11
quota-weighted
Ausgeschöpfte Konten überspringen, dann proportional zum verbleibenden Kontingent ÷ laufender Last auswählen — bestehende Unterhaltungen bleiben gebunden ⚖️
12
reset-window
Das Ziel bevorzugen, dessen Kontingentfenster am frühesten zurückgesetzt wird
13
reset-aware
Nach dem Zeitpunkt der Kontingentzurücksetzung ordnen — kurze Zeitfenster zuerst 📊
14
context-relay
Kontext bei langen Unterhaltungen zwischen Zielen weiterreichen 🧠
15
context-optimized
Die beste Eignung für die aktuelle Kontextgröße auswählen
16
cache-optimized
Jedes wiederverwendbare Prompt-Präfix an dasselbe Konto binden — Treffer im Prompt-Cache maximieren 🎯
17
lkgp
Last-Known-Good Path — bindet an den letzten erfolgreichen Anbieter und greift anschließend auf Regeln zurück
18
auto
Live-Bewertung anhand von 16 Faktoren über alle Verbindungen hinweg 🤖
19
fusion
Verteilung an eine Gruppe von Modellen + ein Bewertungsmodell führt die Ergebnisse zu einer Antwort zusammen 🧬
20
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** (Status, 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 und Details zu den einzelnen Funktionen im Vergleich zu 9router, OpenRouter, CLIProxyAPI und 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.54**. Die vollständige Historie finden Sie in [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted`-Routing** — die 20. Kombi-Strategie überspringt erschöpfte Konten und wählt anschließend aus den übrigen proportional zu Restkontingent ÷ laufender Auslastung, wobei bestehende Konversationen weiterhin gebunden bleiben. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Headless-Modus** — `omniroute serve --headless` (oder `OMNIROUTE_HEADLESS=1`) führt ausschließlich die `/v1/*`-Proxy-Engine aus; Dashboard und dashboardexklusive Subsysteme bleiben deaktiviert. → [Headless-Modus](docs/guides/HEADLESS.md)
- **🔎 Modellerkennung** — `/v1/models` filtert nach Fähigkeiten, Kontext, Typ und Text, und `POST /v1/models/query` gibt eine kurze, deterministische Auswahlliste mit derselben Sichtbarkeit pro Schlüssel zurück. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **🔑 Routing-Steuerung pro Schlüssel** — binden Sie einen API-Schlüssel mit `forcedModel` an ein einzelnes Modell oder eine Kombi und fügen Sie die Modelle und Kombis eines Schlüssels atomar hinzu oder entfernen Sie sie (`/api/keys/{id}/access`). → [API-Referenz](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Präzisere PII-Kontrollen** — Auswahl nach Typ, bis zu 20 validierte benutzerdefinierte Maskierungsmuster und Erkennungszähler pro Typ; die Maskierung selbst bleibt optional. → [Guardrails](docs/security/GUARDRAILS.md)
- **🌍 67 Sprachen** — Dashboard, Dokumentationsspiegel und CLI, wobei `npm run i18n:add-locale` eine Sprache mit einem einzigen Befehl überall hinzufügt. → [i18n-Leitfaden](docs/guides/I18N.md)
- **🎛️ OmniConductor** — eingehende A2A-Delegation an Ihre Agent-Flotte, Conductor-Fähigkeiten 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** — umfangreiche Chat-Anfragen werden in die Warteschlange eingereiht, statt mit 503 abgewiesen zu werden, mit atomaren RPM-Rollingleases pro Verbindung. → [Resilienz-Leitfaden](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanonische Reihenfolge von `/v1/models`** — ein zusammenhängender, nach Anbieter gruppierter Block pro Anbieter (Kombis zuerst), stabil über alle Katalogquellen hinweg. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **🗜️ Härtung der Komprimierung** — standardmäßig aktivierter Aufblähungsschutz, Caveman-Pakete für DE / FR / JA und Chinesisch (wényán), RTK-Filter für Gradle und .NET. → [Komprimierung](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Ehrliche Pauschalkosten** — Abonnement- und Coding-Plan-Anbieter werden in der Kostenanalyse mit **$0** angezeigt; Budget, Kontingent und Routing führen weiterhin Schätzungen durch. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-Routing** — teilt das Kontingent eines gemeinsamen Kontos fair auf gebündelte Schlüssel auf und verleiht ungenutzte Anteile, sodass die Kapazität vollständig genutzt wird. → [Resilienz-Leitfaden](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI-/Agent-Einrichtung mit einem Befehl** — 15 registrierte `setup-*`-Befehle; `omniroute run` startet 7 CLIs (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` unterstützt 11 Ziele mit einer interaktiven Anbieter- und Modellauswahl sowie Favoriten pro Kontext. → [CLI-Integrationen](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Remote-Modus** — steuern Sie ein entferntes OmniRoute mit bereichsbezogenen Tokens (`connect` / `contexts` / `tokens`) sowie einem `antigravity`-OAuth-Hilfsprogramm für VPS-Installationen. → [Remote-Modus](docs/guides/REMOTE-MODE.md)
- **🧭 Intelligenteres Auto-Routing** — `auto/:`-Kombis, **Fusion** (Modell-Panel plus Judge), aufgabenbewusstes Routing und Überschreibungen für Modell, Modus und USD-Budget pro Anfrage. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Erweiterbare Komprimierung** — 12 kombinierbare Engines plus Compression Studios: LLMLingua-2, zweistufiges Ultra, omniglyph, Fidelity-Gate pro Schritt, GCF v3.2 und ein Editor zum Ziehen und Neuanordnen. → [Komprimierung](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparente MITM-Entschlüsselung (TPROXY)** — Capture-CLIs, die Proxy-Umgebungsvariablen ignorieren, mit einer CA pro SNI und einem Installationsprogramm für den Trust Store. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Kosten-Telemetrie überall** — `X-OmniRoute-*`-Kosten-/Nutzungsheader an jedem Endpunkt, ein Header für Einsparungen durch Cache-Treffer und USD-Ausgabenlimits pro Schlüssel. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **🧠 Speicher, den Sie kontrollieren** — standardmäßig deaktiviert, optional aktivierbare int8-Vektorquantisierung plus typisierter Verfall, sowie `x-omniroute-no-memory` pro Anfrage. → [Speicher](docs/frameworks/MEMORY.md)
- **🛡️ Sicherheit** — Schutz gegen Prompt-Injection auf jeder LLM-Route (Red-Team-Suite), optionaler Schutz zur Maskierung von Zugangsdaten (entfernt durchgesickerte API-Schlüssel/Secrets in beide Richtungen), kostenlose Websuche über DuckDuckGo als letzter Ausweg und eine optionale OIDC-Anmeldesperre für das Dashboard (die Anmeldung per Passwort bleibt immer verfügbar). → [Guardrails](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ätemitverfolgung pro Schlüssel, MITM-Trust ohne Root-Rechte und zh-TW-Lokalisierung. → [Umgebung](docs/reference/ENVIRONMENT.md)
- **🤝 Mehr Anbieter und Agents** — Cloud-Agents (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) mit Browser- und OAuth-Anmeldung, eine erstklassige Ollama-Karte, Claude Opus 5 und Sonnet 5, offizielle Kimi-Partnerschaft (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI … sowie ein überarbeiteter **388-Anbieter-Katalog**. → [Anbieter](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Transparenz beim Routing** — jede Antwort enthält einen `X-OmniRoute-Decision`-Header mit Strategie, Anbieter und Latenz, die sie bereitgestellt haben; eine neue `cache-optimized`-Kombi-Strategie sowie der Auto-Combo-Faktor `cacheAffinity` leiten wiederholte Anfragen an die Verbindung zurück, die das zwischengespeicherte Präfix enthält, und ein schreibgeschützter Endpunkt `/v1/auto-combo/{channel}/candidates` stellt den aktuellen Kandidatenpool eines `auto/*`-Kanals bereit. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Lokale Performance & Infrastruktur** — lokales Redis mit einem Klick, Relay-Deployer für Cloudflare Workers / Deno Deploy sowie Bifrost & 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), mit OpenAI kompatible Batch- & Files-APIs, semantischer Antwort-Cache, Gamification mit Bestenlisten, ACP-Agent-Erkennung (15 integrierte Agents), geplante Log-Exporte nach BigQuery, parallele Multi-Modell-Fan-outs mit `auto/chaos`, eine Telegram-Bot-Bridge, ein integrierter Versionsmanager und kostenlose LMArena-ELO-Ranglisten für Anbieter. → [Dokumentation](docs/README.md)
## 🤖 Kompatible CLIs & Coding Agents
> Eine Konfiguration — `http://localhost:20128/v1` — und **jede** AI-IDE oder CLI läuft mit kostenlosen & kostengünstigen Modellen.
📖 Pro-Tool-Einrichtung für alle 39 Tools (28 CLI Code's + 11 CLI Agents) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode-Plugin → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Starte jedes unterstützte CLI mit OmniRoute in einem einzigen Befehl** — keine Konfigurationsdateien werden geschrieben,
Zugangsdaten werden pro Prozess injiziert, Qwen/Gemini erhalten ein isoliertes temporäres 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ähle Provider+Modell interaktiv aus und schreibe die eigene Konfiguration des Tools:
omniroute configure codex # auch: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Jeder Befehl berücksichtigt den aktiven Remote-Kontext (`omniroute connect `), `--dry-run`
zeigt die exakten Umgebungsvariablen/Argumente zur Vorschau an, ohne auszuführen, und `--api-key-env NAME` hält Geheimnisse
aus deiner Shell-Historie heraus. → [CLI-Integrationen](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 388 KI-Anbieter — 153 im Katalog als kostenlos markiert
> **388 registrierte Anbieter** in den kanonischen Sammlungen für Chat, Medien, Suche, lokal, Cloud-Agenten und Systeme, darunter **153 mit `hasFree: true`-Erkennungsmetadaten**. Das Chat-Modellregister umfasst **239 Anbieter / 3.059 eindeutige Anbieter-Modell-Paare / 1.475 rohe Modell-IDs**; der separate Katalog für kostenlose Kontingente enthält **471 Zeilen pro Modell**, **34 wiederkehrende Kontingente** und **52 dauerhaft kostenlose Anbieter ohne wiederkehrende Kosten bzw. ohne erforderlichen Schlüssel**. Diese Nenner unterscheiden sich absichtlich; Definitionen und poolbereinigte Berechnungen finden Sie in der [Anbieterreferenz](docs/reference/PROVIDER_REFERENCE.md) und unter [Kostenlose Tarife](docs/reference/FREE_TIERS.md).
### 🏢 Jedes große 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 350 weitere — jedes Symbol wird live aus dem Anbieter-Katalog des Dashboards aufgelöst. 📖 [Anbieterreferenz](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Für immer kostenlos — 0 $, keine Karte
OpenCode Zen DeepSeek V4, Nemotron 3 Kein Token-Limit
Kilo Code Automatischer Router, Tencent Hy3 Für immer kostenlos
Requesty GPT-OSS 120B, Nemotron Für immer kostenlos
### 🧩 Neu: OmniRoute im nativen Copilot Chat von VS Code
> Keine neue Seitenleiste, kein neuer Chat- UI – jedes Modell, OmniRoute bedient, wird direkt im angezeigt**Copilot Chat-Modellauswahl, die Sie bereits verwenden** . Seit VS Code 1.122 funktionieren Anbietermodelle ohne GitHub -Anmeldung oder Copilot Abonnement – Agent-Modus, Tool-Calling und Vision, kostenlos.
Installieren Sie die** [OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** Richten Sie die Erweiterung auf Ihren OmniRoute -Server (standardmäßig `localhost:20128`) und öffnen Sie dann Copilot Chat → Model Picker →** Modelle verwalten…** →**OmniRoute** .
Im Editor: Öffnen Sie die** Erweiterungen** ansehen, suchen** „OmniRoute“** , klicken** Installieren** – funktioniert in beiden Geschäften auf die gleiche Weise. Quelle, Probleme und das Veröffentlichungs-Runbook live bei [diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [VS Code Copilot Chat-Anleitung](docs/guides/VSCODE-COPILOT.md) – Einrichtung, was der Picker anzeigt, Dashboard-in-a-Tab, Fehlerbehebung
### 🎩 Neu: OmniRouteTray – Ihr Gateway, lebend in der Menüleiste
> `omniroute serve` ist am glücklichsten, wenn es immer eingeschaltet ist.** [OmniRouteTray](https://github.com/zoispag/omniroute-tray)** verwandelt dies in eine Menüleisten-App für macOS, die man einfach einstellen und vergessen kann: Sie startet den Server, hält ihn über Neustarts hinweg am Leben, aktualisiert ihn an Ort und Stelle und stellt Ihr Live-Token-Budget nur einen Klick entfernt –** Kein Terminalfenster offen gelassen, kein `npm install -g omniroute` zum Babysitten.**
Gebaut mit [Tauri v2](https://v2.tauri.app/) (einem Rust-Kern von der Größe eines Rundungsfehlers), liefert es seine eigene signierte Node-24-Laufzeit und verwaltet eine App-eigene OmniRoute Installation, sodass es nie mit Ihrem globalen `node`/`bun` zu kämpfen hat. Es** teilt Ihre vorhandene `~/.omniroute/` -Konfiguration und -Datenbank** – es ist also derselbe OmniRoute, den du bereits läufst, nur mit Hut. 🎩
Was es macht
Wie
🟢 Überwacht den Server
Erzeugt Omniroute Serve und übernimmt eine bereits laufende Instanz, anstatt sie zu duplizieren
📊 Live-Nutzung auf einen Blick
Anbieterkontingentbalken, Claude session/weekly Limits mit Reset-Countdowns, 30-Tage-Kostenaufschlüsselung
🔄 Automatische Aktualisierungen an Ort und Stelle
Gestaffelte Installation, Atomic Swap, Rollback bei Fehler – immer auf der neuesten Version
🚀 Start bei der Anmeldung
Optionaler Start bei der Anmeldung; Nur in der Taskleiste, kein Dock-Symbol
🩺 Arzt & Protokolle
Ein-Klick-Diagnose und Serverprotokollzugriff
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Bevorzugen Sie einen Download? Holen Sie sich die neueste .dmg von
veröffentlicht . Quelle, Probleme und Build
Dokumente leben unter zoispag/omniroute-tray.
💛 Ein Community-Projekt von @zoispag – keine offizielle OmniRoute Veröffentlichung.
> Über den Server hinaus ist OmniRoute ein **vollständiges Kommandozeilen-Cockpit** mit **über 80 Befehlen** sowie offenen Agentenprotokollen, sodass ein KI-Agent es **selbststä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 läuft auf einem Server? Steuere es von deinem Laptop aus mit **derselben CLI**. Melde dich einmal
mit einem bereichsbeschränkten Zugriffstoken an; danach richtet sich jeder Befehl an den Remote-Server.
```bash
omniroute connect 192.168.0.15 # Passwort → bereichsbeschränktes Token, als Kontext gespeichert
omniroute models # ← 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 Tokens für andere Rechner erstellen
omniroute contexts use default # ← zurück zum lokalen Server wechseln
```
Tokens sind auf `read` / `write` / `admin` beschränkt; Routen, die Prozesse starten, bleiben auf Loopback beschränkt.
📖 [Remote-Modus](docs/guides/REMOTE-MODE.md)
### 🤝 Einen Agenten verbinden — und OmniRoute selbst steuern lassen
Stelle OmniRoute über **MCP**, **A2A**, eine **REST API**, **Webhooks** oder eine **Remote-CLI** bereit — jeder geeignete Agent (oder dein eigener Code) erhält damit die Kontrolle über das gesamte Gateway: Routing, Anbieter, Combos, Cache, Komprimierung und Speicher — autonom. Die folgenden HTTP-Endpunkte werden unter `http://localhost:20128` bereitgestellt.
Schnittstelle
Endpunkt / Befehl
Verwendungszweck
🧰 MCP (stdio)
omniroute --mcp
In Claude Desktop, Cursor oder einen beliebigen MCP-Client integrieren
Anfrage- und Kontingentereignisse an Slack, Discord, Telegram oder eine beliebige URL senden
🛰️ Remote-CLI
omniroute connect
Eine Remote-Instanz mit bereichsbeschränkten Zugriffstokens 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
### 📖 So funktioniert es — Pipeline, Architektur & Einsparungsberechnung
Die standardmäßige gestapelte Kombination verwendet `RTK → Caveman`. Wenn beide auf dieselbe Tool-/Kontext-Payload angewendet werden, summieren 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 durch die Schutz-Engine zur Erhaltung **immer geschützt**.
> **Warum viele Tokens verwenden, wenn wenige ausreichen?** Jede Anfrage durchläuft die Komprimierungspipeline von OmniRoute **transparent** — ohne Änderungen am Client. Sie besteht jetzt aus einer **Kette von 12 kombinierbaren Engines**, die in der jeweiligen Reihenfolge ausgeführt und je nach Routing-Kombination beliebig kombiniert werden — aufbauend auf Ideen aus [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).
### 🧱 Die Kette aus 12 Engines
Die Engines werden in Pipeline-Reihenfolge ausgeführt; jede kann unabhängig aktiviert und pro Kombination konfiguriert werden:
#
Engine
Funktionsweise
1
Session-Dedup
Entfernt Inhalte, die sich über mehrere Turns wiederholen (inhaltsadressiert, Turn-übergreifend)
2
CCR
Archiviert große Blöcke hinter Abrufmarkierungen, die bei Bedarf abgerufen werden
3
Lite
Entfernt überflüssige Leerzeichen und kürzt Bild-URLs (latenzarme Baseline)
4
RTK
Intelligente Filterung, Deduplizierung und Kürzung von Tool-Ergebnissen (befehlsorientiert)
5
Responses Tool Output
Verlustfreie Verarbeitung mit Priorität auf JSON sowie begrenzte diagnostische Komprimierung für Shell-/Patch-/Such-/Build-Ausgaben (Responses API)
6
Headroom
Verlustfreie tabellarische Komprimierung von JSON-Arrays (~30 %) über einen eingebundenen GCF-Codec
7
Relevance
Extraktive Bewertung von Sätzen anhand der letzten Benutzeranfrage
8
Caveman
Regelbasierte Komprimierung von Prosatexten (~65–75 % bei Ausgaben)
9
Aggressive
Zusammenfassung und schrittweises Altern älterer Turns
10
LLMLingua-2
Semantisches Pruning per ML über MobileBERT ONNX — codesicher, asynchron
11
Ultra
Heuristisches Token-Pruning mit einer optionalen Small-Model-(SLM)-Stufe
12
OmniGlyph
Experimentelle Kodierung des Kontexts als Bild für gemessene Claude Fable 5 über die direkte Anthropic-Leitung; GPT 5.6-Transformer bleiben bis zum Eingang von Provider-Belegen ausfallsicher deaktiviert. Vier Komprimierungsprofile (standardmäßig aggressiv, ausgewogen, coding-sicher, Durchleitung) (am aggressivsten; optional aktivierbar)
Codeblöcke, URLs und strukturierte Daten werden **immer** bytegenau erhalten. **Voreinstellungen mit einem Klick** kombinieren die Engines:
Modus
Einsparung
Am besten geeignet für
🪶 Lite
~15 %
Sichere Standardeinstellung für den Dauerbetrieb
🪨 Standard (Caveman)
~30 %
Tägliche Programmierung
⚡ Aggressive
~50 %
Lange, Tool-intensive Sitzungen
🔥 Ultra
~75 %
Maximale Einsparung
🧰 RTK
60–90 %
Shell-/Test-/Build-/git-Ausgaben
🔗 Gestapelt (RTK → Caveman)
78–95 %
Gemischte Prompts und Tool-Logs
**Praxisbeispiel — Standardmodus:**
> **Vorher (69 Tokens):** _"Der Grund dafür, dass deine React-Komponente wahrscheinlich erneut gerendert wird, ist, dass du bei jedem Render-Zyklus eine neue Objektreferenz erzeugst. Wenn du ein Inline-Objekt als Prop übergibst, erkennt Reacts flacher Vergleich jedes Mal ein anderes Objekt, wodurch ein erneutes Rendern ausgelöst wird. Ich würde empfehlen, `useMemo` zu verwenden, um das Objekt zu memoizen."_
>
> **Nachher (19 Tokens):** _"Neue Objektreferenz bei jedem Rendern. Inline-Objekt-Prop = neue Referenz = erneutes Rendern. In `useMemo` einschließen."_
>
> **Gleiche Antwort. 72 % weniger Tokens. Kein Genauigkeitsverlust.** ✅
**PT-BR-Beispiel — [Troglodita](https://github.com/leninejunior/troglodita)-Modus:**
> **Davor (42 Token):** _„Das Problem ist, dass die Komponente erneut gerendert wird, weil in jedem Renderzyklus eine neue Objektreferenz erstellt wird. Ich würde die Verwendung von useMemo empfehlen.“_
>
> **Danach (12 Token):** _„Erneutes Rendern: neue Referenz in jedem Zyklus (Inline-Objekt neu erstellt). `useMemo` verwenden.“_
>
> **Dieselbe Antwort. ~70 % weniger Token. Technische Genauigkeit unverändert.** ✅
### 🎚️ Jenseits der Engines — Ausgabestile, der adaptive Regler & Steuerung pro Anfrage
Die 12 oben genannten Engines verkleinern, was **hineingeht**. Drei weitere Ebenen bestimmen **wie**, **wann** und was **herauskommt**:
- **🪄 Ausgabestile** _(Steuerung der Ausgabeachse)_ — fügen deterministische, cache-sichere Anweisungen zur Formung der Antwort ein; kombinierbar, jeweils mit der Intensität `lite` / `full` / `ultra`. Das Hinzufügen eines Stils ist ein einzeiliger Registry-Eintrag:
- **Knappes Prosaformat** — Füllwörter / Artikel / Absicherungen entfernen; technische Substanz exakt beibehalten.
- **Weniger Code** — YAGNI nach dem Prinzip „fauler Senior-Entwickler“: kleinste funktionierende Änderung, kein nicht angefordertes Gerüst.
- **Pferdeschwanz (fauler Senior-Entwickler)** — die YAGNI-Leiter hinaufsteigen, die Grundursache beheben, kleinstmöglicher funktionierender Diff.
- **Ich habe ADHS (aktionsorientiert)** — nächste Aktion zuerst, Schritte nummeriert, ein konkrester nächster Schritt, keine Einleitung.
- **Knappes CJK (文言)** — ultraknappes klassisch-chinesisches Format (auf `zh` beschränkt).
- **🎯 Adaptives Kontextbudget** _(der Regler)_ — statt eines einzelnen Ein-/Aus-Token-Schwellenwerts werden die günstigsten und verlustärmsten Engines nur so weit eskaliert, wie es nötig ist, damit die Eingabe in das Kontextfenster des Modells **passt**. Richtlinie: `reserve-output` (Standard, modellabhängig) · `percentage` · `absolute`. Modus: `floor` (passt garantiert) · `replace-autotrigger` (Ihre explizite Auswahl hat Vorrang) · `off` (Legacy-Schwellenwert).
- **🎛️ Wo die Komprimierung festgelegt wird** _(Vorrang, hoch → niedrig)_ — Anfragebezogener `x-omniroute-compression`-Header › Routing-Kombinationsüberschreibung › aktives benanntes Profil › adaptiver / automatischer Trigger › Panel-Standard › deaktiviert. Der angewendete Plan wird im Antwort-Header `X-OmniRoute-Compression: ; source=` zurückgegeben.
Automatisch anhand des Token-Schwellenwerts auslösen, den adaptiven Regler aktivieren, ein benanntes Profil festlegen, eine einmalige Einstellung pro Anfrage setzen oder eine Pipeline pro Routing-Kombination zuweisen — je nachdem, was für die Arbeitslast geeignet ist. Ein optional aktivierbares Offline-**Eval-Harness** (`npm run eval:compression`) bewertet die Genauigkeit im Verhältnis zu den Einsparungen 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
```
> 💡 Sie sehen `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 blockiert möglicherweise Pakete-Lebenszyklusskripte, sofern sie nicht zugelassen sind. Das `postinstall` von OmniRoute (`node scripts/build/postinstall.mjs`) ist erforderlich, um die nativen Laufzeitdateien vorzubereiten. Erlauben Sie beim globalen Installieren die in der npm-Warnung genannten Pakete. Für den von OmniRoute 3.8.54 gemeldeten Paketsatz:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Um diese Zulassungsliste für zukünftige globale Installationen wiederzuverwenden, konfigurieren Sie sie einmal und installieren Sie anschließend normal:
>
> ```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 Releases ändern. Wenn npm eine andere Liste meldet, verwenden Sie die in dieser Warnung genannten Paketnamen. Durch die Zulassung eines Pakets dürfen dessen Installationsskripte ausgeführt werden.
> **Verwenden Sie Gemini Web oder einen anderen Web-Cookie-Anbieter?** Das npm-Paket enthält
> Playwright, aber nicht dessen Chromium-Binärdatei. Lesen Sie den Hinweis zur
> [Playwright-Chromium-Einrichtung](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium),
> bevor Sie die erste Anfrage an einen Web-Anbieter senden.
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 Kontingent zu Ihrem Anwendungsfall passen → fügen Sie seinen API-Schlüssel hinzu oder schließen Sie den 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); Verfügbarkeit ohne Schlüssel ist nicht garantiert, und Anbieter mit der Markierung `tos: avoid` werden standardmäßig aus `auto` ausgeschlossen.
**3) Ihr Coding-Tool konfigurieren**
```txt
Base URL: http://localhost:20128/v1
API Key: [aus Dashboard → Endpoints kopieren]
Model: auto (Routing unter geeigneten Verbindungen — oder Anbieter/Modell auswählen)
```
**4) Überprüfen, ob alles funktioniert**
```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 Routing und Fallbacks für Sie.
Wenn Ihr Client keine benutzerdefinierten Header senden kann, stellt OmniRoute außerdem tokenisierte Kompatibilitätsaliase 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. Header-Authentifizierung bleibt der bevorzugte Modus.
## 📦 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.
wreq-js — JA3- / JA4-TLS-Fingerprinting-Impersonation, Proxy mit 3 Ebenen
Ausfallsicherheit
Leistungsschutzschalter, exponentielles Backoff, Schutz vor dem „Thundering-Herd“-Effekt, automatische Selbstheilung von Kombinationen
Protokollierung
pino — strukturierte JSON-Protokolle mit Anfragekontext
Tests
Node.js-Test-Runner + Vitest — über 60.000 statische Testdeklarationen in über 8.400 erfassten Testdateien (Unit-, Integrations-, E2E-, Sicherheits- und Ökosystemtests)
Strategie für die Testabdeckung von mehr als 60.000 statischen Testdeklarationen in mehr als 8.400 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
Erhebung am 2026-11-03 03:01:19 UTC mit dem aktuellen Stand von release/v3.8.53 (05bc048d6c). Die paginierte GitHub-GraphQL-Erhebung enthält 9.947 zusammengeführte PRs: 4.130 vom Repository-Eigentümer, 240 von Dependabot, 6 von anderen Bots/Apps und 5.571 externe PRs von 883 unterschiedlichen Mitwirkenden. „Geänderte Zeilen“ entspricht den Additionen + Löschungen in GitHub und umfasst generierte Dateien, Sperrdateien, Kataloge, Übersetzungen und Dokumentation; es handelt sich um Änderungen, nicht um selbst verfasste LOC. Bei 53 PRs weisen die GitHub-Diffs mehr als 500.000 Zeilen auf (beispielsweise listet #13399, eine einzelne Provider-Ergänzung, 2.347 geänderte Dateien), wodurch mehrere der oben genannten Summen erhöht werden. Gleichstände werden gemeinsam eingestuft.
### GitHub-zugeordneten Commits
Erneut geprüft am 2026-11-03 02:09:16 UTC: GitHub-zugeordnete Commits, die von der Contributors API von GitHub für den Standardbranch release/v3.8.53 gemeldet wurden. Die API hat 903 Identitäten zurückgegeben (429 Benutzer, 2 Bots, 472 anonym); diese Tabelle schließt den Maintainer, Bots und anonyme Identitäten aus und behält Gleichstände bei. Sie unterscheidet sich sowohl vom oben aufgeführten Ranking der zusammengeführten PRs als auch von der untenstehenden Git-Metadatenerhebung.
> 🙏 Die Funktionen, Fehlerbehebungen und Infrastrukturverbesserungen dieser Mitwirkenden sind ein **Kernbestandteil** dessen, was OmniRoute zuverlässig und funktionsreich macht. Jeder Pull Request, jeder Testfall und jede i18n-Übersetzungsdatei ist wichtig. Open Source wird von Menschen wie ihnen entwickelt.
---
## 💖 Sponsoren
Ein herzliches Dankeschön an die Menschen, die OmniRoute aus eigener Tasche finanzieren — jeder Beitrag trägt dazu bei, dass das Projekt kostenlos, unabhängig und in Bewegung bleibt.
… und weitere, die lieber anonym bleiben möchten 💛Öffentliche GitHub-Sponsoren wurden am 2026-10-18 über die GitHub Sponsors GraphQL API erneut überprüft: 11 öffentliche Sponsorings (6 aktiv, 5 ehemalig) von insgesamt 14. Der isActive-Status von GitHub bestimmt die oben aufgeführten Aktiv-Kennzeichnungen; ehemaligen öffentlichen einmaligen Unterstützern wird weiterhin gedankt, und private Sponsoren bleiben anonym. Spenden über Ko-fi, Buy Me a Coffee, Liberapay, PIX und Kryptowährungen werden nicht aufgeführt, da für sie kein öffentlicher Sponsoreneintrag vorliegt.💖 Sponsor werden → — jeder Dollar trägt dazu bei, dass OmniRoute kostenlos und unabhängig bleibt.
## 👥 1.000+ Mitwirkende
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Geprüft am 02.11.2026 anhand des Live-Tips release/v3.8.531c7135e0fb (7.972 Commits): 1.074 normalisierte menschliche Git-Identitäten — 759 erscheinen als Commit-Autoren (einschließlich des Maintainers) und 315 ausschließlich in expliziten Co-authored-by-Trailern. Die Erhebung wendet .mailmap an, vergleicht E-Mail-Adressen ohne Berücksichtigung der Groß-/Kleinschreibung, führt numerische und einfache GitHub-Noreply-Adressen nur zusammen, wenn sie denselben Handle codieren, schließt 29 Bot-/Agent-/Service-/Platzhalter-Identitäten aus und führt gewöhnliche E-Mail-Adressen nicht allein deshalb zusammen, weil ihre Anzeigenamen übereinstimmen. Die Prüfung vom 24.08.2026 veröffentlichte 639; dieselbe Methode auf der Basis ac02c5b42f dieser Prüfung ergibt 619, daher stammt der Anstieg von neuen Mitwirkenden und nicht von einer weniger strengen Methode.
### So können Sie beitragen
1. Forken Sie das Repository
2. Erstellen Sie einen Branch vom **aktiven** Tip von `release/vX.Y.Z` (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 den Branch (`git push origin feat/amazing-feature`)
6. Erstellen Sie einen Pull Request mit **base = diesem `release/vX.Y.Z`-Branch**
Ausführliche Richtlinien finden Sie unter [CONTRIBUTING.md](CONTRIBUTING.md).
### Eine neue Version veröffentlichen
```bash
# Einen Release erstellen — npm publish wird automatisch ausgeführt
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 dort an wurde jedes unten aufgeführte Subsystem von einem Open-Source-Projekt inspiriert, das diesen Weg zuerst beschritten hatte. Jedes einzelne hat einen konkreten Teil von OmniRoute geprägt. Dies ist unser Dank an sie alle. 🙏
> ⭐ Die Sternzahlen wurden am 3. November 2026 über die REST-API von GitHub verifiziert — gebt diesen Projekten einen Stern. Die Zahlen sind eine exakte Momentaufnahme dieses Datums und werden sich naturgemäß ändern.
### 🧬 Abstammung & Gateway
Das AI-Gateway, dessen öffentliche Preisdatenbasis unsere Synchronisierung zur Kostenverfolgung speist und dessen Modell zur Anbieter-Normalisierung unser Routing beeinflusst hat.
In die mitgelieferte ChatGPT Web → Codex Responses-Bridge übernommener MIT-Quellcode, einschließlich Adaptern für Browsersitzungen, Antwort-Framing, Nutzungsdaten und Websuche.
Muster, die in Stream-Wiederherstellung, No-Thinking-Aliase, Fallback-Websuche, Sliding-Window-Limits, Log-Redaktion und gehärtete Launcher-Abläufe übernommen wurden.
Claude-Code-kompatible Transform-Standardeinstellungen und das Verhalten von Abrechnungs-Headern wurden in OmniRoutes konfigurationsgesteuerte Bridge verallgemeinert.
Seine Grok-Modellzuordnungen, der Fake-TypeError-Statsig-Generator, Request- und Geräte-Standardeinstellungen sowie der NDJSON-Antwortprozessor wurden substanziell in OmniRoutes Grok-Web-Executor übernommen.
Die wichtigste transitive Codequelle hinter grok2api-merged; ihre Implementierungen für Modelle, Header, Payloads, Statsig und Prozessoren sind in der Grok-Web-Abstammung erhalten.
Die zugrunde liegende MIT-Quelle für Grok-Payloads und Geräte-Standardeinstellungen, den Statsig-Generator sowie den Prozessor result.response, der über TQZHR und grok2api-merged weitergeführt wurde.
Eine von grok2api-merged angegebene transitive Quelle für dessen Proxy-Pool-Schicht; OmniRoute bewahrt diesen Hinweis zur Abstammung, erhebt jedoch keinen Anspruch auf eine Portierung des Proxy-Pools in seinem begrenzten Grok-Web-Executor.
Die ursprüngliche Grok-Web-Implementierung diente als Orientierung für das HTTP-/Browser-Upstream-Design; ihr direkter HTTP-Pfad leitet sich von GrokProxy ab, daher wird keine unabhängige Code-Portierung beansprucht.
Das virale Projekt „warum viele Tokens verwenden, wenn wenige Tokens den Zweck erfüllen“ – seine Caveman-Sprech-Philosophie bildet die Grundlage für unseren standardmäßigen Kompressionsmodus und mehr als 30 Regeln zum Entfernen und Verdichten von Fülltext.
Hochperformante Kompression von Befehlsausgaben – inspirierte unsere RTK-Engine, die JSON-Filter-DSL, die Wiederherstellung von Rohdaten-Ausgaben und die kombinierte RTK → Caveman-Pipeline.
PT-BR-Tokenkompression – bildet die Grundlage für unser pt-BR-Sprachpaket: Reduzierung von Pleonasmen und Entfernung von Füllwörtern, abgestimmt auf die brasilianisch-portugiesische Grammatik.
Der virale YAGNI-Coder-Skill eines „faulen Senior-Entwicklers“ – inspirierte unseren less-code-Ausgabestil: eine Steuerung der kleinsten funktionierenden Änderung, die _generierten_ Code reduziert (das Ausgabeachsen-Gegenstück zu Cavemans knappem Sprachstil).
Inhaltsbewusste, dateitypspezifische Ausgabekompression mit fehlerbewusstem Abbruch – bestätigte unsere dateitypspezifische Weiterleitung und das Überspringen bei zu geringem Gewinn.
Spaltenbasiertes Rust-JSON, inhaltsadressierter Abruf und Deduplizierung über mehrere Nachrichten hinweg – bestätigten unser headroom/ccr/session-dedup-Engine-Design sowie die cache-stabile Invariante „Die komprimierte Form ist unabhängig von ihrer Position“.
Toolkit für die TypeScript Compiler API – inspirierte unsere parserbasierte Entfernung von Kommentaren, bei der Zeichenketten-, Template- und reguläre Ausdrucksliterale erhalten bleiben.
Die MITM-Abfangung und -Analyse des Datenverkehrs zwischen Coding-Assistent und LLM prägte die frühen Anforderungen an den Traffic Inspector. Vier zuvor abgeleitete Module – SSE-Zusammenführung, Konversationsnormalisierung, Geheimnisverdeckung und Header-Bereinigung – wurden durch unabhängige Clean-Room-Implementierungen auf Grundlage öffentlicher Protokollstandards ersetzt. Die beiden Host-Passthrough-Oberflächen (passthrough.ts und _internal/bypass.cjs) bleiben interne OmniRoute-Implementierungen und werden unabhängig klassifiziert; sie wurden nicht im Rahmen dieser Ersetzung neu geschrieben.
Transparente Proxy-Routenführung pro Prozess – inspirierte unseren absturzsicheren MITM-Abbau, Socket-Leerlauf-Timeouts, die Prozesszuordnung über /proc und die TPROXY-Erfassung.
Eine kuratierte Liste von Bibliotheken mit sicheren Standardeinstellungen, die unsere Sicherheitsentscheidungen leitet (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Inspirierte die Deduplizierung von Anfragen, den Notfall-Fallback ohne Kosten, steckbare Auto-Combo-Strategien und die mehrsprachige Intent-Klassifizierung.
Seine kontobewusste Modellneuzuordnung, die Validierung ausführbarer Pfade und das Verhalten von Planbezeichnungen flossen in die Antigravity-Laufzeitumgebung von OmniRoute ein.
Identifizierte die Kontingent-Oberfläche von Grok Build; OmniRoute überprüfte und korrigierte anschließend unabhängig das Format der Live-Drahtübertragung.
## 📄 Lizenz
MIT-Lizenz – siehe [LICENSE](LICENSE) für weitere Informationen.
---
**[⬆ Zurück zum Anfang](#-omniroute)** · Mit ❤️ für die Open-Source-KI-Community entwickelt.
Erstellt von Diego Souza · OmniRoute v3.8.54 · Node ≥22.22.2 · MIT-Lizenz · omniroute.online