🌐 Languages: 🇺🇸 English | 🇧🇷 Português (Brasil) | 🇪🇸 Español | 🇫🇷 Français | 🇮🇹 Italiano | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 Deutsch | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 العربية | 🇯🇵 日本語 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 Dansk | 🇫🇮 Suomi | 🇮🇱 עברית | 🇭🇺 Magyar | 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어 | 🇲🇾 Bahasa Melayu | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇵🇹 Português (Portugal) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 Slovenčina | 🇸🇪 Svenska | 🇵🇭 Filipino
Komplet guide til konfiguration af udbydere, oprettelse af kombinationer, integration af CLI-værktøjer og implementering af OmniRoute.
- Pricing at a Glance
- Use Cases
- Provider Setup
- CLI Integration
- Deployment
- Available Models
- Advanced Features
| Tier | Udbyder | Omkostninger | Kvote nulstilling | Bedst til |
|---|---|---|---|---|
| 💳 ABONNEMENT | Claude Code (Pro) | 20 USD/md. | 5 timer + ugentlig | Allerede abonneret |
| Codex (Plus/Pro) | $20-200/md. | 5 timer + ugentlig | OpenAI-brugere | |
| Gemini CLI | GRATIS | 180K/md + 1K/dag | Alle sammen! | |
| GitHub Copilot | $10-19/md. | Månedlig | GitHub-brugere | |
| 🔑 API NØGLE | DeepSeek | Betal pr. brug | Ingen | Billig ræsonnement |
| Groq | Betal pr. brug | Ingen | Ultrahurtig slutning | |
| xAI (Grok) | Betal pr. brug | Ingen | Grok 4 ræsonnement | |
| Mistral | Betal pr. brug | Ingen | EU-hostede modeller | |
| Forvirring | Betal pr. brug | Ingen | Søgeforøget | |
| Sammen AI | Betal pr. brug | Ingen | Open source-modeller | |
| Fyrværkeri AI | Betal pr. brug | Ingen | Fast FLUX billeder | |
| Cerebras | Betal pr. brug | Ingen | Wafer-skala hastighed | |
| Sammenhæng | Betal pr. brug | Ingen | Kommando R+ RAG | |
| NVIDIA NIM | Betal pr. brug | Ingen | Virksomhedsmodeller | |
| 💰 BILLIG | GLM-4.7 | 0,6 USD/1 mio. | Dagligt 10:00 | Budget backup |
| MiniMax M2.1 | $0,2/1 mio. | 5-timers rullende | Billigste mulighed | |
| Kimi K2 | 9 USD/md. lejlighed | 10M tokens/md. | Forudsigelige omkostninger | |
| 🆓 GRATIS | iFlow | $0 | Ubegrænset | 8 modeller gratis |
| Qwen | $0 | Ubegrænset | 3 modeller gratis | |
| Kiro | $0 | Ubegrænset | Claude gratis |
💡 Pro-tip: Start med Gemini CLI (180K gratis/måned) + iFlow (ubegrænset gratis) combo = $0 omkostninger!
Problem: Kvoten udløber ubrugt, satsgrænser under tung kodning
Combo: "maximize-claude"
1. cc/claude-opus-4-6 (use subscription fully)
2. glm/glm-4.7 (cheap backup when quota out)
3. if/kimi-k2-thinking (free emergency fallback)
Monthly cost: $20 (subscription) + ~$5 (backup) = $25 total
vs. $20 + hitting limits = frustration
Problem: Har ikke råd til abonnementer, har brug for pålidelig AI-kodning
Combo: "free-forever"
1. gc/gemini-3-flash (180K free/month)
2. if/kimi-k2-thinking (unlimited free)
3. qw/qwen3-coder-plus (unlimited free)
Monthly cost: $0
Quality: Production-ready models
Problem: Deadlines, har ikke råd til nedetid
Combo: "always-on"
1. cc/claude-opus-4-6 (best quality)
2. cx/gpt-5.2-codex (second subscription)
3. glm/glm-4.7 (cheap, resets daily)
4. minimax/MiniMax-M2.1 (cheapest, 5h reset)
5. if/kimi-k2-thinking (free unlimited)
Result: 5 layers of fallback = zero downtime
Monthly cost: $20-200 (subscriptions) + $10-20 (backup)
Problem: Har brug for AI-assistent i beskedapps, helt gratis
Combo: "openclaw-free"
1. if/glm-4.7 (unlimited free)
2. if/minimax-m2.1 (unlimited free)
3. if/kimi-k2-thinking (unlimited free)
Monthly cost: $0
Access via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
Dashboard → Providers → Connect Claude Code
→ OAuth login → Auto token refresh
→ 5-hour + weekly quota tracking
Models:
cc/claude-opus-4-6
cc/claude-sonnet-4-5-20250929
cc/claude-haiku-4-5-20251001Prof tip: Brug Opus til komplekse opgaver, Sonnet for hurtighed. OmniRoute sporer kvote pr. model!
Dashboard → Providers → Connect Codex
→ OAuth login (port 1455)
→ 5-hour + weekly reset
Models:
cx/gpt-5.2-codex
cx/gpt-5.1-codex-maxDashboard → Providers → Connect Gemini CLI
→ Google OAuth
→ 180K completions/month + 1K/day
Models:
gc/gemini-3-flash-preview
gc/gemini-2.5-proBedste værdi: Kæmpe gratis niveau! Brug dette før betalte niveauer.
Dashboard → Providers → Connect GitHub
→ OAuth via GitHub
→ Monthly reset (1st of month)
Models:
gh/gpt-5
gh/claude-4.5-sonnet
gh/gemini-3-pro- Tilmeld dig: Zhipu AI
- Hent API-nøgle fra Coding Plan
- Dashboard → Tilføj API-nøgle: Udbyder:
glm, API-nøgle:your-key
Brug: glm/glm-4.7 — Prof tip: Kodningsplan tilbyder 3× kvote til 1/7 pris! Nulstil dagligt 10:00.
- Tilmeld dig: MiniMax
- Hent API-nøgle → Dashboard → Tilføj API-nøgle
Brug: minimax/MiniMax-M2.1 — Prof tip: Billigste mulighed for lang sammenhæng (1M tokens)!
- Abonner: Moonshot AI
- Hent API-nøgle → Dashboard → Tilføj API-nøgle
Brug: kimi/kimi-latest — Prof tip: Fast $9/måned for 10M tokens = $0,90/1M effektive omkostninger!
Dashboard → Connect iFlow → OAuth login → Unlimited usage
Models: if/kimi-k2-thinking, if/qwen3-coder-plus, if/glm-4.7, if/minimax-m2, if/deepseek-r1Dashboard → Connect Qwen → Device code auth → Unlimited usage
Models: qw/qwen3-coder-plus, qw/qwen3-coder-flashDashboard → Connect Kiro → AWS Builder ID or Google/GitHub → Unlimited
Models: kr/claude-sonnet-4.5, kr/claude-haiku-4.5Dashboard → Combos → Create New
Name: premium-coding
Models:
1. cc/claude-opus-4-6 (Subscription primary)
2. glm/glm-4.7 (Cheap backup, $0.6/1M)
3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
Use in CLI: premium-coding
Name: free-combo
Models:
1. gc/gemini-3-flash-preview (180K free/month)
2. if/kimi-k2-thinking (unlimited)
3. qw/qwen3-coder-plus (unlimited)
Cost: $0 forever!
Settings → Models → Advanced:
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [from omniroute dashboard]
Model: cc/claude-opus-4-6
Rediger ~/.claude/config.json:
{
"anthropic_api_base": "http://localhost:20128/v1",
"anthropic_api_key": "your-omniroute-api-key"
}export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"Rediger ~/.openclaw/openclaw.json:
{
"agents": {
"defaults": {
"model": { "primary": "omniroute/if/glm-4.7" }
}
},
"models": {
"providers": {
"omniroute": {
"baseUrl": "http://localhost:20128/v1",
"apiKey": "your-omniroute-api-key",
"api": "openai-completions",
"models": [{ "id": "if/glm-4.7", "name": "glm-4.7" }]
}
}
}
}Eller brug Dashboard: CLI Tools → OpenClaw → Auto-config
Provider: OpenAI Compatible
Base URL: http://localhost:20128/v1
API Key: [from dashboard]
Model: cc/claude-opus-4-6
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
# Or: pm2 start npm --name omniroute -- start# Build image (default = runner-cli with codex/claude/droid preinstalled)
docker build -t omniroute:cli .
# Portable mode (recommended)
docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cliFor værtsintegreret tilstand med CLI-binære filer, se Docker-sektionen i hoveddokumenterne.
| Variabel | Standard | Beskrivelse |
|---|---|---|
JWT_SECRET |
omniroute-default-secret-change-me |
JWT signeringshemmelighed (ændring i produktion) |
INITIAL_PASSWORD |
123456 |
Første login-adgangskode |
DATA_DIR |
~/.omniroute |
Datamappe (db, forbrug, logfiler) |
PORT |
ramme standard | Serviceport (20128 i eksempler) |
HOSTNAME |
ramme standard | Bind vært (Docker er som standard 0.0.0.0) |
NODE_ENV |
runtime default | Indstil production til implementering |
BASE_URL |
http://localhost:20128 |
Intern basis-URL på serversiden |
CLOUD_URL |
https://omniroute.dev |
Base URL for slutpunkt for skysynkronisering |
API_KEY_SECRET |
endpoint-proxy-api-key-secret |
HMAC-hemmelighed for genererede API-nøgler |
REQUIRE_API_KEY |
false |
Gennemtving Bearer API-nøgle på /v1/* |
ENABLE_REQUEST_LOGS |
false |
Aktiverer anmodnings-/svarlogs |
AUTH_COOKIE_SECURE |
false |
Tving Secure auth-cookie (bag HTTPS omvendt proxy) |
For den fulde reference til miljøvariablen, se README.
Se alle tilgængelige modeller
Claude Code (cc/) — Pro/Max: cc/claude-opus-4-6, cc/claude-sonnet-4-5-20250929, cc/claude-haiku-4-5-20251001
Codex (cx/) — Plus/Pro: cx/gpt-5.2-codex, cx/gpt-5.1-codex-max
Gemini CLI (gc/) — GRATIS: gc/gemini-3-flash-preview, gc/gemini-2.5-pro
GitHub Copilot (gh/): gh/gpt-5, gh/claude-4.5-sonnet
GLM (glm/) — 0,6 USD/1 mio.: glm/glm-4.7
MiniMax (minimax/) — $0,2/1 mio.: minimax/MiniMax-M2.1
iFlow (if/) — GRATIS: if/kimi-k2-thinking, if/qwen3-coder-plus, if/deepseek-r1
Qwen (qw/) — GRATIS: qw/qwen3-coder-plus, qw/qwen3-coder-flash
Kiro (kr/) — GRATIS: kr/claude-sonnet-4.5, kr/claude-haiku-4.5
DeepSeek (ds/): ds/deepseek-chat, ds/deepseek-reasoner
Groq (groq/): groq/llama-3.3-70b-versatile, groq/llama-4-maverick-17b-128e-instruct
xAI (xai/): xai/grok-4, xai/grok-4-0709-fast-reasoning, xai/grok-code-mini
Mistral (mistral/): mistral/mistral-large-2501, mistral/codestral-2501
Forvirring (pplx/): pplx/sonar-pro, pplx/sonar
Together AI (together/): together/meta-llama/Llama-3.3-70B-Instruct-Turbo
Fireworks AI (fireworks/): fireworks/accounts/fireworks/models/deepseek-v3p1
Cerebras (cerebras/): cerebras/llama-3.3-70b
Kohere (cohere/): cohere/command-r-plus-08-2024
NVIDIA NIM (nvidia/): nvidia/nvidia/llama-3.3-70b-instruct
Tilføj ethvert model-id til enhver udbyder uden at vente på en appopdatering:
# Via API
curl -X POST http://localhost:20128/api/provider-models \
-H "Content-Type: application/json" \
-d '{"provider": "openai", "modelId": "gpt-4.5-preview", "modelName": "GPT-4.5 Preview"}'
# List: curl http://localhost:20128/api/provider-models?provider=openai
# Remove: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-4.5-preview"Eller brug Dashboard: Udbydere → [Udbyder] → Brugerdefinerede modeller.
Rut anmodninger direkte til en specifik udbyder med modelvalidering:
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/generationsUdbyderpræfikset tilføjes automatisk, hvis det mangler. Umatchede modeller returnerer 400.
# Set global proxy
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'
# Per-provider proxy
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'
# Test proxy
curl -X POST http://localhost:20128/api/settings/proxy/test \
-d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}'Forrang: Nøglespecifik → Kombinationsspecifik → Udbyderspecifik → Global → Miljø.
curl http://localhost:20128/api/models/catalogReturnerer modeller grupperet efter udbyder med typer (chat, embedding, image).
- Synkroniser udbydere, kombinationer og indstillinger på tværs af enheder
- Automatisk baggrundssynkronisering med timeout + fejl-hurtig
- Foretrækker server-side
BASE_URL/CLOUD_URLi produktion
- Semantisk cache — Auto-cacher ikke-streaming, temperatur=0 svar (omgå med
X-OmniRoute-No-Cache: true) - Anmod om idempotens — Deduplikerer anmodninger inden for 5 sekunder via
Idempotency-KeyellerX-Request-Idheader - Progress Tracking — Tilmeld SSE
event: progressbegivenheder viaX-OmniRoute-Progress: trueheader
Adgang via Dashboard → Oversætter. Fejlfind og visualiser, hvordan OmniRoute oversætter API-anmodninger mellem udbydere.
| Tilstand | Formål |
|---|---|
| Legeplads | Vælg kilde-/målformater, indsæt en anmodning, og se det oversatte output med det samme |
| Chattester | Send live chatbeskeder gennem proxyen og inspicer den fulde anmodning/svar-cyklus |
| Testbænk | Kør batchtest på tværs af flere formatkombinationer for at bekræfte oversættelsens korrekthed |
| Live Monitor | Se oversættelser i realtid, mens anmodninger strømmer gennem proxyen |
Brugstilfælde:
- Fejlfinding af, hvorfor en specifik klient/udbyder-kombination mislykkes
- Bekræft, at tankemærker, værktøjsopkald og systembeskeder oversættes korrekt
- Sammenlign formatforskelle mellem OpenAI, Claude, Gemini og Responses API-formater
Konfigurer via Dashboard → Indstillinger → Routing.
| Strategi | Beskrivelse |
|---|---|
| Fyld først | Bruger konti i prioriteret rækkefølge — primær konto håndterer alle anmodninger, indtil de ikke er tilgængelige |
| Round Robin | Går gennem alle konti med en konfigurerbar sticky-grænse (standard: 3 opkald pr. konto) |
| P2C (Power of Two Choices) | Vælger 2 tilfældige konti og ruter til den sundere — balancerer belastning med bevidsthed om sundhed |
| Tilfældig | Vælger tilfældigt en konto for hver anmodning ved hjælp af Fisher-Yates shuffle |
| Mindst brugt | Ruter til kontoen med det ældste lastUsedAt tidsstempel, der fordeler trafikken jævnt |
| Omkostningsoptimeret | Ruter til kontoen med den laveste prioritetsværdi, optimerer til udbydere med laveste omkostninger |
Opret jokertegnmønstre for at omdanne modelnavne:
Pattern: claude-sonnet-* → Target: cc/claude-sonnet-4-5-20250929
Pattern: gpt-* → Target: gh/gpt-5.1-codex
Jokertegn understøtter * (alle tegn) og ? (enkelt tegn).
Definer globale reservekæder, der gælder på tværs af alle anmodninger:
Chain: production-fallback
1. cc/claude-opus-4-6
2. gh/gpt-5.1-codex
3. glm/glm-4.7
Konfigurer via Dashboard → Indstillinger → Resiliens.
OmniRoute implementerer modstandsdygtighed på udbyderniveau med fire komponenter:
-
Udbyderprofiler — Konfiguration pr. udbyder for:
- Fejltærskel (hvor mange fejl før åbning)
- Nedkølingsvarighed
- Følsomhed for registrering af hastighedsgrænse
- Eksponentielle backoff-parametre
-
Redigerbare hastighedsgrænser — Standardindstillinger på systemniveau, der kan konfigureres i dashboardet:
- Requests Per Minute (RPM) — Maksimale anmodninger pr. minut pr. konto
- Min Time Between Requests — Minimumsafstand i millisekunder mellem anmodninger
- Maksimal samtidige anmodninger — Maksimalt antal samtidige anmodninger pr. konto
- Klik på Rediger for at ændre, og klik derefter på Gem eller Annuller. Værdier bevarer via resilience API.
-
Circuit Breaker — Sporer fejl pr. udbyder og åbner automatisk kredsløbet, når en tærskel er nået:
- LUKKET (Sund) — Anmodninger flyder normalt
- ÅBEN — Udbyderen er midlertidigt blokeret efter gentagne fejl
- HALF_OPEN — Tester, om udbyderen er genoprettet
-
Politik og låste identifikatorer — Viser strømafbryderstatus og låste identifikatorer med tvangsoplåsningsfunktion.
-
Automatisk registrering af hastighedsgrænse — Overvåger
429ogRetry-Afteroverskrifter for proaktivt at undgå at ramme udbyderens satsgrænser.
Prof tip: Brug knappen Nulstil alle til at rydde alle strømafbrydere og nedkøling, når en udbyder kommer sig efter en fejl.
Administrer databasesikkerhedskopier i Dashboard → Indstillinger → System og lager.
| Handling | Beskrivelse |
|---|---|
| Eksporter database | Downloader den aktuelle SQLite-database som en .sqlite-fil |
| Eksporter alle (.tar.gz) | Downloader et komplet backup-arkiv inklusive: database, indstillinger, kombinationer, udbyderforbindelser (ingen legitimationsoplysninger), API-nøglemetadata |
| Importer database | Upload en .sqlite fil for at erstatte den aktuelle database. Der oprettes automatisk en pre-import backup |
# API: Export database
curl -o backup.sqlite http://localhost:20128/api/db-backups/export
# API: Export all (full archive)
curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll
# API: Import database
curl -X POST http://localhost:20128/api/db-backups/import \
-F "file=@backup.sqlite"Importvalidering: Den importerede fil er valideret for integritet (SQLite pragmatjek), påkrævede tabeller (provider_connections, provider_nodes, combos, api_keys) og størrelse (maks. 100 MB).
Brugstilfælde:
- Migrer OmniRoute mellem maskiner
- Opret eksterne sikkerhedskopier til katastrofegendannelse
- Del konfigurationer mellem teammedlemmer (eksporter alle → del arkiv)
Indstillingssiden er organiseret i 5 faner for nem navigation:
| Faneblad | Indhold |
|---|---|
| Sikkerhed | Indstillinger for login/adgangskode, IP-adgangskontrol, API-godkendelse for /models og udbyderblokering |
| Routing | Global routingstrategi (6 muligheder), jokertegn-modelaliaser, reservekæder, combo-standarder |
| Resiliens | Udbyderprofiler, redigerbare hastighedsgrænser, strømafbryderstatus, politikker og låste identifikatorer |
| AI | Tænkende budgetkonfiguration, global systemprompt-injektion, prompt-cache-statistik |
| Avanceret | Global proxy-konfiguration (HTTP/SOCKS5) |
Adgang via Dashboard → Omkostninger.
| Faneblad | Formål |
|---|---|
| Budget | Indstil forbrugsgrænser pr. API-nøgle med daglige/ugentlige/månedlige budgetter og realtidssporing |
| Priser | Se og rediger modelprissætninger — pris pr. 1K input/output-tokens pr. udbyder |
# API: Set a budget
curl -X POST http://localhost:20128/api/usage/budget \
-H "Content-Type: application/json" \
-d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}'
# API: Get current budget status
curl http://localhost:20128/api/usage/budgetOmkostningssporing: Hver anmodning logger tokenbrug og beregner omkostninger ved hjælp af pristabellen. Se opdelinger i Dashboard → Brug efter udbyder, model og API-nøgle.
OmniRoute understøtter lydtransskription via det OpenAI-kompatible slutpunkt:
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
# Example with curl
curl -X POST http://localhost:20128/v1/audio/transcriptions \
-H "Authorization: Bearer your-api-key" \
-F "file=@audio.mp3" \
-F "model=deepgram/nova-3"Tilgængelige udbydere: Deepgram (deepgram/), AssemblyAI (assemblyai/).
Understøttede lydformater: mp3, wav, m4a, flac, ogg, webm.
Konfigurer balancering pr. kombination i Dashboard → Combos → Opret/Rediger → Strategi.
| Strategi | Beskrivelse |
|---|---|
| Round-Robin | Roterer sekventielt gennem modeller |
| Prioritet | Prøver altid den første model; falder kun tilbage på fejl |
| Tilfældig | Vælger en tilfældig model fra kombinationen for hver anmodning |
| Vægtet | Ruter proportionalt baseret på tildelte vægte pr. model |
| Mindst brugt | Ruter til modellen med de færreste seneste anmodninger (bruger combo-metrics) |
| Omkostningsoptimeret | Ruter til den billigste tilgængelige model (bruger pristabel) |
Globale kombinationsstandarder kan indstilles i Dashboard → Indstillinger → Routing → Combo-standarder.
Adgang via Dashboard → Health. Oversigt over systemets tilstand i realtid med 6 kort:
| Kort | Hvad det viser |
|---|---|
| Systemstatus | Oppetid, version, hukommelsesforbrug, datakatalog |
| Udbydersundhed | Per-leverandør afbrydertilstand (Lukket/Åben/Halv-Åben) |
| Satsgrænser | Aktive nedkølingsgrænser pr. konto med resterende tid |
| Aktive lockouts | Udbydere midlertidigt blokeret af lockout-politikken |
| Signatur Cache | Deduplikeringscache-statistikker (aktive nøgler, hitrate) |
| Latency Telemetri | p50/p95/p99 latenssammenlægning pr. udbyder |
Prof tip: Sundhedssiden opdateres automatisk hvert 10. sekund. Brug afbryderkortet til at identificere, hvilke udbydere der oplever problemer.