Files
OmniRoute/docs/i18n/de/docs/guides/USER_GUIDE.md
Diego Rodrigues de Sa e Souza b637350680 fix(docs): re-sync the 65 documentation mirror sets; section-level docs pipeline; drift gate blocking (#13940)
1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors.

⚠️ base-red inherited: #12732
2026-09-17 02:55:31 -03:00

75 KiB
Raw Blame History

User Guide (Deutsch)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


🌐 Sprachen: 🇺🇸 English | 🇪🇹 አማርኛ | 🇸🇦 العربية | 🇦🇿 Azərbaycan dili | 🇧🇬 Български | 🇧🇩 বাংলা | 🇨🇿 Čeština | 🇩🇰 Dansk | 🇩🇪 Deutsch | 🇬🇷 Ελληνικά | 🇪🇸 Español | 🇪🇪 Eesti | 🇮🇷 فارسی | 🇫🇮 Suomi | 🇫🇷 Français | 🇮🇪 Gaeilge | 🇮🇳 ગુજરાતી | 🇳🇬 Hausa | 🇮🇱 עברית | 🇮🇳 हिन्दी | 🇭🇷 Hrvatski | 🇭🇺 Magyar | 🇦🇲 Հայերեն | 🇮🇩 Bahasa Indonesia | 🇳🇬 Igbo | 🇮🇹 Italiano | 🇯🇵 日本語 | 🇬🇪 ქართული | 🇰🇭 ខ្មែរ | 🇮🇳 ಕನ್ನಡ | 🇰🇷 한국어 | 🇱🇹 Lietuvių | 🇱🇻 Latviešu | 🇮🇳 മലയാളം | 🇮🇳 मराठी | 🇲🇾 Bahasa Melayu | 🇲🇹 Malti | 🇲🇲 မြန်မာ | 🇳🇵 नेपाली | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇮🇳 ଓଡ଼ିଆ | 🇮🇳 ਪੰਜਾਬੀ | 🇵🇭 Filipino | 🇵🇱 Polski | 🇵🇹 Português (Portugal) | 🇧🇷 Português (Brasil) | 🇷🇴 Română | 🇷🇺 Русский | 🇱🇰 සිංහල | 🇸🇰 Slovenčina | 🇸🇮 Slovenščina | 🇷🇸 Српски | 🇸🇪 Svenska | 🇰🇪 Kiswahili | 🇮🇳 தமிழ் | 🇮🇳 తెలుగు | 🇹🇭 ไทย | 🇹🇷 Türkçe | 🇺🇦 Українська | 🇵🇰 اردو | 🇺🇿 Oʻzbekcha | 🇻🇳 Tiếng Việt | 🇳🇬 Yorùbá | 🇨🇳 中文 (简体) | 🇹🇼 中文 (繁體)

Vollständige Anleitung zum Konfigurieren von Anbietern, Erstellen von Kombinationen, Integrieren von CLI-Tools und Bereitstellen von OmniRoute.


Inhaltsverzeichnis


💰 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) $20200/Monat 5 Std. + wöchentlich OpenAI-Nutzer
GitHub Copilot $1019/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

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 $25
gegenüber $20 + Erreichen der Limits = Frustration

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: $0
Qualität: Modell, Limits, Datenschutz und SLA für Ihren Workload überprüfen

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 garantiert
Monatliche Kosten: $20200 (Abonnements) + $1020 (Ausweichlösungen)

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: $0
Zugriff über: WhatsApp, Telegram, Slack, Discord, iMessage, Signal ...

📖 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

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-20251001

Profi-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)

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-spark

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

GLM-4.7 (tägliche Zurücksetzung, $0.6/1M)

  1. Registrieren: Zhipu AI
  2. API-Schlüssel aus dem Coding Plan abrufen
  3. Dashboard → API-Schlüssel hinzufügen: Anbieter: glm, API-Schlüssel: your-key

Verwendung: glm/glm-4.7Profi-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)

  1. Registrieren: MiniMax
  2. API-Schlüssel abrufen → Dashboard → API-Schlüssel hinzufügen

Verwendung: minimax/MiniMax-M2.1Profi-Tipp: Günstigste Option für lange Kontexte (1 Mio. Token)!

Kimi K2 ($9/Monat pauschal)

  1. Abonnieren: Moonshot AI
  2. API-Schlüssel abrufen → Dashboard → API-Schlüssel hinzufügen

