User Guide (Deutsch)
Inhaltsverzeichnis
Abschnitt betitelt „Inhaltsverzeichnis“- Preisübersicht
- Anwendungsfälle
- Anbieter einrichten
- CLI-Integration
- Bereitstellung
- Verfügbare Modelle
- Erweiterte Funktionen
- Automatisches Routing (ohne Konfiguration)
- MCP- & A2A-Integration
- Skills-System
- Speichersystem
- Webhooks
- Cloud-Agenten
- Programmatische Verwaltung
- Interne CLI
- Desktop-Anwendung (Electron)
💰 Preisübersicht
Abschnitt betitelt „💰 Preisübersicht“| Tarif | Anbieter | Kosten | Kontingent zurückgesetzt | Am besten geeignet für |
|---|---|---|---|---|
| 💳 ABONNEMENT | Claude Code (Pro) | $20/Monat | 5 Std. + wöchentlich | Bereits Abonnierte |
| Codex (Plus/Pro) | $20–200/Monat | 5 Std. + wöchentlich | OpenAI-Nutzer | |
| GitHub Copilot | $10–19/Monat | Monatlich | GitHub-Nutzer | |
| 🔑 API-SCHLÜSSEL | DeepSeek | Nutzungsabhängig | Keine | Kostengünstiges Reasoning |
| Groq | Nutzungsabhängig | Keine | Ultraschnelle Inferenz | |
| xAI (Grok) | Nutzungsabhängig | Keine | Reasoning mit Grok 4 | |
| Mistral | Nutzungsabhängig | Keine | In der EU gehostete Modelle | |
| Perplexity | Nutzungsabhängig | Keine | Suchunterstützte Aufgaben | |
| Together AI | Nutzungsabhängig | Keine | Open-Source-Modelle | |
| Fireworks AI | Nutzungsabhängig | Keine | Schnelle FLUX-Bilder | |
| Cerebras | Nutzungsabhängig | Keine | Geschwindigkeit auf Wafer-Skala | |
| Cohere | Nutzungsabhängig | Keine | Command R+ RAG | |
| NVIDIA NIM | Nutzungsabhängig | Keine | Unternehmensmodelle | |
| Baidu Qianfan | Nutzungsabhängig | Keine | ERNIE-Modelle | |
| 💰 GÜNSTIG | GLM-4.7 | $0.6/1M | Täglich um 10 Uhr | Günstige Ausweichlösung |
| MiniMax M2.1 | $0.2/1M | Gleitend alle 5 Stunden | Günstigste Option | |
| Kimi K2 | Pauschal $9/Monat | 10M Token/Monat | Planbare Kosten | |
| 🆓 KOSTENLOS | Qoder | $0 | Anbieterlimits gelten | Aktuellen Katalog prüfen |
| Kiro | $0 | ~50 Credits/Monat | Claude kostenlos |
🎯 Anwendungsfälle
Abschnitt betitelt „🎯 Anwendungsfälle“Fall 1: „Ich habe ein Claude-Pro-Abonnement“
Abschnitt betitelt „Fall 1: „Ich habe ein Claude-Pro-Abonnement““Problem: Das Kontingent verfällt ungenutzt, Ratenbegrenzungen bei intensiver Programmierarbeit
Kombination: "maximize-claude" 1. cc/claude-opus-4-7 (Abonnement vollständig ausschöpfen) 2. glm/glm-4.7 (günstige Ausweichlösung bei ausgeschöpftem Kontingent) 3. if/qwen3.8-max-preview (kostenlose Notfall-Ausweichlösung)
Monatliche Kosten: $20 (Abonnement) + ~$5 (Ausweichlösung) = insgesamt $25gegenüber $20 + Erreichen der Limits = FrustrationFall 2: „Ich möchte keine Kosten“
Abschnitt betitelt „Fall 2: „Ich möchte keine Kosten““Problem: Abonnements sind nicht erschwinglich, zuverlässige KI-Unterstützung beim Programmieren wird benötigt
Kombination: "zero-cost" 1. if/kimi-k2.7-code (als kostenloser Zugang aufgeführt; Ratenbegrenzungen können gelten) 2. kr/qwen3-coder-next (kostenlose Kiro-Ausweichlösung)
Monatliche Kosten: $0Qualität: Modell, Limits, Datenschutz und SLA für Ihren Workload überprüfenFall 3: „Ich muss rund um die Uhr ohne Unterbrechungen programmieren“
Abschnitt betitelt „Fall 3: „Ich muss rund um die Uhr ohne Unterbrechungen programmieren““Problem: Fristen, keine Ausfallzeiten möglich
Kombination: "always-on" 1. cc/claude-opus-4-7 (beste Qualität) 2. cx/gpt-5.5 (zweites Abonnement) 3. glm/glm-4.7 (günstig, tägliche Zurücksetzung) 4. minimax/MiniMax-M2.1 (am günstigsten, Zurücksetzung nach 5 Std.) 5. if/deepseek-v4-flash (als kostenloser Zugang aufgeführt; Ratenbegrenzungen können gelten)
Ergebnis: 5 Ausweichstufen erhöhen die Ausfallsicherheit; die Verfügbarkeit vorgelagerter Dienste ist nicht garantiertMonatliche Kosten: $20–200 (Abonnements) + $10–20 (Ausweichlösungen)Fall 4: „Ich möchte KOSTENLOSE KI in OpenClaw“
Abschnitt betitelt „Fall 4: „Ich möchte KOSTENLOSE KI in OpenClaw““Problem: Ein vollständig kostenloser KI-Assistent für Messaging-Apps wird benötigt
Kombination: "openclaw-free" 1. if/qwen3.8-max-preview (als kostenloser Zugang aufgeführt; Ratenbegrenzungen können gelten) 2. if/deepseek-v4-flash (als kostenloser Zugang aufgeführt; Ratenbegrenzungen können gelten) 3. if/kimi-k2.7-code (als kostenloser Zugang aufgeführt; Ratenbegrenzungen können gelten)
Monatliche Kosten: $0Zugriff über: WhatsApp, Telegram, Slack, Discord, iMessage, Signal ...📖 Anbieter einrichten
Abschnitt betitelt „📖 Anbieter einrichten“Um API-Schlüssel-Verbindungen gesammelt aus einer CSV- oder JSON-Datei hinzuzufügen, verwenden Sie Dashboard → Anbieter → Aus Datei importieren. Die Spalten sind positionsabhängig (provider,name,apiKey,baseUrl,priority); provider muss bereits als verwalteter Anbieter oder kompatibler Knoten vorhanden sein. Siehe Anbieter aus einer CSV- oder JSON-Datei importieren.
🔐 Abonnement-Anbieter
Abschnitt betitelt „🔐 Abonnement-Anbieter“Claude Code (Pro/Max)
Abschnitt betitelt „Claude Code (Pro/Max)“Dashboard → Anbieter → Claude Code verbinden→ OAuth-Anmeldung → Automatische Token-Aktualisierung→ Kontingentüberwachung über 5 Stunden + wöchentlich
Modelle: cc/claude-opus-4-7 cc/claude-sonnet-4-6 cc/claude-haiku-4-5-20251001Profi-Tipp: Verwenden Sie Opus für komplexe Aufgaben und Sonnet für Geschwindigkeit. OmniRoute überwacht das Kontingent pro Modell!
Mit Claude und Claude Code kompatible Routen behalten den Denkaufwand max für Opus- und Sonnet-Modelle bei. Haiku-Modelle akzeptieren die Aufwandsstufe max nicht, daher stuft OmniRoute diese Anfrage auf ein hohes Denkbudget herab, bevor sie an den Upstream-Anbieter gesendet wird.
OpenAI Codex (Plus/Pro)
Abschnitt betitelt „OpenAI Codex (Plus/Pro)“Dashboard → Anbieter → Codex verbinden→ OAuth-Anmeldung (Port 1455)→ Zurücksetzung nach 5 Stunden + wöchentlich
Modelle: cx/gpt-5.5 cx/gpt-5.4 cx/gpt-5.3-codex cx/gpt-5.3-codex-sparkGitHub Copilot
Abschnitt betitelt „GitHub Copilot“Dashboard → Anbieter → GitHub verbinden→ OAuth über GitHub→ Monatliche Zurücksetzung (am 1. des Monats)
Modelle: gh/gpt-5.5 gh/gpt-5.4 gh/claude-sonnet-4.6 gh/claude-opus-4.7 gh/gemini-3.1-pro-preview💰 Günstige Anbieter
Abschnitt betitelt „💰 Günstige Anbieter“GLM-4.7 (tägliche Zurücksetzung, $0.6/1M)
Abschnitt betitelt „GLM-4.7 (tägliche Zurücksetzung, $0.6/1M)“- Registrieren: Zhipu AI
- API-Schlüssel aus dem Coding Plan abrufen
- Dashboard → API-Schlüssel hinzufügen: Anbieter:
glm, API-Schlüssel:your-key
Verwendung: glm/glm-4.7 — Profi-Tipp: Der Coding Plan bietet das 3-fache Kontingent zu 1/7 der Kosten! Tägliche Zurücksetzung um 10:00 Uhr.
MiniMax M2.1 (Zurücksetzung nach 5 Std., $0.20/1M)
Abschnitt betitelt „MiniMax M2.1 (Zurücksetzung nach 5 Std., $0.20/1M)“- Registrieren: MiniMax
- API-Schlüssel abrufen → Dashboard → API-Schlüssel hinzufügen
Verwendung: minimax/MiniMax-M2.1 — Profi-Tipp: Günstigste Option für lange Kontexte (1 Mio. Token)!
Kimi K2 ($9/Monat pauschal)
Abschnitt betitelt „Kimi K2 ($9/Monat pauschal)“- Abonnieren: Moonshot AI
- API-Schlüssel abrufen → Dashboard → API-Schlüssel hinzufügen
Verwendung: kimi/kimi-k2.5 — Profi-Tipp: Feste $9/Monat für 10 Mio. Token = effektive Kosten von $0.90/1M!
Baidu Qianfan / ERNIE
Abschnitt betitelt „Baidu Qianfan / ERNIE“- Registrieren: Baidu AI Cloud Qianfan
- Einen Qianfan-API-Schlüssel erstellen → Dashboard → API-Schlüssel hinzufügen: Anbieter:
qianfan
Verwendung: qianfan/ernie-5.1, qianfan/ernie-x1.1 oder eine andere mit OpenAI kompatible Qianfan-Modell-ID.
🆓 KOSTENLOSE Anbieter
Abschnitt betitelt „🆓 KOSTENLOSE Anbieter“Kostenlose Anbieter ohne Authentifizierung verfügen auf ihrer Anbieterseite über einen Schalter neben Keine Authentifizierung erforderlich.
Wenn Sie ihn deaktivieren, wird der betreffende Anbieter deaktiviert, aus den konfigurierten und kompakten Anbieteransichten entfernt und seine Modelle werden aus /v1/models entfernt.
Qoder (9 KOSTENLOSE Modelle)
Abschnitt betitelt „Qoder (9 KOSTENLOSE Modelle)“Dashboard → Qoder verbinden → OAuth-Anmeldung → Der Zugriff unterliegt den aktuellen Beschränkungen des Anbieters
Modelle: if/qwen3.8-max-preview, if/qwen3.7-max, if/qwen3.7-plus, if/kimi-k3, if/kimi-k2.7-code, if/glm-5.2, if/deepseek-v4-pro, if/deepseek-v4-flash, if/minimax-m3Kiro (Claude KOSTENLOS)
Abschnitt betitelt „Kiro (Claude KOSTENLOS)“Dashboard → Kiro verbinden → AWS Builder ID oder Google/GitHub → ~50 Credits/Monat
Modelle: kr/claude-sonnet-4.5, kr/claude-haiku-4.5🎨 Kombinationen
Abschnitt betitelt „🎨 Kombinationen“Du kannst Kombinationskarten direkt unter Dashboard → Kombinationen neu anordnen, indem du den Ziehgriff auf jeder Karte verschiebst. Die Reihenfolge wird in SQLite gespeichert und beim erneuten Laden wiederhergestellt.
Beispiel 1: Abonnement maximieren → Günstige Ausweichoption
Abschnitt betitelt „Beispiel 1: Abonnement maximieren → Günstige Ausweichoption“Dashboard → Kombinationen → Neu erstellen
Name: premium-codingModelle: 1. cc/claude-opus-4-7 (Primärmodell per Abonnement) 2. glm/glm-4.7 (Günstige Ausweichoption, $0.6/1M) 3. minimax/MiniMax-M2.7 (Günstigste Rückfalloption, $0.3/1M)
In der CLI verwenden: premium-codingBeispiel 2: Ausschließlich kostenlos (keine Kosten)
Abschnitt betitelt „Beispiel 2: Ausschließlich kostenlos (keine Kosten)“Name: free-comboModelle: 1. if/kimi-k2.7-code (als kostenloser Zugang aufgeführt; möglicherweise gelten Anbieterbeschränkungen) 2. kr/qwen3-coder-next (Kostenlose Kiro-Rückfalloption)
Kosten: derzeit mit $0 aufgeführt; Bedingungen und Verfügbarkeit können sich ändern🔧 CLI-Integration
Abschnitt betitelt „🔧 CLI-Integration“Cursor IDE
Abschnitt betitelt „Cursor IDE“Cursor als OmniRoute-Client verwenden (Cursor-Chat über OmniRoute weiterleiten):
Einstellungen → Modelle → Erweitert: OpenAI-API-Basis-URL: http://localhost:20128/v1 OpenAI-API-Schlüssel: [aus dem OmniRoute-Dashboard] Modell: cc/claude-opus-4-7OmniRoute als Cursor-Anbieter verwenden (OmniRoute ruft Cursor als Upstream auf): Verwende vorzugsweise
Dashboard → Anbieter → Cursor → Mit Cursor anmelden. Für Docker siehe
docs/providers/CURSOR-DOCKER.md.
Claude Code
Abschnitt betitelt „Claude Code“Bearbeite ~/.claude/settings.json:
{ "env": { "ANTHROPIC_BASE_URL": "http://localhost:20128", "ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key" }}Verwende hier den Claude-kompatiblen Root-Endpunkt. Hänge nicht /v1 an ANTHROPIC_BASE_URL an.
Codex CLI
Abschnitt betitelt „Codex CLI“export OPENAI_BASE_URL="http://localhost:20128"export OPENAI_API_KEY="your-omniroute-api-key"codex "your prompt"OpenClaw
Abschnitt betitelt „OpenClaw“Bearbeite ~/.openclaw/openclaw.json:
{ "agents": { "defaults": { "model": { "primary": "omniroute/if/kimi-k2.7-code" } } }, "models": { "providers": { "omniroute": { "baseUrl": "http://localhost:20128/v1", "apiKey": "your-omniroute-api-key", "api": "openai-completions", "models": [{ "id": "if/kimi-k2.7-code", "name": "Kimi K2.7 Code" }] } } }}Oder über das Dashboard: CLI-Tools → OpenClaw → Automatische Konfiguration
Cline / Continue / RooCode
Abschnitt betitelt „Cline / Continue / RooCode“Anbieter: OpenAI-kompatibelBasis-URL: http://localhost:20128/v1API-Schlüssel: [aus dem Dashboard]Modell: cc/claude-opus-4-7🚀 Bereitstellung
Abschnitt betitelt „🚀 Bereitstellung“Globale npm-Installation (empfohlen)
Abschnitt betitelt „Globale npm-Installation (empfohlen)“npm install -g omniroute
# Konfigurationsverzeichnis erstellenmkdir -p ~/.omniroute
# .env-Datei erstellen (siehe .env.example)cp .env.example ~/.omniroute/.env
# Server startenomniroute# Oder mit benutzerdefiniertem Port:omniroute --port 3000Die CLI lädt .env automatisch aus ~/.omniroute/.env oder ./.env.
Tray-Modus
Abschnitt betitelt „Tray-Modus“Starte OmniRoute im System-Tray:
omniroute serve --trayDer Befehl wird beendet, sobald der Server und das Tray bereit sind.
Der Server läuft ohne das Terminal weiter.
Der Tray-Modus unterstützt macOS, Windows und grafische Linux-Sitzungen. Im Tray-Modus wird das Dashboard nicht automatisch geöffnet.
Verwende das Tray-Menü für folgende Aktionen:
- Dashboard öffnen.
/dashboard/logsöffnen.- Autostart ändern.
- OmniRoute beenden.
Kombiniere --tray nicht mit diesen Optionen:
--daemon--log--no-recovery
Diese Modi erfordern eine unterschiedliche Prozessverwaltung.
Aktiviere den Start bei der nächsten Anmeldung am Rechner:
omniroute autostart enableDer Autostart verwendet auf macOS, Windows und in grafischen Linux-Sitzungen den Tray-Modus. Unter Headless-Linux wird der vorhandene systemd-Benutzerdienst verwendet.
Deaktiviere den Start bei der Anmeldung:
omniroute autostart disableDeinstallation
Abschnitt betitelt „Deinstallation“Wenn du OmniRoute nicht mehr benötigst, stellen wir zwei schnelle Skripte für eine saubere Entfernung bereit:
| Befehl | Aktion |
|---|---|
npm run uninstall |
Entfernt die Systemanwendung, behält aber deine Datenbank und Konfigurationen in ~/.omniroute. |
npm run uninstall:full |
Entfernt die Anwendung UND löscht dauerhaft alle Konfigurationen, Schlüssel und Datenbanken. |
Hinweis: Um diese Befehle auszuführen, wechsle zum OmniRoute-Projektordner (falls du ihn geklont hast) und führe sie dort aus. Bei einer globalen Installation kannst du alternativ einfach
npm uninstall -g omnirouteausführen.
VPS-Bereitstellung
Abschnitt betitelt „VPS-Bereitstellung“git clone https://github.com/diegosouzapw/OmniRoute.gitcd OmniRoute && npm install && npm run build
export JWT_SECRET="your-secure-secret-change-this"export INITIAL_PASSWORD="your-password"export DATA_DIR="/var/lib/omniroute"export PORT="20128"export HOSTNAME="0.0.0.0"export NODE_ENV="production"export NEXT_PUBLIC_BASE_URL="http://localhost:20128"export API_KEY_SECRET="endpoint-proxy-api-key-secret"
npm run start# Oder: pm2 start npm --name omniroute -- startPM2-Bereitstellung (geringer Speicherbedarf)
Abschnitt betitelt „PM2-Bereitstellung (geringer Speicherbedarf)“Verwende für Server mit begrenztem RAM die Option zur Speicherbegrenzung:
# Mit einem Limit von 512MB (Standard)pm2 start npm --name omniroute -- start
# Oder mit benutzerdefiniertem SpeicherlimitOMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start
# Oder mit ecosystem.config.jspm2 start ecosystem.config.jsErstelle ecosystem.config.js:
module.exports = { apps: [ { name: "omniroute", script: "npm", args: "start", env: { NODE_ENV: "production", OMNIROUTE_MEMORY_MB: "512", JWT_SECRET: "your-secret", INITIAL_PASSWORD: "your-password", }, node_args: "--max-old-space-size=512", max_memory_restart: "300M", }, ],};# Image erstellen (Standard = runner-cli mit vorinstalliertem codex/claude/droid)docker build -t omniroute:cli .
# Portabler Modus (empfohlen)docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cliInformationen zum hostintegrierten Modus mit CLI-Binärdateien findest du im Docker-Abschnitt der Hauptdokumentation.
Void Linux (xbps-src)
Abschnitt betitelt „Void Linux (xbps-src)“Benutzer von Void Linux können OmniRoute mithilfe des Cross-Compilation-Frameworks xbps-src nativ paketieren und installieren. Dadurch werden der eigenständige Node.js-Build sowie die erforderlichen nativen better-sqlite3-Bindings automatisiert.
xbps-src-Template anzeigen
# Template-Datei für 'omniroute'pkgname=omnirouteversion=3.8.0revision=1hostmakedepends="nodejs python3 make"depends="openssl"short_desc="Universal AI gateway with smart routing for multiple LLM providers"maintainer="zenobit <zenobit@disroot.org>"license="MIT"homepage="https://github.com/diegosouzapw/OmniRoute"distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz"checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245bsystem_accounts="_omniroute"omniroute_homedir="/var/lib/omniroute"export NODE_ENV=productionexport npm_config_engine_strict=falseexport npm_config_loglevel=errorexport npm_config_fund=falseexport npm_config_audit=false
do_build() { # Ziel-CPU-Architektur für node-gyp ermitteln local _gyp_arch case "$XBPS_TARGET_MACHINE" in aarch64*) _gyp_arch=arm64 ;; armv7*|armv6*) _gyp_arch=arm ;; i686*) _gyp_arch=ia32 ;; *) _gyp_arch=x64 ;; esac
# 1) Alle Abhängigkeiten installieren – Skripte überspringen NODE_ENV=development npm ci --ignore-scripts
# 2) Eigenständiges Next.js-Bundle erstellen npm run build
# 3) Statische Assets in das eigenständige Bundle kopieren cp -r .next/static .next/standalone/.next/static [ -d public ] && cp -r public .next/standalone/public || true
# 4) Natives better-sqlite3-Binding kompilieren local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js (cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")
# 5) Kompiliertes Binding im eigenständigen Bundle ablegen local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release mkdir -p "$_bs3_release" cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"
# 6) Architekturspezifische sharp-Bundles entfernen rm -rf .next/standalone/node_modules/@img
# 7) Von der statischen Next.js-Analyse ausgelassene pino-Laufzeitabhängigkeiten kopieren: for _mod in pino-abstract-transport split2 process-warning; do cp -r "node_modules/$_mod" .next/standalone/node_modules/ done}
do_check() { npm run test:unit}
do_install() { vmkdir usr/lib/omniroute/.next vcopy .next/standalone/. usr/lib/omniroute/.next/standalone
# Entfernen leerer Next.js-App-Router-Verzeichnisse durch den Post-Install-Hook verhindern for _d in \ .next/standalone/.next/server/app/dashboard \ .next/standalone/.next/server/app/dashboard/settings \ .next/standalone/.next/server/app/dashboard/providers; do touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep" done
cat > "${WRKDIR}/omniroute" <<'EOF'#!/bin/shexport PORT="${PORT:-20128}"export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}"export APP_LOG_TO_FILE="${APP_LOG_TO_FILE:-false}"mkdir -p "${DATA_DIR}"exec node /usr/lib/omniroute/.next/standalone/server.js "$@"EOF vbin "${WRKDIR}/omniroute"}
post_install() { vlicense LICENSE}Umgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“| Variable | Standardwert | Beschreibung |
|---|---|---|
JWT_SECRET |
omniroute-default-secret-change-me |
Geheimnis zum Signieren von JWTs (in der Produktion ändern) |
INITIAL_PASSWORD |
CHANGEME |
Passwort für die erste Anmeldung |
DATA_DIR |
~/.omniroute |
Datenverzeichnis (Datenbank, Nutzung, Protokolle) |
PORT |
Framework-Standardwert | Dienst-Port (20128 in den Beispielen) |
HOSTNAME |
Framework-Standardwert | Host für die Bindung (Docker verwendet standardmäßig 0.0.0.0) |
NODE_ENV |
Laufzeit-Standardwert | Für die Bereitstellung auf production setzen |
NEXT_PUBLIC_BASE_URL |
http://localhost:20128 |
Öffentliche Basis-URL, die im Dashboard angezeigt und dem Server bereitgestellt wird (ersetzt das bisherige BASE_URL) |
NEXT_PUBLIC_CLOUD_URL |
https://omniroute.dev |
Basis-URL des Cloud-Synchronisierungsendpunkts (ersetzt das bisherige CLOUD_URL) |
API_KEY_SECRET |
endpoint-proxy-api-key-secret |
HMAC-Geheimnis für generierte API-Schlüssel |
REQUIRE_API_KEY |
false |
Bearer-API-Schlüssel für /v1/* erzwingen |
ALLOW_API_KEY_REVEAL |
false |
Authentifizierten Dashboard-Benutzern erlauben, vollständig gespeicherte API-Schlüsselwerte bei Bedarf anzuzeigen |
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES |
70 |
Serverseitiges Aktualisierungsintervall für zwischengespeicherte Daten zu Anbieterlimits; die Aktualisierungsschaltflächen der Benutzeroberfläche lösen weiterhin eine manuelle Synchronisierung aus |
DISABLE_SQLITE_AUTO_BACKUP |
false |
Automatische SQLite-Snapshots vor Schreib-, Import- oder Wiederherstellungsvorgängen deaktivieren; manuelle Sicherungen funktionieren weiterhin |
APP_LOG_TO_FILE |
true |
Aktiviert die Ausgabe von Anwendungs- und Audit-Protokollen auf den Datenträger |
AUTH_COOKIE_SECURE |
false |
Secure-Authentifizierungs-Cookie erzwingen (hinter einem HTTPS-Reverse-Proxy) |
CLOUDFLARED_BIN |
nicht festgelegt | Vorhandene cloudflared-Binärdatei anstelle des verwalteten Downloads verwenden |
CLOUDFLARED_PROTOCOL |
http2 |
Transportprotokoll für verwaltete Quick Tunnels (http2, quic oder auto) |
OMNIROUTE_MEMORY_MB |
512 |
Node.js-Heap-Limit in MB |
PROMPT_CACHE_MAX_SIZE |
50 |
Maximale Anzahl der Einträge im Prompt-Cache |
SEMANTIC_CACHE_MAX_SIZE |
100 |
Maximale Anzahl der Einträge im semantischen Cache |
Die vollständige Referenz der Umgebungsvariablen finden Sie in der README.
📊 Verfügbare Modelle
Abschnitt betitelt „📊 Verfügbare Modelle“Alle verfügbaren Modelle anzeigen
Die nachstehende Liste wurde aus
open-sse/config/providerRegistry.tsfür v3.8.0 zusammengestellt. Cloud-Kataloge (Gemini, OpenRouter usw.) werden dynamisch synchronisiert — den vollständigen Live-Katalog finden Sie unter Dashboard → Providers → [provider] → Available Models oder überGET /api/models/catalog.Falls die integrierte Liste eines Anbieters nicht mehr aktuell ist, verwenden Sie auf dieser Seite Import from /models (oder aktivieren Sie Auto-Sync), um den aktuellen Upstream-Katalog abzurufen. Dies wurde in v3.8.50 für LLM7.io (
gemini-3.1-flash-lite) und UncloseAI (solidrust/Hermes-3-Llama-3.1-8B-AWQ) verifiziert; der anonyme Zugriff auf Pollinations blieb während desselben Testdurchlaufs durch den Upstream-Anbieter eingeschränkt.
Claude Code (cc/) — Pro/Max OAuth: cc/claude-opus-4-8, cc/claude-opus-4-7, cc/claude-opus-4-6, cc/claude-opus-4-5-20251101, cc/claude-sonnet-4-6, cc/claude-sonnet-4-5-20250929, cc/claude-haiku-4-5-20251001
Codex (cx/) — Plus/Pro OAuth: cx/gpt-5.5 (+ Aufwandsstufen: gpt-5.5-xhigh, gpt-5.5-high, gpt-5.5-medium, gpt-5.5-low), cx/gpt-5.4, cx/gpt-5.4-mini, cx/gpt-5.3-codex, cx/gpt-5.3-codex-spark
GitHub Copilot (gh/) — OAuth: gh/gpt-5.5, gh/gpt-5.4, gh/gpt-5.4-mini, gh/gpt-5-mini, gh/gpt-5.3-codex, gh/claude-opus-4.7, gh/claude-opus-4.6, gh/claude-opus-4-5-20251101, gh/claude-sonnet-4.6, gh/claude-sonnet-4.5, gh/claude-haiku-4.5, gh/gemini-3.1-pro-preview, gh/gemini-3-flash-preview, gh/oswe-vscode-prime
Kiro (kr/) — KOSTENLOSES OAuth: Verwenden Sie den Live-Katalog unter Dashboard → Providers → Kiro → Available Models. Die Verfügbarkeit hängt vom Konto und Tarif ab.
Qoder (if/) — KOSTENLOSES OAuth: if/qwen3.8-max-preview, if/qwen3.7-max, if/qwen3.7-plus, if/kimi-k3, if/kimi-k2.7-code, if/glm-5.2, if/deepseek-v4-pro, if/deepseek-v4-flash, if/minimax-m3
GLM (glm/, glm-cn/, zai/, glmt/) — $0.2–0.6/1M: glm/glm-5.1, glm/glm-5, glm/glm-5-turbo, glm/glm-4.7, glm/glm-4.7-flash, glm/glm-4.6, glm/glm-4.6v, glm/glm-4.5, glm/glm-4.5v, glm/glm-4.5-air
MiniMax (minimax/, minimax-cn/) — $0.2/1M: minimax/MiniMax-M2.7, minimax/MiniMax-M2.7-highspeed, minimax/MiniMax-M2.5, minimax/MiniMax-M2.5-highspeed
Kimi (kimi/, kimi-coding/, kimi-coding-apikey/) — Pauschal $9/Monat oder nutzungsabhängig: kimi/kimi-k2.6, kimi/kimi-k2.5
DeepSeek (ds/) — API-Schlüssel: ds/deepseek-v4-pro, ds/deepseek-v4-flash
Groq (groq/) — Ultraschnell: groq/llama-3.3-70b-versatile, groq/meta-llama/llama-4-maverick-17b-128e-instruct, groq/qwen/qwen3-32b, groq/openai/gpt-oss-120b
xAI (xai/) — Grok-nativ: xai/grok-4.3, xai/grok-4.20-multi-agent-0309, xai/grok-4.20-0309-reasoning, xai/grok-4.20-0309-non-reasoning
Mistral (mistral/) — In der EU gehostet: mistral/mistral-large-latest, mistral/mistral-medium-3-5, mistral/mistral-small-latest, mistral/devstral-latest, mistral/codestral-latest
Perplexity (pplx/) — Mit Suchunterstützung: pplx/sonar-deep-research, pplx/sonar-reasoning-pro, pplx/sonar-pro, pplx/sonar
Together AI (together/) — Open Source: together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free (kostenlos), together/meta-llama/Llama-Vision-Free, together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free, together/deepseek-ai/DeepSeek-R1, together/Qwen/Qwen3-235B-A22B, together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8
Fireworks AI (fireworks/) — Schnelle Inferenz: fireworks/accounts/fireworks/models/kimi-k2p6, fireworks/accounts/fireworks/models/minimax-m2p7, fireworks/accounts/fireworks/models/qwen3p6-plus, fireworks/accounts/fireworks/models/glm-5p1, fireworks/accounts/fireworks/models/deepseek-v4-pro
Cerebras (cerebras/) — Wafer-Skalierung: cerebras/zai-glm-4.7, cerebras/gpt-oss-120b
Cohere (cohere/) — RAG-fokussiert: cohere/command-a-reasoning-08-2025, cohere/command-a-vision-07-2025, cohere/command-a-03-2025, cohere/command-r-08-2024
NVIDIA NIM (nvidia/) — Unternehmen: nvidia/z-ai/glm-5.1, nvidia/minimaxai/minimax-m2.7, nvidia/google/gemma-4-31b-it, nvidia/mistralai/mistral-small-4-119b-2603, nvidia/mistralai/mistral-large-3-675b-instruct-2512, nvidia/qwen/qwen3.5-397b-a17b, nvidia/deepseek-ai/deepseek-v4-pro, nvidia/openai/gpt-oss-120b, nvidia/nvidia/nemotron-3-super-120b-a12b
Baidu Qianfan (qianfan/) — ERNIE: qianfan/ernie-5.1, qianfan/ernie-5.0-thinking-latest, qianfan/ernie-x1.1
Ollama Cloud (ollama-cloud/): ollama-cloud/deepseek-v4-pro, ollama-cloud/deepseek-v4-flash, ollama-cloud/kimi-k2.6, ollama-cloud/glm-5.1, ollama-cloud/minimax-m2.7, ollama-cloud/gemma4:31b, ollama-cloud/qwen3.5:397b
Gemini (Google Cloud gemini/): Wird anhand des API-Schlüssels live von Google synchronisiert — keine statische Liste. Verbinden Sie unter Dashboard → Providers einen Schlüssel und verwenden Sie anschließend Available Models, um den aktuellen Katalog zu importieren (z. B. gemini/gemini-3-pro, gemini/gemini-3-flash).
Weitere kompatible Anbieter (Auswahl): cohere, databricks, snowflake, together, vertex, alibaba, alibaba-cn, bedrock (über aws-bedrock), azure-ai, openrouter (durchgereichter Katalog), siliconflow, hyperbolic, huggingface, featherless-ai, cloudflare-ai, scaleway, deepinfra, vercel-ai-gateway, bazaarlink, friendliai, nous-research, reka, volcengine, ai21, gigachat. Jeder Anbieter verwaltet seine eigene Modellliste in providerRegistry.ts und kann automatisch synchronisiert werden, wenn der Anbieter einen /models-Endpunkt bereitstellt.
Hinweis zu Modell-IDs: OmniRoute verwendet anbieternative IDs (claude-opus-4-8, gpt-5.5, glm-5.1, MiniMax-M2.7, kimi-k2.5, grok-4.20-0309-reasoning). Einige IDs enthalten Versionen mit Punkten, weil die Upstream-API sie in dieser Form erwartet. Wenn ein Modell oben nicht aufgeführt ist, führen Sie omniroute models --search <term> aus oder rufen Sie GET /api/models/catalog auf, um die Verfügbarkeit zu bestätigen.
🧩 Erweiterte Funktionen
Abschnitt betitelt „🧩 Erweiterte Funktionen“Benutzerdefinierte Modelle
Abschnitt betitelt „Benutzerdefinierte Modelle“Fügen Sie jedem Anbieter eine beliebige Modell-ID hinzu, ohne auf ein App-Update warten zu müssen:
# Über die APIcurl -X POST http://localhost:20128/api/provider-models \ -H "Content-Type: application/json" \ -d '{"provider": "openai", "modelId": "gpt-5.2", "modelName": "GPT-5.2"}'
# Auflisten: curl http://localhost:20128/api/provider-models?provider=openai# Entfernen: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2"Oder verwenden Sie das Dashboard: Anbieter → [Anbieter] → Benutzerdefinierte Modelle.
Hinweise:
- OpenRouter und OpenAI-/Anthropic-kompatible Anbieter werden ausschließlich über Verfügbare Modelle verwaltet. Manuelles Hinzufügen, Importieren und automatische Synchronisierung führen alle zur selben Liste verfügbarer Modelle, sodass es für diese Anbieter keinen separaten Abschnitt für benutzerdefinierte Modelle gibt.
- Der Abschnitt Benutzerdefinierte Modelle ist für Anbieter vorgesehen, die keine verwalteten Importe verfügbarer Modelle anbieten.
Verketten von OmniRoute-Peers
Abschnitt betitelt „Verketten von OmniRoute-Peers“Ein weiteres OmniRoute-Gateway kann als benutzerdefinierter OpenAI-kompatibler Anbieter hinzugefügt werden. Verwenden Sie die
/v1-Basis-URL des Peers sowie einen dedizierten API-Schlüssel mit minimalen Berechtigungen, der von diesem Peer ausgegeben wurde.
Aktivieren Sie bei wechselseitigen oder mehrstufigen Ketten auf jedem Gateway den optionalen Schleifenschutz:
# gateway-aOMNIROUTE_INSTANCE_ID=gateway-aOMNIROUTE_PEER_URLS=http://gateway-b:20128/v1OMNIROUTE_PEER_MAX_HOPS=4# gateway-bOMNIROUTE_INSTANCE_ID=gateway-bOMNIROUTE_PEER_URLS=http://gateway-a:20128/v1OMNIROUTE_PEER_MAX_HOPS=4Nur Anfragen, die an eine ausdrücklich in der Zulassungsliste enthaltene Peer-URL gesendet werden, erhalten den
Header X-OmniRoute-Peer-Trace. Ein Gateway weist eine wiederholte Instanz-ID oder ein ausgeschöpftes Hop-Budget
mit HTTP 508 Loop Detected zurück; gewöhnliche Upstream-Anbieter erhalten keine Peer-Metadaten.
Peer-Verkettung ist weder Datenbankreplikation noch Host-Failover. Jedes Gateway verwaltet einen unabhängigen SQLite-Zustand sowie eigene Caches, Ratenzähler und Sitzungen. Verwenden Sie für aktive/passive oder aktive/aktive Verfügbarkeit einen Reverse-Proxy mit Zustandsprüfungen oder Client-Failover und binden Sie niemals eine einzelne SQLite-Datenbank in mehrere laufende OmniRoute-Instanzen ein.
Dedizierte Anbieterrouten
Abschnitt betitelt „Dedizierte Anbieterrouten“Leiten Sie Anfragen mit Modellvalidierung direkt an einen bestimmten Anbieter weiter:
POST http://localhost:20128/v1/providers/openai/chat/completionsPOST http://localhost:20128/v1/providers/openai/embeddingsPOST http://localhost:20128/v1/providers/fireworks/images/generationsDas Anbieterpräfix wird automatisch hinzugefügt, falls es fehlt. Nicht übereinstimmende Modelle geben 400 zurück.
Netzwerk-Proxy-Konfiguration
Abschnitt betitelt „Netzwerk-Proxy-Konfiguration“# Globalen Proxy festlegencurl -X PUT http://localhost:20128/api/settings/proxy \ -d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'
# Anbieterbezogener Proxycurl -X PUT http://localhost:20128/api/settings/proxy \ -d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'
# Proxy testencurl -X POST http://localhost:20128/api/settings/proxy/test \ -d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}'Priorität: Schlüsselspezifisch → Kombinationsspezifisch → Anbieterspezifisch → Global → Umgebung.
Modellkatalog-API
Abschnitt betitelt „Modellkatalog-API“curl http://localhost:20128/api/models/catalogGibt nach Anbieter gruppierte Modelle mit ihren Typen (chat, embedding, image) zurück.
Cloud-Synchronisierung
Abschnitt betitelt „Cloud-Synchronisierung“- Synchronisieren Sie Anbieter, Kombinationen und Einstellungen geräteübergreifend
- Automatische Hintergrundsynchronisierung mit Zeitüberschreitung und schnellem Abbruch
- Bevorzugen Sie in der Produktion serverseitiges
NEXT_PUBLIC_BASE_URL/NEXT_PUBLIC_CLOUD_URL
Cloudflare Quick Tunnel
Abschnitt betitelt „Cloudflare Quick Tunnel“- Verfügbar unter Dashboard → Endpunkte für Docker und andere selbst gehostete Bereitstellungen
- Erstellt eine temporäre
https://*.trycloudflare.com-URL, die an Ihren aktuellen OpenAI-kompatiblen/v1-Endpunkt weiterleitet - Bei der ersten Aktivierung wird
cloudflarednur bei Bedarf installiert; spätere Neustarts verwenden dieselbe verwaltete Binärdatei erneut - Quick Tunnels werden nach einem Neustart von OmniRoute oder des Containers nicht automatisch wiederhergestellt; aktivieren Sie sie bei Bedarf erneut über das Dashboard
- Tunnel-URLs sind flüchtig und ändern sich bei jedem Stoppen/Starten des Tunnels
- Verwaltete Quick Tunnels verwenden standardmäßig HTTP/2 als Transportprotokoll, um störende QUIC-UDP-Pufferwarnungen in ressourcenbeschränkten Containern zu vermeiden
- Legen Sie
CLOUDFLARED_PROTOCOL=quicoderautofest, wenn Sie die verwaltete Transportauswahl überschreiben möchten - Legen Sie
CLOUDFLARED_BINfest, wenn Sie statt des verwalteten Downloads lieber eine vorinstalliertecloudflared-Binärdatei verwenden möchten - Die Bereiche für Cloudflare Quick Tunnel, Tailscale Funnel und ngrok Tunnel können unter Einstellungen → Darstellung ein- oder ausgeblendet werden. Das Ausblenden eines Bereichs beendet keinen laufenden Tunnel.
LLM-Gateway-Intelligenz (Phase 9)
Abschnitt betitelt „LLM-Gateway-Intelligenz (Phase 9)“- Semantischer Cache — Speichert automatisch nicht gestreamte Antworten mit temperature=0 zwischen (Umgehung mit
X-OmniRoute-No-Cache: true) - Anfrageidempotenz — Dedupliziert Anfragen innerhalb von 5 Sekunden über den Header
Idempotency-KeyoderX-Request-Id - Fortschrittsverfolgung — Optionale SSE-Ereignisse
event: progressüber den HeaderX-OmniRoute-Progress: true
Übersetzer-Playground
Abschnitt betitelt „Übersetzer-Playground“Zugriff über Dashboard → Übersetzer. Debuggen und visualisieren Sie, wie OmniRoute API-Anfragen zwischen Anbietern übersetzt.
| Modus | Zweck |
|---|---|
| Playground | Quell-/Zielformate auswählen, eine Anfrage einfügen und die übersetzte Ausgabe sofort anzeigen |
| Chat-Tester | Live-Chatnachrichten über den Proxy senden und den vollständigen Anfrage-/Antwortzyklus untersuchen |
| Testumgebung | Stapeltests über mehrere Formatkombinationen ausführen, um die Korrektheit der Übersetzung zu überprüfen |
| Live-Monitor | Übersetzungen in Echtzeit beobachten, während Anfragen den Proxy durchlaufen |
Anwendungsfälle:
- Debuggen, warum eine bestimmte Client-/Anbieter-Kombination fehlschlägt
- Überprüfen, ob Thinking-Tags, Tool-Aufrufe und System-Prompts korrekt übersetzt werden
- Formatunterschiede zwischen OpenAI-, Claude-, Gemini- und Responses-API-Formaten vergleichen
Routing-Strategien
Abschnitt betitelt „Routing-Strategien“Konfigurieren Sie dies über Dashboard → Settings → Routing. Das Dashboard stellt die sechs am häufigsten verwendeten Strategien bereit; Kombinationen und der Auto-Router unterstützen intern eine größere Auswahl.
Im Dashboard sichtbare Strategien (Routing auf Kontoebene):
| Strategie | Beschreibung |
|---|---|
| Zuerst auffüllen | Verwendet Konten nach Priorität — das primäre Konto verarbeitet alle Anfragen, bis es nicht mehr verfügbar ist |
| Round Robin | Wechselt zyklisch durch alle Konten, mit einem konfigurierbaren Sticky-Limit (Standard: 3 Aufrufe pro Konto) |
| P2C (Power of Two Choices) | Wählt 2 zufällige Konten aus und leitet an das fehlerfreiere weiter — verteilt die Last unter Berücksichtigung des Zustands |
| Zufällig | Wählt für jede Anfrage mithilfe des Fisher-Yates-Shuffles zufällig ein Konto aus |
| Am wenigsten verwendet | Leitet an das Konto mit dem ältesten lastUsedAt-Zeitstempel weiter und verteilt den Datenverkehr gleichmäßig |
| Kostenoptimiert | Leitet an das Konto mit dem niedrigsten Prioritätswert weiter und optimiert so für die kostengünstigsten Anbieter |
Erweiterte Kombinations- und Auto-Strategien (pro Kombination oder über auto/*-Präfixe konfigurierbar — siehe AUTO-COMBO.md):
priority— strikte Reihenfolge, verwendet niemals Round Robinweighted— proportionale Aufteilung des Datenverkehrs anhand modellspezifischer Gewichtungenfill-first— nutzt das erste Modell vollständig aus, bis Grenzwerte erreicht sindround-robin/strict-random/randomp2c(Power of Two Choices)least-usedundcost-optimizedauto— bewertungsbasierte Auswahl aus allen Kandidatenlkgp(Last Known Good Provider) — bindet Anfragen an den letzten erfolgreichen Anbieter und greift anschließend auf Regeln zurückcontext-optimized— wählt das Modell mit dem größten freien Kontextfenster auscontext-relay— verkettet Modelle mit großem Kontextfenster für nachfolgende Interaktionen
Externer Header für Sticky Sessions
Abschnitt betitelt „Externer Header für Sticky Sessions“Senden Sie für externe Sitzungsaffinität (beispielsweise für Claude-Code-/Codex-Agenten hinter Reverse-Proxys):
X-Session-Id: your-session-keyOmniRoute akzeptiert außerdem x_session_id und gibt den tatsächlich verwendeten Sitzungsschlüssel in X-OmniRoute-Session-Id zurück.
Wenn Sie Nginx verwenden und Header mit Unterstrichen senden, aktivieren Sie:
underscores_in_headers on;Modellaliase mit Platzhaltern
Abschnitt betitelt „Modellaliase mit Platzhaltern“Erstellen Sie Platzhaltermuster, um Modellnamen neu zuzuordnen:
Muster: claude-sonnet-* → Ziel: cc/claude-sonnet-4-6Muster: gpt-* → Ziel: gh/gpt-5.3-codexPlatzhalter unterstützen * (beliebige Zeichen) und ? (ein einzelnes Zeichen).
Fallback-Ketten
Abschnitt betitelt „Fallback-Ketten“Definieren Sie globale Fallback-Ketten, die für alle Anfragen gelten:
Kette: production-fallback 1. cc/claude-opus-4-7 2. gh/gpt-5.3-codex 3. glm/glm-4.7Ausfallsicherheit und Circuit Breaker
Abschnitt betitelt „Ausfallsicherheit und Circuit Breaker“Konfigurieren Sie dies über Dashboard → Settings → Resilience.
OmniRoute implementiert Ausfallsicherheit auf Anbieterebene mit fünf Komponenten:
-
Anfragewarteschlange und Taktung — Steuerung von Anfragen auf Systemebene:
- Anfragen pro Minute (RPM) — Maximale Anzahl von Anfragen pro Minute und Konto
- Mindestzeit zwischen Anfragen — Mindestabstand zwischen Anfragen in Millisekunden
- Maximale gleichzeitige Anfragen — Maximale Anzahl gleichzeitiger Anfragen pro Konto
-
Verbindungs-Cooldown — Konfiguration pro Authentifizierungstyp für eine einzelne Verbindung nach wiederholbaren Fehlern:
- Basis-Cooldown — Standard-Cooldown-Zeitfenster für wiederholbare Upstream-Fehler
- Upstream-Wiederholungshinweise verwenden — Berücksichtigt maßgebliche
Retry-After- oder Reset-Hinweise, sofern vorhanden - Maximale Backoff-Schritte — Maximale exponentielle Backoff-Stufe bei wiederholten Fehlern
-
Anbieter-Circuit-Breaker — Verfolgt End-to-End-Fehler des Anbieters, markiert einen Anbieter beim konfigurierten Warnschwellenwert als beeinträchtigt und öffnet den Breaker, wenn der konfigurierte Fehlerschwellenwert erreicht wird:
- Beeinträchtigungsschwellenwert — Anzahl aufeinanderfolgender Anbieterfehler vor dem Übergang zu
DEGRADED - Fehlerschwellenwert — Anzahl aufeinanderfolgender Anbieterfehler vor dem Übergang zu
OPEN - Reset-Zeitüberschreitung — Zeitfenster, bevor der Anbieter erneut getestet wird
- CLOSED (Fehlerfrei) — Anfragen werden normal verarbeitet
- DEGRADED — Anfragen werden weiterhin verarbeitet, während die erhöhte Fehlerzahl überwacht wird
- OPEN — Der Anbieter wird nach wiederholten Fehlern vorübergehend blockiert
- HALF_OPEN — Es wird getestet, ob sich der Anbieter erholt hat
Verbindungsspezifische
429-Ratenbegrenzungen verbleiben im Verbindungs-Cooldown und werden nicht für den Anbieter-Breaker berücksichtigt.Der Laufzeitstatus des Anbieter-Breakers wird ausschließlich unter Dashboard → Health angezeigt.
- Beeinträchtigungsschwellenwert — Anzahl aufeinanderfolgender Anbieterfehler vor dem Übergang zu
-
Auf Cooldown warten — Wenn sich alle infrage kommenden Verbindungen bereits im Cooldown befinden, kann OmniRoute auf das Ende des frühesten Cooldowns warten und dieselbe Client-Anfrage automatisch erneut versuchen.
-
Automatische Ratenbegrenzungserkennung — Wenn Upstream-Anbieter explizite Wartezeitfenster zurückgeben, überschreiben diese Hinweise den lokalen Verbindungs-Cooldown, sofern die Einstellung aktiviert ist.
Profi-Tipp: Verwenden Sie die Seite Health, um aktive Anbieter-Breaker nach einem Ausfall zu überprüfen und zurückzusetzen. Auf der Seite „Resilience“ wird nur die Konfiguration geändert.
Datenbankexport/-import
Abschnitt betitelt „Datenbankexport/-import“Verwalten Sie Datenbanksicherungen unter Dashboard → Settings → System & Storage.
| Aktion | Beschreibung |
|---|---|
| Datenbank exportieren | Lädt die aktuelle SQLite-Datenbank als .sqlite-Datei herunter |
| Alles exportieren (.tar.gz) | Lädt ein vollständiges Backup-Archiv herunter, einschließlich: Datenbank, Einstellungen, Combos, Provider-Verbindungen (ohne Anmeldedaten), API-Schlüssel-Metadaten |
| Datenbank importieren | Lädt eine .sqlite-Datei hoch, um die aktuelle Datenbank zu ersetzen. Ein Backup vor dem Import wird automatisch erstellt, sofern nicht DISABLE_SQLITE_AUTO_BACKUP=true gesetzt ist |
# API: Datenbank exportierencurl -o backup.sqlite http://localhost:20128/api/db-backups/export
# API: Alles exportieren (vollständiges Archiv)curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll
# API: Datenbank importierencurl -X POST http://localhost:20128/api/db-backups/import \ -F "file=@backup.sqlite"Importvalidierung: Die importierte Datei wird auf Integrität (SQLite-Pragma-Prüfung), erforderliche Tabellen (provider_connections, provider_nodes, combos, api_keys) und Größe (max. 100 MB) geprüft.
Anwendungsfälle:
- OmniRoute zwischen Rechnern migrieren
- Externe Backups für die Notfallwiederherstellung erstellen
- Konfigurationen zwischen Teammitgliedern teilen (alles exportieren → Archiv teilen)
Einstellungs-Dashboard
Abschnitt betitelt „Einstellungs-Dashboard“Die Einstellungsseite ist zur einfachen Navigation in 7 Registerkarten unterteilt:
| Registerkarte | Inhalte |
|---|---|
| Allgemein | Werkzeuge für den Systemspeicher, Standardverhalten, Sichtbarkeit des Endpoint-Tunnels |
| Darstellung | Theme-Steuerung (hell/dunkel/System), Sichtbarkeit der Seitenleiste, Panel-Umschalter für Cloudflare-/Tailscale-/ngrok-Tunnelkarten |
| KI | Thinking-Budget (Durchleitung / automatisches Entfernen / benutzerdefiniert / adaptiv — siehe THINKING_BUDGET.md), globaler System-Prompt, Prompt-Cache-Statistiken |
| Sicherheit | Anmelde-/Passworteinstellungen, IP-Zugriffskontrolle, API-Authentifizierung für /models, Provider-Blockierung, Schutz vor Prompt-Injection |
| Routing | Globale Routing-Strategie (Fill First / Round Robin / P2C / Random / Least Used / Cost Optimized), Modellaliase mit Platzhaltern, Fallback-Ketten, Combo-Standardeinstellungen |
| Resilienz | Anfragewarteschlange, Verbindungs-Cooldown, Provider-Breaker-Konfiguration und Verhalten beim Warten auf den Cooldown |
| Erweitert | Globale Proxy-Konfiguration (HTTP/SOCKS5), Proxy-Überschreibungen pro Provider |
Unter „Allgemein“ werden schreibgeschützte Hinweise zur Protokollierung und zum Cache nicht mehr doppelt angezeigt. Einstellungen zur Datenbankaufbewahrung und
-optimierung werden über /api/settings/database gespeichert; zum manuellen Leeren des Caches wird
DELETE /api/cache verwendet. Die Obergrenzen für die Zeilenanzahl in Anfrage- und Proxy-Protokollen werden durch
CALL_LOGS_TABLE_MAX_ROWS und PROXY_LOGS_TABLE_MAX_ROWS gesteuert.
Kosten- und Budgetverwaltung
Abschnitt betitelt „Kosten- und Budgetverwaltung“Zugriff über Dashboard → Kosten.
| Registerkarte | Zweck |
|---|---|
| Budget | Ausgabenlimits pro API-Schlüssel mit täglichen/wöchentlichen/monatlichen Budgets und Echtzeitverfolgung festlegen |
| Preise | Einträge für Modellpreise anzeigen und bearbeiten — Kosten pro 1.000 Eingabe-/Ausgabe-Token je Provider |
# API: Budget festlegencurl -X POST http://localhost:20128/api/usage/budget \ -H "Content-Type: application/json" \ -d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}'
# API: Aktuellen Budgetstatus abrufencurl http://localhost:20128/api/usage/budgetKostenverfolgung: Jede Anfrage protokolliert die Token-Nutzung und berechnet die Kosten anhand der Preistabelle. Aufschlüsselungen nach Provider, Modell und API-Schlüssel können unter Dashboard → Nutzung angezeigt werden.
Audiotranskription
Abschnitt betitelt „Audiotranskription“OmniRoute unterstützt Audiotranskription über den OpenAI-kompatiblen Endpoint:
POST /v1/audio/transcriptionsAuthorization: Bearer your-api-keyContent-Type: multipart/form-data
# Beispiel mit curlcurl -X POST http://localhost:20128/v1/audio/transcriptions \ -H "Authorization: Bearer your-api-key" \ -F "file=@audio.mp3" \ -F "model=openai/whisper-1"deepgram/nova-3 ist die native Deepgram-Route und benötigt einen Deepgram-API-Schlüssel.
Wenn nur OpenRouter konfiguriert ist, verwenden Sie openrouter/deepgram/nova-3.
Provider für Sprache-zu-Text (Transkription):
openai/(Whisper-kompatibel)groq/(Groq Whisper Turbo)deepgram/(Nova-Familie)assemblyai/nvidia/(Parakeet, Canary)huggingface/(Whisper-Varianten)qwen/
Provider für Text-zu-Sprache (POST /v1/audio/speech):
openai/(tts-1, tts-1-hd)hyperbolic/deepgram/(Aura)nvidia/(Magpie TTS)elevenlabs/huggingface/inworld/cartesia/playht/kie/aws-polly/xiaomi-mimo/coqui/,tortoise/qwen/
Unterstützte Audioformate für die Transkription: mp3, wav, m4a, flac, ogg, webm. Die TTS-Ausgabeformate hängen vom Provider ab (mp3, wav, opus, pcm, mulaw).
Combo-Ausgleichsstrategien
Abschnitt betitelt „Combo-Ausgleichsstrategien“Konfigurieren Sie den Ausgleich pro Combo unter Dashboard → Combos → Erstellen/Bearbeiten → Strategie.
| Strategie | Beschreibung |
|---|---|
| Round-Robin | Wechselt der Reihe nach zwischen den Modellen |
| Priorität | Versucht immer zuerst das erste Modell; weicht nur bei einem Fehler aus |
| Zufällig | Wählt für jede Anfrage ein zufälliges Modell aus der Kombination |
| Gewichtet | Verteilt Anfragen proportional auf Grundlage der jedem Modell zugewiesenen Gewichtung |
| Am wenigsten verwendet | Leitet an das Modell mit den wenigsten kürzlichen Anfragen weiter (verwendet Kombinationsmetriken) |
| Kostenoptimiert | Leitet an das günstigste verfügbare Modell weiter (verwendet die Preistabelle) |
Globale Standardeinstellungen für Kombinationen können unter Dashboard → Settings → Routing → Combo Defaults festgelegt werden. Zeitüberschreitungen für Kombinationsziele übernehmen standardmäßig die aktuelle Anfragezeitüberschreitung. Verwenden Sie Target timeout (seconds) in den Standardeinstellungen für Kombinationen oder bei einer einzelnen Kombination nur dann, wenn ein kürzeres Limit pro Ziel ein schnelleres Ausweichen auslösen soll.
Kombinationsoptimierungen ohne zusätzliche Latenz müssen explizit aktiviert werden. Lassen Sie Zero-latency optimizations deaktiviert, um zu verhindern, dass diese Latenzfunktionen Ausweichziele parallel anfragen, Ziele auf Grundlage des TTFT-Verlaufs überspringen oder Ausweichanfragen komprimieren. Bei Aktivierung können konfiguriertes Hedging, prädiktive TTFT- Überspringungen und proaktive Ausweichkomprimierung die Routing-/Anfragetreue zugunsten einer geringeren Tail-Latenz reduzieren.
Deaktivieren Sie Reasoning token buffer, wenn vorgelagerte Anbieter strikte
max_tokens- / maxOutputTokens-Limits erfordern. Wenn diese Option aktiviert ist, fügt das Kombinationsrouting nur bei Modellen mit einem bekannten Ausgabelimit
zusätzlichen Spielraum für Reasoning-Modelle hinzu und lässt das Token-Limit des Clients unverändert, wenn der
sicher gepufferte Wert dieses Limit überschreiten würde. Wenn das Client-Limit bereits über einem bekannten Limit liegt,
reduziert OmniRoute es auf dieses Limit, bevor die Anfrage an den vorgelagerten Anbieter gesendet wird.
Zustandsübersicht
Abschnitt betitelt „Zustandsübersicht“Zugriff über Dashboard → Health. Echtzeitübersicht über den Systemzustand mit 6 Karten:
| Karte | Angezeigte Informationen |
|---|---|
| Systemstatus | Betriebszeit, Version, Speichernutzung, Datenverzeichnis |
| Anbieterzustand | Globaler Laufzeitstatus der Circuit Breaker für Anbieter |
| Ratenlimits | Aktive Verbindungs-Cooldowns pro Konto mit verbleibender Zeit |
| Aktive Sperren | Aktive modellspezifische Sperren und vorübergehende Ausschlüsse |
| Signatur-Cache | Statistiken des Deduplizierungs-Caches (aktive Schlüssel, Trefferquote) |
| Latenztelemetrie | Aggregation der p50-/p95-/p99-Latenz pro Anbieter |
Profi-Tipp: Die Zustandsseite wird automatisch alle 10 Sekunden aktualisiert. Verwenden Sie die Circuit-Breaker-Karte, um zu erkennen, bei welchen Anbietern Probleme auftreten.
🤖 Automatisches Routing (ohne Konfiguration)
Abschnitt betitelt „🤖 Automatisches Routing (ohne Konfiguration)“OmniRoute enthält einen bewertungsbasierten Auto-Router, der für jede Anfrage über alle verbundenen Anbieter hinweg das beste Modell auswählt — ohne dass eine Kombination gepflegt werden muss. Senden Sie die Anfrage einfach mit einem der auto/*-Präfixe, und OmniRoute stellt dynamisch eine virtuelle Kombination zusammen. Dabei werden Kandidaten anhand von Latenz, Kosten, Erfolgsrate, Kontexteignung, Modelleignung für die Aufgabe, kürzlich aufgetretenen Fehlern, Kontingent und Status des Circuit Breakers bewertet.
| Präfix | Optimiert für |
|---|---|
auto |
Ausgewogener Standard (Latenz × Kosten × Erfolgsrate) |
auto/coding |
Programmieraufgaben: bevorzugt Claude, GPT-5, GLM, Kimi, Qwen Coder und DeepSeek-Codingmodelle |
auto/cheap |
Niedrigste Kosten pro Token, akzeptiert höhere Latenz |
auto/fast |
Niedrigste Latenz, Kosten werden ignoriert |
auto/offline |
Ausschließlich lokale Anbieter (Ollama, vLLM, llama.cpp) — nützlich für isolierte Umgebungen |
auto/smart |
Schlussfolgerungsqualität hat Vorrang (Opus, GPT-5 xhigh, R1, GLM 5.1 reasoning) |
auto/lkgp |
„Letzter bekanntermaßen funktionierender Anbieter“ — verwendet den letzten erfolgreichen Anbieter und greift anschließend auf Regeln zurück |
Beispiel:
curl -X POST http://localhost:20128/v1/chat/completions \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "auto/coding", "messages": [{ "role": "user", "content": "Refactor this Python function" }], "stream": true }'Der Auto-Router wird vollständig in AUTO-COMBO.md beschrieben — einschließlich der Anpassung von Bewertungsgewichtungen, des Sperrens von Anbietern und der Prüfung von Routing-Entscheidungen unter Dashboard → Auto Combo.
🔌 MCP- und A2A-Integration
Abschnitt betitelt „🔌 MCP- und A2A-Integration“OmniRoute ist sowohl ein MCP-Server (Model Context Protocol) als auch ein A2A-Server (Agent-to-Agent JSON-RPC 2.0). Jede MCP-kompatible IDE oder Agent-Hostanwendung kann OmniRoute-Tools direkt aufrufen — ohne dass ein zusätzlicher Wrapper erforderlich ist.
MCP-Transporte
Abschnitt betitelt „MCP-Transporte“- SSE:
http://localhost:20128/api/mcp/sse - Streamfähiges HTTP:
http://localhost:20128/api/mcp/stream - stdio:
omniroute --mcp(für IDE-Plugins, die stdio bevorzugen)
Claude Desktop verbinden
Abschnitt betitelt „Claude Desktop verbinden“Bearbeiten Sie ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) oder die entsprechende Datei unter Windows/Linux:
{ "mcpServers": { "omniroute": { "command": "omniroute", "args": ["--mcp"] } }}Cursor / Continue / VS Code MCP verbinden
Abschnitt betitelt „Cursor / Continue / VS Code MCP verbinden“Verwenden Sie die SSE-URL http://localhost:20128/api/mcp/sse und einen Bearer-API-Schlüssel, der unter Dashboard → API Keys generiert wurde.
Berechtigungsbereiche
Abschnitt betitelt „Berechtigungsbereiche“MCP definiert derzeit 32 benannte Berechtigungsbereiche. Jeder Bearer-Schlüssel kann auf bestimmte Berechtigungsbereiche beschränkt werden — das maßgebliche Verzeichnis der Berechtigungsbereiche und Tools finden Sie in MCP-SERVER.md, das JSON-RPC-Schema in A2A-SERVER.md.
🧠 Skills-System
Abschnitt betitelt „🧠 Skills-System“OmniRoute stellt ein erweiterbares Skill-Framework (src/lib/skills/) bereit, mit dem Agenten und der A2A-Endpunkt domänenspezifische Routinen ausführen können (z. B. code-review, summarize, extract-facts, web-research).
- Marketplace-UI — Skills über Dashboard → Skills durchsuchen und installieren
- Schlüsselbezogene Scopes — Einschränken, welche API-Schlüssel welche Skills aufrufen dürfen
- Benutzerdefinierte Skills — Eine TypeScript-Datei in
src/lib/a2a/skills/ablegen und registrieren; anschließend kann sie sofort über A2A aufgerufen werden
Vollständige Referenz: SKILLS.md.
💾 Memory-System
Abschnitt betitelt „💾 Memory-System“OmniRoute speichert langfristige Konversationserinnerungen mit hybrider Abfrage:
- SQLite FTS5 für die Schlüsselwortsuche in früheren Gesprächsbeiträgen
- Qdrant-Vektorspeicher (optional) für semantische Erinnerungsabfragen
- Automatische Faktenextraktion — Entitäten, Präferenzen und Entscheidungen werden nach jeder Sitzung zusammengefasst und in der Tabelle
memory_factsgespeichert - Erinnerungen sind nach API-Schlüssel und Sitzung getrennt
Erinnerungen können unter Dashboard → Memory verwaltet werden (suchen, bearbeiten, exportieren, löschen). Über die HTTP-Schnittstelle (/api/memory/*) können Agenten Fakten programmgesteuert übermitteln und abfragen — siehe MEMORY.md.
🔔 Webhooks
Abschnitt betitelt „🔔 Webhooks“Abonnieren Sie OmniRoute-Ereignisse für Echtzeitüberwachung und Automatisierung.
- Erstellen Sie unter Dashboard → Webhooks einen Webhook mit Ziel-URL und einem geheimen HMAC-Signaturschlüssel
- Verfügbare Ereignisse:
request.completed,request.failed,provider.unavailable,budget.exceeded,combo.switched,circuit_breaker.opened,circuit_breaker.closed - Jede Nutzlast enthält
X-OmniRoute-Signature(HMAC-SHA256) zur Verifizierung - Wiederholungsversuche: 3 Versuche mit exponentiellem Backoff, danach Übertragung in die Dead-Letter-Queue
Das vollständige Schema finden Sie in WEBHOOKS.md.
☁️ Cloud-Agenten
Abschnitt betitelt „☁️ Cloud-Agenten“OmniRoute lässt sich in cloudbasierte Coding-Agenten (OpenAI Codex Cloud, Devin, Jules, Antigravity) integrieren, sodass Sie lang laufende Aufgaben über dasselbe Dashboard ausführen können, das auch Ihr lokales Routing verwaltet.
- Erstellen Sie Aufgaben unter Dashboard → Cloud Agents oder über
POST /api/v1/agents/tasks - Verfolgen Sie Status, Protokolle und Artefakte für jede Aufgabe
- Verwenden Sie für jeden Anbieter einen eigenen API-Schlüssel — die Anmeldedaten verlassen niemals die OmniRoute-Instanz
Vollständige Referenz: CLOUD_AGENT.md.
🛠️ Programmatische Verwaltung
Abschnitt betitelt „🛠️ Programmatische Verwaltung“Sie können jede OmniRoute-Ressource (Anbieter, Kombinationen, Schlüssel, Einstellungen) über HTTP mit einem Bearer-Schlüssel mit dem Scope manage verwalten.
Generieren Sie den Schlüssel unter Dashboard → API Keys → New Key → Scope: manage und führen Sie anschließend Folgendes aus:
# Anbieter auflistencurl http://localhost:20128/api/providers \ -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"
# Eine Anbieterverbindung hinzufügencurl -X POST http://localhost:20128/api/providers \ -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \ -H "Content-Type: application/json" \ -d '{ "provider": "openai", "apiKey": "sk-...", "name": "main" }'
# Eine Kombination erstellencurl -X POST http://localhost:20128/api/combos \ -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "premium", "strategy": "priority", "models": [{ "model": "cc/claude-opus-4-7" }, { "model": "glm/glm-5.1" }] }'
# API-Schlüssel auflisten/erstellencurl http://localhost:20128/api/keys -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"curl -X POST http://localhost:20128/api/keys -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \ -d '{ "name": "ci-bot", "scopes": ["chat"] }'Den vollständigen Endpunktkatalog sowie die Anfrage-/Antwortschemata finden Sie in API_REFERENCE.md.
💻 Interne CLI
Abschnitt betitelt „💻 Interne CLI“OmniRoute enthält eine interne CLI (omniroute …) für die Einrichtung, Diagnose und Laufzeitsteuerung. Diese ist von der Seite „CLI-Tools“ im Dashboard getrennt, auf der CLIs von Drittanbietern (Claude Code, Cursor, Codex, Cline, …) so konfiguriert werden, dass sie mit OmniRoute kommunizieren können.
omniroute setup # Interaktiver Assistent (Passwort, Anbieter, Kombinationen)omniroute setup --non-interactive # Für CI geeignetomniroute doctor # Systemdiagnose (Datenverzeichnis, DB, Anbieter, Ports)omniroute providers available # Unterstützte Anbieter auflistenomniroute providers list # Konfigurierte Verbindungen auflistenomniroute providers test <id> # Eine Anbieterverbindung live testenomniroute combos list # Kombinationen auflistenomniroute combos switch <name> # Standardkombination festlegenomniroute models # Verfügbare Modelle auflisten (--json, --search)omniroute keys add | list | remove # API-Schlüssel über das Terminal verwaltenomniroute backup # Snapshot von Konfiguration und DB erstellenomniroute restore [<timestamp>] # Aus einem Snapshot wiederherstellenomniroute health # Detaillierter Systemzustand (Schutzschalter, Cache, Arbeitsspeicher)omniroute quota # Nutzung der Anbieter-Kontingenteomniroute mcp status # Status des MCP-Serversomniroute a2a status # Status des A2A-Serversomniroute tunnel list|create|stop # Cloudflare-/Tailscale-/ngrok-Tunnelomniroute reset-password # Administratorpasswort zurücksetzenomniroute --mcp # MCP-Server über stdio startenomniroute --port 3000 # Server auf einem benutzerdefinierten Port startenTipp: Kombinieren Sie omniroute doctor --json mit Ihrem Überwachungswerkzeug, um bei fehlerhaften Anbieterverbindungen alarmiert zu werden.
🖥️ Desktop-Anwendung (Electron)
Abschnitt betitelt „🖥️ Desktop-Anwendung (Electron)“OmniRoute ist als native Desktop-Anwendung für Windows, macOS und Linux verfügbar.
Installation
Abschnitt betitelt „Installation“# Aus dem electron-Verzeichnis:cd electronnpm install
# Entwicklungsmodus (Verbindung mit einem laufenden Next.js-Entwicklungsserver herstellen):npm run dev
# Produktionsmodus (verwendet den eigenständigen Build):npm startInstallationsprogramme erstellen
Abschnitt betitelt „Installationsprogramme erstellen“cd electronnpm run build # Aktuelle Plattformnpm run build:win # Windows (.exe NSIS)npm run build:mac # macOS (.dmg universal)npm run build:linux # Linux (.AppImage)Ausgabe → electron/dist-electron/
Hauptfunktionen
Abschnitt betitelt „Hauptfunktionen“| Funktion | Beschreibung |
|---|---|
| Serverbereitschaft | Fragt den Server ab, bevor das Fenster angezeigt wird (kein leerer Bildschirm) |
| Infobereich | In den Infobereich minimieren, Port ändern, über das Menü beenden |
| Portverwaltung | Serverport über den Infobereich ändern (Server wird automatisch neu gestartet) |
| Content Security Policy | Restriktive CSP über Sitzungs-Header |
| Einzelinstanz | Es kann jeweils nur eine App-Instanz ausgeführt werden |
| Offlinemodus | Der gebündelte Next.js-Server funktioniert ohne Internetverbindung |
Umgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“| Variable | Standardwert | Beschreibung |
|---|---|---|
OMNIROUTE_PORT |
20128 |
Serverport |
OMNIROUTE_MEMORY_MB |
512 |
Node.js-Heap-Limit (64–16384 MB) |
📖 Vollständige Dokumentation: electron/README.md
HagiCode
HagiCode ist ein agentischer Coding-Arbeitsplatz mit strukturierten Workflows, Multi-Agent-Ausführung und Hero-Dungeon-Ansichten.
Mit einem intelligenteren, schnelleren und unterhaltsameren agentischen Workflow wird aus Ideen nutzbare Software.

- SmartStrukturierte Workflows machen aus Absichten einen umsetzbaren Weg von der Idee bis zur Auslieferung.
- EfficientMulti-Agent-Workflows führen Recherche, Umsetzung und Prüfung parallel aus.
- FunHero Dungeon macht lange Coding-Sitzungen anschaulich und gemeinschaftlich.