## 💰 ~1,62 Mrd. Tokens / Monat über kostenlose Tarife von Drittanbietern
> **Bring deine eigenen Provider-Konten mit.** Dies ist eine geschätzte Gesamtsumme über separat berechtigte kostenlose Tarife von Drittanbietern, keine Token-Zuweisung von OmniRoute. Melde dich an, hole dir die erforderlichen Zugangsdaten und verbinde die Provider, die du nutzen kannst; jeder Provider kontrolliert seine Limits, Verfügbarkeit und Bedingungen.
>
> Kostenlose Tarife von Hand zu stapeln ist mühsam — Dutzende SDKs, Dutzende Rate-Limits und keine Ahnung, wie viel du tatsächlich hast. OmniRoute katalogisiert **467 Einträge kostenloser Tarife über 34 wiederkehrende Pool-Schlüssel** und berechnet die Token-Kennzahl aus den **17 Pools mit einem veröffentlichten positiven Monatsbudget plus fünf modellspezifischen Groq-Caps**, dedupliziert nach gemeinsamem Pool. Kontingente, die erst nach einer regionalen Identitätsprüfung freigeschaltet werden (derzeit: ModelScope), werden separat ausgewiesen, +~6 Mio. hinter regionaler Identitätsverifizierung, und fließen nie in die Kennzahl ein. Das Ergebnis bleibt im Dashboard sichtbar (`/dashboard/free-tiers`).
> Animierte Zusammenfassung der Live-Seite `/dashboard/free-tiers`. Vollständige Methodik (Pool-Deduplizierung, Credit-Stufen, Provider-Bedingungen): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Diese Zahlen werden alle zwei Wochen gegen den Live-Katalog neu geprüft und **bewegen sich in beide Richtungen** — ein Provider beendet einen kostenlosen Tarif und die Zahl sinkt; ein neuer kommt hinzu und sie steigt. Wir veröffentlichen, was der Katalog tatsächlich berechnet, niemals einen aufgerundeten Bestfall.
⭐ Gib dem Repo einen Stern, wenn OMNIROUTE dir geholfen hat, Geld zu sparen und deine Arbeit einfacher zu machen.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Werde Teil der Community
**👋 Folge dem Maintainer — erfahre als Erster von neuen Providern, Releases & 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, Provider-Tipps, 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) / [🇧🇷 Brasil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Das Gateway wächst weiter
## 🆓 Installieren, einen Anbieter verbinden und dann über einen einzigen Endpunkt routen
```bash
# Nachdem du einen Anbieter verbunden hast, kopiere deinen 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":"Hello!"}]}'
```
`auto` benötigt eine berechtigte Route. Eine frische Installation kann keine berechtigten keyless-Ziele haben, und ein keyless-Anbieter kann Drittanbieter-Clients ablehnen. Anbieter, die mit `tos: avoid` markiert sind, einschließlich Kiro, sind standardmäßig vom automatischen Routing ausgeschlossen; das Verbinden eines Kontos hebt diese Einstellung nicht auf. Siehe den [Free-Tiers-Guide](docs/getting-started/FREE-TIERS-GUIDE.md), bevor du einen Anbieter auswählst.📦 Kopierfertige Quickstart-Skripte 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 & 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)**.
## ✨ Neuigkeiten
> Aktuelle Highlights von **v3.8.20 → v3.8.53**. Die vollständige Historie steht in [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted`-Routing** — die 20. Combo-Strategie überspringt erschöpfte Konten und zieht dann unter den übrigen proportional zu Restkontingent ÷ aktiver Last; bestehende Unterhaltungen bleiben angepinnt. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Headless-Modus** — `omniroute serve --headless` (oder `OMNIROUTE_HEADLESS=1`) startet nur die `/v1/*`-Proxy-Engine, während Dashboard und reine Dashboard-Subsysteme aus bleiben. → [Headless-Modus](docs/guides/HEADLESS.md)
- **🔎 Modell-Erkennung** — `/v1/models` filtert nach Fähigkeit, Kontext, Art und Text, und `POST /v1/models/query` liefert eine kurze, deterministische Auswahl mit derselben Sichtbarkeit pro Schlüssel. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **🔑 Routing-Steuerung pro Schlüssel** — einen API-Schlüssel mit `forcedModel` an ein Modell oder eine Combo binden und die Modelle und Combos eines Schlüssels atomar hinzufügen oder entfernen (`/api/keys/{id}/access`). → [API-Referenz](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Feinschliff bei PII-Kontrollen** — Auswahl pro Typ, bis zu 20 validierte benutzerdefinierte Maskierungsmuster und Erkennungszähler pro Typ; die Maskierung selbst bleibt opt-in. → [Guardrails](docs/security/GUARDRAILS.md)
- **🌍 67 Sprachen** — Dashboard, Docs-Spiegel und CLI, wobei `npm run i18n:add-locale` eine Sprache überall mit einem einzigen Befehl hinzufügt. → [i18n-Leitfaden](docs/guides/I18N.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 Admission & Überlastschutz** — schwere Chat-Anfragen werden eingereiht statt mit 503 beantwortet, mit atomaren rollierenden RPM-Leases pro Verbindung. → [Resilienz-Leitfaden](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanonische `/v1/models`-Reihenfolge** — ein zusammenhängender, nach Anbieter gruppierter Block pro Anbieter (Combos zuerst angepinnt), stabil über jede Katalogquelle hinweg. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **🗜️ Härtung der Kompression** — standardmäßig aktiver Inflation Guard, Caveman-Pakete für DE / FR / JA + Chinesisch (wényán), RTK-Filter für Gradle & .NET. → [Kompression](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Ehrliche Pauschalkosten** — Abo- / Coding-Plan-Anbieter werden in der Kostenanalyse mit **$0** ausgewiesen; Budget, Kontingent & Routing schätzen weiterhin. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-Routing** — das Kontingent eines gemeinsamen Kontos fair über gepoolte Schlüssel aufteilen, work-conserving, sodass ungenutzte Anteile verliehen werden. → [Resilienz-Leitfaden](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI-/Agenten-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 interaktiver Anbieter+Modell-Auswahl und Favoriten pro Kontext. → [CLI-Integrationen](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Remote-Modus** — steuern Sie ein entferntes OmniRoute mit bereichsbezogenen Tokens (`connect` / `contexts` / `tokens`) + einem `antigravity`-OAuth-Helfer für VPS-Installationen. → [Remote-Modus](docs/guides/REMOTE-MODE.md)
- **🧭 Intelligentere automatische Weiterleitung** — `auto/:`-Combos, **Fusion** (Modellpanel + Judge), aufgabenbewusstes Routing, Überschreibungen pro Anfrage für Modell / Modus / USD-Budget. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Austauschbare Kompression** — 12 kombinierbare Engines + Compression Studios: LLMLingua-2, zweistufiges Ultra, omniglyph, Fidelity-Gate pro Schritt, GCF v3.2, Drag-and-Drop-Editor. → [Kompression](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparente MITM-Entschlüsselung (TPROXY)** — erfassen Sie CLIs, die Proxy-Umgebungsvariablen ignorieren, mit einem CA pro SNI + Trust-Store-Installer. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Kosten-Telemetrie überall** — `X-OmniRoute-*`-Kosten-/Nutzungs-Header an jedem Endpunkt, Cache-HIT-Ersparnis-Header, USD-Ausgabenkontingente pro Schlüssel. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **🧠 Speicher unter Ihrer Kontrolle** — standardmäßig aus, opt-in int8-Vektorquantisierung + typisierter Verfall, `x-omniroute-no-memory` pro Anfrage. → [Speicher](docs/frameworks/MEMORY.md)
- **🛡️ Sicherheit** — Prompt-Injection-Schutz auf jeder LLM-Route (Red-Team-Suite), opt-in Guardrail zur Maskierung von Anmeldedaten (redigiert geleakte API-Schlüssel/Geheimnisse in beide Richtungen), kostenlose DuckDuckGo-Websuche als letzte Rückfalloption und ein optionales OIDC-Login-Gate für das Dashboard (Passwort-Login 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 Medienoberfläche. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **🎨 Bild- / Video- / Audiogenerierung** — eine API für Medien: xAI Grok Imagine & Novita AI Video, ComfyUI, Magnific, Adobe Firefly, Segmind und Sprachdienste wie ElevenLabs. → [API-Referenz](docs/reference/API_REFERENCE.md)
- **🌍 Bereitstellung & Betrieb** — Reverse-Proxy-`basePath`, automatische Erkennung der Browsersprache, Geräteverfolgung pro Schlüssel, root-loses MITM-Vertrauen, zh-TW-Lokalisierung. → [Umgebung](docs/reference/ENVIRONMENT.md)
- **🤝 Mehr Anbieter & Agenten** — Cloud-Agenten (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) mit Browser- + OAuth-Login, erstklassige Ollama-Karte, Claude Opus 5 & Sonnet 5, offizielle Kimi-Partnerschaft (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… und ein aufgefrischter **Katalog mit 375 Anbietern**. → [Anbieter](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Routing-Transparenz** — jede Antwort trägt einen `X-OmniRoute-Decision`-Header, der die Strategie/den Anbieter/die Latenz benennt, die sie bedient hat; eine neue `cache-optimized`-Combo-Strategie + Auto-Combo-Faktor `cacheAffinity` leiten wiederholte Anfragen zurück an die Verbindung, die das gecachte Präfix hält, und ein schreibgeschützter Endpunkt `/v1/auto-combo/{channel}/candidates` legt den Live-Kandidatenpool eines `auto/*`-Kanals offen. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Lokale Performance & Infrastruktur** — lokales Redis per Ein-Klick, Relay-Deployer für Cloudflare Workers / Deno Deploy, 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), OpenAI-kompatible Batch- & Files-APIs, semantischer Antwort-Cache, Gamification mit Bestenlisten, ACP-Agent-Erkennung (15 integrierte Agenten), geplanter Log-Export nach BigQuery, `auto/chaos` paralleles Multi-Model-Fan-out, eine Telegram-Bot-Bridge, einen In-App-Versionsmanager und LMArena-ELO-Rankings 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.
📖 Einrichtung pro Tool für alle 37 Tools (27 CLI-Coding-Tools + 10 CLI-Agenten) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode-Plugin → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Starte jede unterstützte CLI mit nur einem Befehl über OmniRoute** — es werden keine Konfigurationsdateien geschrieben,
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 Anbieter und Modell interaktiv auswählen und die eigene Konfiguration des Tools schreiben:
omniroute configure codex # ebenfalls: 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 und Argumente vorab an, ohne sie auszuführen, und `--api-key-env NAME` verhindert, dass Geheimnisse
in deinem Shell-Verlauf landen. → [CLI-Integrationen](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 375 KI-Anbieter — 153 im Katalog als kostenlos markiert
> **375 registrierte Anbieter** in den kanonischen Sammlungen Chat, Media, Search, Local, Cloud-Agent und System, darunter **153 mit `hasFree: true` als Discovery-Metadaten**. Die Chat-Modellregistrierung umfasst **239 Anbieter / 3.059 verschiedene Anbieter-Modell-Paare / 1.475 rohe Modell-IDs**; der separate Katalog für kostenlose Budgets enthält **467 Zeilen pro Modell**, **34 wiederkehrende Pools** und **51 wiederkehrende/schlüssellose Anbieter, die für immer kostenlos sind**. Diese Nenner sind bewusst unterschiedlich; Definitionen und pool-deduplizierte Berechnungen finden sich in der [Provider-Referenz](docs/reference/PROVIDER_REFERENCE.md) und den [kostenlosen Tarifen](docs/reference/FREE_TIERS.md).
### 🏢 Jedes große Labor — über einen einzigen Endpoint
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…und 350+ weitere — jedes Icon wird live aus dem Anbieterkatalog des Dashboards aufgelöst. 📖 [Provider-Referenz](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Für immer kostenlos — 0 $, keine Karte
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.
> Ü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)
## 🗜️ Spare 15–95 % Tokens — automatisch
### 📖 So funktioniert es — Pipeline, Architektur & Sparmathematik
Die standardmäßig gestapelte Kombination führt `RTK → Caveman` aus. Wenn beide auf dieselbe Tool-/Kontext-Payload wirken, verstärken 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 **immer geschützt** durch die Preservation-Engine.
> **Warum viele Tokens verwenden, wenn wenige Tokens den Zweck erfüllen?** Jede Anfrage durchläuft die Kompressionspipeline von OmniRoute **transparent** — ohne Änderungen am Client. Sie ist jetzt ein **Stapel aus 12 kombinierbaren Engines**, die in Reihenfolge ausgeführt und pro Routing-Kombination gemischt und 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).
### 🧱 Der 12-Engine-Stack
Engines laufen in einer Pipeline; jede ist unabhängig umschaltbar und pro Kombination konfigurierbar:
#
Engine
Was sie tut
1
Session-Dedup
Entfernt Inhalte, die über Turns hinweg wiederholt werden (content-addressed, turn-übergreifend)
2
CCR
Archiviert große Blöcke hinter Retrieve-Markern, bei Bedarf abgerufen
Lossless-first JSON + begrenzte diagnostische Kompression für Shell-/Patch-/Such-/Build-Ausgaben (Responses API)
6
Headroom
Verlustfreie tabellarische Kompaktierung von JSON-Arrays (~30 %) über einen eingebundenen GCF-Codec
7
Relevance
Extraktives Satz-Scoring gegen die letzte Nutzeranfrage
8
Caveman
Regelbasierte Prosa-Kompression (~65–75 % auf der Ausgabe)
9
Aggressive
Zusammenfassung + progressives Altern alter Turns
10
LLMLingua-2
ML-semantisches Pruning via MobileBERT ONNX — code-sicher, asynchron
11
Ultra
Heuristisches Token-Pruning mit einer optionalen Small-Model-(SLM-)Stufe
12
OmniGlyph
Experimentelle Kontext-als-Bild-Kodierung für gemessenes Claude Fable 5 auf dem direkten Anthropic-Wire; GPT 5.6-Transformatoren bleiben fail-closed, bis Provider-Nachweise vorliegen. Vier Kompressionsprofile (aggressive Standard, balanced, coding-safe, passthrough) (am aggressivsten; Opt-in)
Codeblöcke, URLs und strukturierte Daten werden **immer bytegenau erhalten**. **Ein-Klick-Presets** kombinieren die Engines:
Modus
Einsparung
Am besten für
🪶 Lite
~15 %
Immer aktiver sicherer Standard
🪨 Standard (Caveman)
~30 %
Tägliches Coding
⚡ Aggressive
~50 %
Lange tool-lastige Sitzungen
🔥 Ultra
~75 %
Maximale Einsparungen
🧰 RTK
60–90 %
Shell-/Test-/Build-/Git-Ausgabe
🔗 Stacked (RTK → Caveman)
78–95 %
Gemischte Prompts + Tool-Logs
**Praxisbeispiel — Standard-Modus:**
> **Vorher (69 Tokens):** _„Der Grund, warum deine React-Komponente neu rendert, ist wahrscheinlich, dass du bei jedem Renderzyklus eine neue Objektreferenz erzeugst. Wenn du ein Inline-Objekt als Prop übergibst, sieht Reacts flacher Vergleich es jedes Mal als ein anderes Objekt, was ein erneutes Rendern auslöst. Ich würde empfehlen, useMemo zu verwenden, um das Objekt zu memoisieren.“_
>
> **Nachher (19 Tokens):** _„Neue Objektreferenz bei jedem Render. Inline-Objekt-Prop = neue Referenz = erneutes Rendern. In useMemo einwickeln.“_
>
> **Gleiche Antwort. 72 % weniger Tokens. Keinerlei Genauigkeitsverlust.** ✅
**PT-BR-Beispiel — [Troglodita](https://github.com/leninejunior/troglodita)-Modus:**
> **Vorher (42 Token):** _„Das Problem besteht darin, dass die Komponente erneut gerendert wird, weil in jedem Renderzyklus eine neue Objektreferenz erstellt wird. Ich würde empfehlen, useMemo zu verwenden.“_
>
> **Nachher (12 Token):** _„Erneutes Rendern: neue Referenz je Zyklus (Inline-Objekt neu erstellt). `useMemo` verwenden.“_
>
> **Gleiche Antwort. ~70 % weniger Token. Technische Präzision bleibt erhalten.** ✅
### 🎚️ Mehr als nur Engines — Ausgabestile, adaptive Regelung und Steuerung pro Anfrage
Die 12 oben genannten Engines reduzieren, was **hineingeht**. Drei weitere Ebenen bestimmen, **wie**, **wann** und was **herauskommt**:
- **🪄 Ausgabestile** _(Steuerung der Ausgabeachse)_ — fügen deterministische, Cache-kompatible Anweisungen zur Gestaltung der Antwort 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 und Relativierungen weglassen; technische Substanz exakt beibehalten.
- **Weniger Code** — „fauler Senior-Entwickler“-YAGNI: kleinste funktionierende Änderung, kein unaufgefordertes Gerüst.
- **Pferdeschwanz (fauler Senior-Entwickler)** — die YAGNI-Leiter hinaufsteigen, die Ursache beheben, kleinstmöglicher funktionierender Diff.
- **Ich habe ADHS (handlungsorientiert)** — mit der nächsten Aktion beginnen, Schritte nummerieren, genau einen konkreten nächsten Schritt nennen, keine Einleitung.
- **Knappes CJK (文言)** — ultraknapper klassisch-chinesischer Stil (durch Gebietsschema auf `zh` beschränkt).
- **🎯 Adaptives Kontextbudget** _(der Regler)_ — statt eines einzigen Ein-/Aus-Token-Schwellenwerts werden die günstigsten Engines mit den geringsten Verlusten nur so weit zugeschaltet, wie es nötig ist, um **in das Kontextfenster des Modells zu passen**. Richtlinie: `reserve-output` (Standard, modellabhängig) · `percentage` · `absolute`. Modus: `floor` (garantiert die Einhaltung) · `replace-autotrigger` (Ihre explizite Auswahl hat Vorrang) · `off` (veralteter Schwellenwert).
- **🎛️ Wo über die Komprimierung entschieden wird** _(Priorität, hoch → niedrig)_ — `x-omniroute-compression`-Header pro Anfrage › Überschreibung durch Routing-Kombination › aktives benanntes Profil › adaptiver Modus / automatische Auslösung › Standardeinstellung im Panel › aus. Der angewendete Plan wird im Antwort-Header `X-OmniRoute-Compression: ; source=` zurückgegeben.
Automatische Auslösung per Token-Schwellenwert, adaptiven Regler aktivieren, ein benanntes Profil festlegen, eine einmalige Einstellung pro Anfrage setzen oder einer Routing-Kombination eine Pipeline zuweisen — je nachdem, was zur Arbeitslast passt. Eine optional aktivierbare Offline-**Evaluierungssuite** (`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 und 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 neuer?** npm kann Lebenszyklus-Skripte von Paketen blockieren, sofern diese nicht zugelassen sind. Das `postinstall`-Skript von OmniRoute (`node scripts/build/postinstall.mjs`) ist erforderlich, um die nativen Laufzeitdateien vorzubereiten. Lassen Sie bei der globalen Installation die in der npm-Warnung genannten Pakete zu. Für die von OmniRoute 3.8.53 gemeldete Paketgruppe:
>
> ```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 führen Sie die Installation anschließend wie gewohnt durch:
>
> ```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. Durch das Zulassen eines Pakets dürfen dessen 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 den 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 voraussetzen. Lesen Sie den [Leitfaden zu kostenlosen Tarifen](docs/getting-started/FREE-TIERS-GUIDE.md); eine schlüssellose Verfügbarkeit ist nicht garantiert, und mit `tos: avoid` gekennzeichnete Anbieter werden standardmäßig aus `auto` ausgeschlossen.
**3) Ihr Programmierwerkzeug konfigurieren**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose provider/model)
```
**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 auf Alternativen aus.
Falls 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. Die Authentifizierung per Header 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.
Testabdeckungsstrategie für über 56.000 statische Testdeklarationen in über 7.800 erfassten Testdateien
# ⭐ Top-Mitwirkende
> OmniRoute wird von einer leidenschaftlichen 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 durchgeführt am 2026-10-18 15:09:09 UTC mit aktuellem release/v3.8.52-Stand 656f01cb43. Die paginierte GitHub-GraphQL-Erhebung umfasst 9.191 zusammengeführte PRs: 3.834 vom Repository-Eigentümer, 229 von Dependabot, 6 von anderen Bots/Apps und 5.122 externe PRs von 835 verschiedenen Mitwirkenden. „Geänderte Zeilen“ entspricht GitHub-Additionen + -Löschungen und enthält generierte Dateien, Lockfiles, Kataloge, Übersetzungen und Dokumentation; es handelt sich um Churn, nicht um selbst verfasste LOC. 49 PRs melden GitHub-Diffs mit über 500.000 Zeilen (zum Beispiel #13399, eine einzelne Anbieter-Ergänzung, listet 2.347 geänderte Dateien), was mehrere der obigen Summen aufbläht. Gleichstände werden gemeinsam eingestuft.
### GitHub-zugeordnete Commits
Erneut geprüft am 2026-10-18 14:44:45 UTC: von der Contributors API des Repositorys gemeldete GitHub-zugeschriebene Commits für den Standardbranch release/v3.8.52. Die API gab 849 Identitäten zurück (429 Nutzer, 2 Bots, 418 anonyme); diese Tabelle schließt den Maintainer, Bots und anonyme Identitäten aus und behält Gleichstände bei. Sie unterscheidet sich sowohl vom obigen Ranking der gemergten Pull Requests als auch von der folgenden Erhebung anhand der Git-Metadaten.
> 🙏 Die Features, Bugfixes und Infrastrukturverbesserungen dieser Contributors 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 aufgebaut.
---
## 💖 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.
## 👥 Über 900 Mitwirkende
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Geprüft am 2026-10-18 am aktuellen Stand von release/v3.8.52, Commit ad160ab2d1 (6.826 Commits): 993 normalisierte menschliche Git-Identitäten — 707 erscheinen als Commit-Autoren (einschließlich des Maintainers) und 286 ausschließlich in expliziten Co-authored-by-Trailern. Die Erhebung wendet .mailmap an, vergleicht E-Mail-Adressen ohne Berücksichtigung der Groß- und Kleinschreibung, führt numerische und reguläre GitHub-Noreply-Adressen nur dann zusammen, wenn sie denselben Benutzernamen codieren, schließt 26 Bot-/Agenten-/Dienst-/Platzhalteridentitäten aus und führt gewöhnliche E-Mail-Adressen nicht allein deshalb zusammen, weil ihre Anzeigenamen übereinstimmen. Bei der Prüfung vom 2026-08-24 wurden 639 veröffentlicht; wird diese Methode erneut auf die Basis ac02c5b42f jener Prüfung angewendet, ergibt sie 619. Der Anstieg ist daher auf neue Mitwirkende und nicht auf eine weniger strenge Methode zurückzuführen.
### So können Sie mitwirken
1. Forken Sie das Repository
2. Erstellen Sie einen Branch vom aktuellen Stand des **aktiven** Branches `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 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öffentlichen 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 Bestandteil von OmniRoute geprägt. Dies ist unser Dank an sie alle. 🙏
> ⭐ Die Anzahl der Sterne wurde am 18. Oktober 2026 über die REST-API von GitHub überprüft — gebt diesen Projekten einen Stern. Die Angaben sind eine exakte Momentaufnahme zu diesem Datum und werden sich naturgemäß ändern.
### 🧬 Abstammung & Gateway
Das KI-Gateway, dessen öffentlicher Preisdatenbestand unsere Synchronisierung zur Kostenverfolgung speist und dessen Modell zur Anbieter-Normalisierung unser Routing beeinflusst hat.
Unter MIT-Lizenz stehender Quellcode, der für die integrierte Brücke von ChatGPT Web zu Codex Responses angepasst wurde, einschließlich Adaptern für Browsersitzungen, Antwortformatierung, Nutzungserfassung und Websuche.
Muster, die in die Stream-Wiederherstellung, Aliasse ohne Denkmodus, die Ausweich-Websuche, Sliding-Window-Limits, die Protokollredaktion und gehärtete Startabläufe portiert wurden.
Mit Claude Code kompatible Transformationsvorgaben und das Verhalten von Abrechnungs-Headern, die in der konfigurationsgesteuerten Brücke von OmniRoute verallgemeinert wurden.
Die Grok-Modellzuordnungen, der Statsig-Generator mit fingiertem TypeError, die Anfrage- und Gerätevorgaben sowie der NDJSON-Antwortprozessor wurden in wesentlichem Umfang für den Grok-Web-Executor von OmniRoute angepasst.
Die wesentliche indirekte Codequelle hinter grok2api-merged; ihre Implementierungen für Modelle, Header, Nutzdaten, Statsig und Prozessoren bleiben in der Abstammungslinie von Grok Web erhalten.
Der zugrunde liegende MIT-lizenzierte Quellcode für Grok-Nutzdaten und -Gerätevorgaben, den Statsig-Generator und den über TQZHR und grok2api-merged übernommenen result.response-Prozessor.
Eine von grok2api-merged für dessen Proxy-Pool-Schicht angeführte indirekte Quelle; OmniRoute bewahrt diesen Herkunftshinweis, beansprucht für seinen klar abgegrenzten Grok-Web-Executor jedoch keine Portierung des Proxy-Pools.
Für die ursprüngliche Grok-Web-Implementierung wurde dessen HTTP-/Browser-Upstream-Design herangezogen; der direkte HTTP-Pfad leitet sich von GrokProxy ab, daher wird keine eigenständige Codeportierung beansprucht.
Das virale „why use many token when few token do trick“-Projekt — seine Höhlenmenschen-Sprechweise bildet die Grundlage unseres Standard-Komprimierungsmodus und von über 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 Pipeline RTK → Caveman.
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.
Verdichtung von Bash-Ausgaben + MCP-Profile — inspirierte unsere Disziplin beim Abbruch der Komprimierung und die Reduzierung von MCP-Werkzeugmanifesten.
Inhaltsbewusste, dateitypspezifische Ausgabekomprimierung mit fehlerbewusstem Abbruch — bestätigte unsere typspezifische Weiterleitung und das Überspringen bei zu geringem Nutzen.
Spaltenorientiertes JSON in Rust + inhaltsadressierter Abruf + nachrichtenübergreifende Deduplizierung — bestätigte das Design unserer Engines headroom/ccr/session-dedup sowie die cache-stabile Invariante „die komprimierte Form ist positionsunabhängig“.
Die MITM-Interzeption/-Analyse des Datenverkehrs zwischen Coding-Assistenten ↔ 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 auf Grundlage öffentlicher Protokollstandards ersetzt. Die beiden Host-Passthrough-Schnittstellen (passthrough.ts und _internal/bypass.cjs) bleiben OmniRoute-interne, unabhängig klassifizierte Implementierungen; sie wurden im Rahmen dieser Ersetzung nicht neu geschrieben.
Transparente Proxy-Weiterleitung pro Prozess — inspirierte unseren absturzsicheren MITM-Abbau, Leerlauf-Timeouts für Sockets, die Prozesszuordnung über /proc und die TPROXY-Erfassung.
Beobachtbarkeit 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 kostenfreien 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 tatsächlich verwendete Übertragungsformat unabhängig.