Verwendung: kimi/kimi-k2.5Profi-Tipp: Feste $9/Monat für 10 Mio. Token = effektive Kosten von $0.90/1M!

Baidu Qianfan / ERNIE

  1. Registrieren: Baidu AI Cloud Qianfan
  2. 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

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)

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-m3

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

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

Dashboard → Kombinationen → Neu erstellen

Name: premium-coding
Modelle:
  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-coding

Beispiel 2: Ausschließlich kostenlos (keine Kosten)

Name: free-combo
Modelle:
  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

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-7

OmniRoute 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

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

export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"

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

Anbieter: OpenAI-kompatibel
Basis-URL: http://localhost:20128/v1
API-Schlüssel: [aus dem Dashboard]
Modell: cc/claude-opus-4-7

🚀 Bereitstellung

Globale npm-Installation (empfohlen)

npm install -g omniroute

# Konfigurationsverzeichnis erstellen
mkdir -p ~/.omniroute

# .env-Datei erstellen (siehe .env.example)
cp .env.example ~/.omniroute/.env

# Server starten
omniroute
# Oder mit benutzerdefiniertem Port:
omniroute --port 3000

Die CLI lädt .env automatisch aus ~/.omniroute/.env oder ./.env.

Tray-Modus

Starte OmniRoute im System-Tray:

omniroute serve --tray

Der 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 enable

Der 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 disable

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 omniroute ausführen.

VPS-Bereitstellung

git clone https://github.com/diegosouzapw/OmniRoute.git
cd 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 -- start

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 Speicherlimit
OMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start

# Oder mit ecosystem.config.js
pm2 start ecosystem.config.js

Erstelle 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",
    },
  ],
};

Docker

# 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:cli

Informationen zum hostintegrierten Modus mit CLI-Binärdateien findest du im Docker-Abschnitt der Hauptdokumentation.

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=omniroute
version=3.8.0
revision=1
hostmakedepends="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=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b
system_accounts="_omniroute"
omniroute_homedir="/var/lib/omniroute"
export NODE_ENV=production
export npm_config_engine_strict=false
export npm_config_loglevel=error
export npm_config_fund=false
export 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/sh
export 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

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

Alle verfügbaren Modelle anzeigen

Die nachstehende Liste wurde aus open-sse/config/providerRegistry.ts fü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 über GET /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.20.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

Benutzerdefinierte Modelle

Fügen Sie jedem Anbieter eine beliebige Modell-ID hinzu, ohne auf ein App-Update warten zu müssen:

# Über die API
curl -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

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-a
OMNIROUTE_INSTANCE_ID=gateway-a
OMNIROUTE_PEER_URLS=http://gateway-b:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4
# gateway-b
OMNIROUTE_INSTANCE_ID=gateway-b
OMNIROUTE_PEER_URLS=http://gateway-a:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4

Nur 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

Leiten Sie Anfragen mit Modellvalidierung direkt an einen bestimmten Anbieter weiter:

POST http://localhost:20128/v1/providers/openai/chat/completions
POST http://localhost:20128/v1/providers/openai/embeddings
POST http://localhost:20128/v1/providers/fireworks/images/generations

Das Anbieterpräfix wird automatisch hinzugefügt, falls es fehlt. Nicht übereinstimmende Modelle geben 400 zurück.

Netzwerk-Proxy-Konfiguration

# Globalen Proxy festlegen
curl -X PUT http://localhost:20128/api/settings/proxy \
  -d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'

# Anbieterbezogener Proxy
curl -X PUT http://localhost:20128/api/settings/proxy \
  -d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'

# Proxy testen
curl -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

curl http://localhost:20128/api/models/catalog

Gibt nach Anbieter gruppierte Modelle mit ihren Typen (chat, embedding, image) zurück.

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

  • 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 cloudflared nur 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=quic oder auto fest, wenn Sie die verwaltete Transportauswahl überschreiben möchten
  • Legen Sie CLOUDFLARED_BIN fest, wenn Sie statt des verwalteten Downloads lieber eine vorinstallierte cloudflared-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)

  • 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-Key oder X-Request-Id
  • Fortschrittsverfolgung — Optionale SSE-Ereignisse event: progress über den Header X-OmniRoute-Progress: true

Ü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

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 Robin
  • weighted — proportionale Aufteilung des Datenverkehrs anhand modellspezifischer Gewichtungen
  • fill-first — nutzt das erste Modell vollständig aus, bis Grenzwerte erreicht sind
  • round-robin / strict-random / random
  • p2c (Power of Two Choices)
  • least-used und cost-optimized
  • auto — bewertungsbasierte Auswahl aus allen Kandidaten
  • lkgp (Last Known Good Provider) — bindet Anfragen an den letzten erfolgreichen Anbieter und greift anschließend auf Regeln zurück
  • context-optimized — wählt das Modell mit dem größten freien Kontextfenster aus
  • context-relay — verkettet Modelle mit großem Kontextfenster für nachfolgende Interaktionen

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-key

OmniRoute 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

Erstellen Sie Platzhaltermuster, um Modellnamen neu zuzuordnen:

Muster: claude-sonnet-*     →  Ziel: cc/claude-sonnet-4-6
Muster: gpt-*               →  Ziel: gh/gpt-5.3-codex

Platzhalter unterstützen * (beliebige Zeichen) und ? (ein einzelnes Zeichen).

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.7

Ausfallsicherheit und Circuit Breaker

Konfigurieren Sie dies über Dashboard → Settings → Resilience.

OmniRoute implementiert Ausfallsicherheit auf Anbieterebene mit fünf Komponenten:

  1. 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
  2. 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
  3. 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.

  4. 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.

  5. 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

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 exportieren
curl -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 importieren
curl -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

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

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 festlegen
curl -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 abrufen
curl http://localhost:20128/api/usage/budget

Kostenverfolgung: 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

OmniRoute unterstützt Audiotranskription über den OpenAI-kompatiblen Endpoint:

POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data

# Beispiel mit curl
curl -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

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

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)

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

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

  • 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

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

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

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

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

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_facts gespeichert
  • 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

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

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

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 auflisten
curl http://localhost:20128/api/providers \
  -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"

# Eine Anbieterverbindung hinzufügen
curl -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 erstellen
curl -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/erstellen
curl 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

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 geeignet
omniroute doctor                   # Systemdiagnose (Datenverzeichnis, DB, Anbieter, Ports)
omniroute providers available      # Unterstützte Anbieter auflisten
omniroute providers list           # Konfigurierte Verbindungen auflisten
omniroute providers test <id>      # Eine Anbieterverbindung live testen
omniroute combos list              # Kombinationen auflisten
omniroute combos switch <name>     # Standardkombination festlegen
omniroute models                   # Verfügbare Modelle auflisten (--json, --search)
omniroute keys add | list | remove # API-Schlüssel über das Terminal verwalten
omniroute backup                   # Snapshot von Konfiguration und DB erstellen
omniroute restore [<timestamp>]    # Aus einem Snapshot wiederherstellen
omniroute health                   # Detaillierter Systemzustand (Schutzschalter, Cache, Arbeitsspeicher)
omniroute quota                    # Nutzung der Anbieter-Kontingente
omniroute mcp status               # Status des MCP-Servers
omniroute a2a status               # Status des A2A-Servers
omniroute tunnel list|create|stop  # Cloudflare-/Tailscale-/ngrok-Tunnel
omniroute reset-password           # Administratorpasswort zurücksetzen
omniroute --mcp                    # MCP-Server über stdio starten
omniroute --port 3000              # Server auf einem benutzerdefinierten Port starten

Tipp: Kombinieren Sie omniroute doctor --json mit Ihrem Überwachungswerkzeug, um bei fehlerhaften Anbieterverbindungen alarmiert zu werden.


🖥️ Desktop-Anwendung (Electron)

OmniRoute ist als native Desktop-Anwendung für Windows, macOS und Linux verfügbar.

Installation

# Aus dem electron-Verzeichnis:
cd electron
npm install

# Entwicklungsmodus (Verbindung mit einem laufenden Next.js-Entwicklungsserver herstellen):
npm run dev

# Produktionsmodus (verwendet den eigenständigen Build):
npm start

Installationsprogramme erstellen

cd electron
npm run build          # Aktuelle Plattform
npm run build:win      # Windows (.exe NSIS)
npm run build:mac      # macOS (.dmg universal)
npm run build:linux    # Linux (.AppImage)

Ausgabe → electron/dist-electron/

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

Variable Standardwert Beschreibung
OMNIROUTE_PORT 20128 Serverport
OMNIROUTE_MEMORY_MB 512 Node.js-Heap-Limit (6416384 MB)

📖 Vollständige Dokumentation: electron/README.md