## 💰 ~1,62 mia. tokens om måneden på tværs af tredjeparters gratisniveauer
> **Medbring dine egne udbyderkonti.** Dette er et estimeret samlet tal på tværs af separat berettigede tredjeparters gratisniveauer – ikke en tildeling af tokens fra OmniRoute. Tilmeld dig, indhent legitimationsoplysninger, hvor det kræves, og tilslut de udbydere, du kan bruge; hver udbyder styrer selv sine grænser, sin tilgængelighed og sine vilkår.
>
> At stable gratisniveauer i hånden er besværligt – dusinvis af SDK'er, dusinvis af rate limits og ingen anelse om, hvor meget du faktisk har. OmniRoute katalogiserer **467 gratisniveauposter på tværs af 34 tilbagevendende pool-nøgler** og beregner token-overskriften ud fra de **17 pools med et offentliggjort positivt månedsbudget plus fem Groq-lofter pr. model**, deduplikeret efter delte pools. Kvoter, der først åbner efter et regionalt identitetstjek (i dag: ModelScope), vises separat, +~6 mio. bag regional identitetsbekræftelse, og lægges aldrig ind i overskriften. Resultatet forbliver synligt på dashboardet (`/dashboard/free-tiers`).
> Animeret oversigt over live-siden `/dashboard/free-tiers`. Fuld metodik (pool-deduplikering, kreditniveauer, udbydervilkår): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Disse tal genauditeres hver anden uge mod det live katalog og **bevæger sig begge veje** — en udbyder afslutter et gratisniveau, og tallet falder; en ny lander, og det stiger. Vi offentliggør, hvad kataloget faktisk beregner, aldrig et oprundet best case-scenarie.
⭐ Giv repoet en stjerne, hvis OMNIROUTE hjalp dig med at spare penge og gøre dit arbejde lettere.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Deltag i fællesskabet
**👋 Følg vedligeholderen — få nye udbydere, udgivelser og tips først:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](https://omniroute.online)
**Spørgsmål, udbydertips, roadmap og support → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Gatewayen vokser videre
## 🆓 Installér, tilslut en udbyder, og rout derefter gennem ét endpoint
```bash
# Når du har tilsluttet en udbyder, kopierer du din OmniRoute-nøgle fra Dashboard → Endpoints:
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
`auto` kræver en kvalificeret rute. En frisk installation kan have ingen kvalificerede nøglefri mål, og en nøglefri udbyder kan afvise tredjepartsklienter. Udbydere markeret `tos: avoid`, herunder Kiro, er som standard udelukket fra automatisk routing; tilslutning af en konto tilsidesætter ikke denne indstilling. Se [guiden til gratisniveauer](docs/getting-started/FREE-TIERS-GUIDE.md), før du vælger en udbyder.📦 Kopiér-og-indsæt-quickstartscripts til **Python, Node.js, PHP og cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Løftet
# 🤔 Hvorfor OmniRoute?
## 🤝 Støttet af vores open source-venner
> **Vil du være med som open source-ven?** Det er virksomhederne, der støtter open source og hjælper med at holde OmniRoute i gang — og vi fortæller offentligt, hvor hvert eneste token, de giver os, bliver brugt. Kontakt os: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Tak til Kimi (Moonshot AI), vores stiftende open source-ven, for at støtte dette projekt! Kimi er AI-laboratoriet bag K2- og K3-modelfamilierne med åbne vægte — Kimi K3 leverer et kontekstvindue på 1 mio. tokens, indbygget vision og kodning på højeste niveau til en brøkdel af priserne på lukkede modeller og fungerer direkte med Claude Code, Codex og alle de kodningsværktøjer, som OmniRoute understøtter.
Det muliggør Kimis støtte: Kimis API-kreditter driver OmniRoutes AI-validerede udgivelsespipeline — fasen mergevalidering drevet af Kimi K3, som gennemgår hver pull request, før den udgives — samt den daglige funktionsudvikling. Førsteklasses understøttelse af Kimi leveres via begge muligheder: den direkte Kimi API (kimi-k3) og Kimi Code-abonnementet til kodning (OAuth og API-nøgle). OmniRoute er også det første brasilianske open source-projekt i Kimis støtteprogram. Få en Kimi API-nøgle med 15 % ekstra kreditter →
Cheaper Inference cheaperinference.com
Tak til Cheaper Inference, en af OmniRoutes open source-venner, for at støtte dette projekt! Cheaper Inference er en gateway rangeret efter pris, som videresælger 42 banebrydende modeller — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok og MiniMax — via ét OpenAI-kompatibelt endpoint og videresender hver anmodning til den billigste kvalificerede udbyder uden nogensinde at opkræve mere end modelproducentens listepris.
Førsteklasses understøttelse i OmniRoute: Chat Completions, det indbyggede /v1/responses-endpoint, vision, værktøjskald og 3 billedmodeller (grok-imagine, nano-banana-pro, nano-banana-2, tilgængelige som cheaperinference/<model>). Få en API-nøgle →
Links mærket med aff=omniroute er partnerlinks. De finansierer projektet uden ekstra omkostninger for dig. 🎟️ Partnerkampagner — gratis tilmeldingskuponer fra udbydere, der ikke sponsorerer os (klik for at udvide)Dette afsnit er kun til henvisnings-/kuponkoder. Sponsorerede partnerskaber findes under 🤝 Støttet af vores open source-venner ovenfor. OmniRoute har intet sponsorat eller partnerskab med de udbydere, der er anført her — det er offentlige kuponer, som alle kan bruge.
AgentRouter agentrouter.org
AgentRouter — partnertilmelding · $100 i gratis kreditter ved tilmelding (gratis server, forvent højere latenstid — bedst til test, ikke produktion). Førsteklasses understøttelse i OmniRoute siden v3.8.50: Chat Completions, det Anthropic-kompatible wire-format og den OpenAI-kompatible sti. Tilgængelige modeller omfatter claude-opus-4-8, claude-opus-5, gpt-5.6-sol og flere. Få dine $100 →
⚠️ Partnerlink — OmniRoute har intet sponsorat eller partnerskab med denne udbyder.
Kender du en anden udbyder med en generøs gratis tilmeldingskupon, som gavner OmniRoute-brugere? Opret en issue, så tilføjer vi den her.
## 🎯 Combos — Flagskibet
> En **combo** er en kæde af modeller, som OmniRoute router på tværs af **automatisk**. Hvis kvoten slipper op, en udbyder fejler, eller omkostningerne stiger kraftigt, kan comboen gå videre til den næste kvalificerede og velfungerende model. 🛡️
### ⚡ Nul konfiguration — brug blot `auto`
Ingen combo skal oprettes. Indstil din model til `auto` (eller en variant), så bygger OmniRoute en virtuel combo ud fra dine tilsluttede udbydere, som vurderes løbende:
Model-id
Hvad den optimerer til
auto
🎯 Balanceret standardvalg (LKGP — holder sig til din senest velfungerende udbyder)
auto/coding
🧑💻 Kvalitetsfokuserede vægte til kodegenerering
auto/fast
⚡ Laveste latenstid først
auto/cheap
💰 Billigste pr. token først
auto/subscription
🎟️ Kun den abonnementskvote, du allerede betaler for — lukker ved fejl og bruger aldrig et fakturerbart alternativ (vejledning)
auto/thrifty
🪜 Abonnementskvoten først, derefter ét trin ad gangen til de billigste betalingsmuligheder — tilbage på abonnementet, når det nulstilles (vejledning)
auto/offline
🔋 Mest spillerum i kvote/hastighedsbegrænsning først
auto/smart
🔭 Kvalitet først + 10 % udforskning for at finde bedre modeller
auto/lkgp
📌 Eksplicit fastholdelse af senest kendte velfungerende udbyder
auto/chaos
🧪 Parallel udsendelse til et panel af modeller (én pr. udbyder, som standard 5), returnerer ét svar; ét upstream-kald pr. panelmodel, ikke fejlinjektion
##
### 🔀 Eller byg din egen — 20 routingstrategier
Alle **20** strategier — kombinér frit for hvert trin i en combo:
#
Strategi
Hvad den gør
1
priority
Sorteret liste med første mål først — opbrug hvert mål før det næste 🥇
2
fill-first
Udnyt hvert måls kvote fuldt ud, før der fortsættes
3
weighted
Vægtet tilfældigt valg baseret på vægten for hvert mål
4
round-robin
Gennemløb målene på skift i rækkefølge
5
p2c
Tilfældig belastningsfordeling med valg mellem to muligheder
6
least-used
Vælg målet med den laveste aktuelle belastning
7
random
Ensartet tilfældigt valg (uden dubletter)
8
strict-random
Tilfældigt valg uden at fjerne gentagelser 🎲
9
cost-optimized
Minimér $ pr. anmodning ud fra aktuelle katalogpriser 💸
10
headroom
Vælg målet med mest resterende kvote
11
quota-weighted
Spring opbrugte konti over, og vælg derefter proportionalt med resterende kvote ÷ igangværende belastning — eksisterende samtaler forbliver fastgjort ⚖️
12
reset-window
Foretræk det mål, hvis kvoteperiode nulstilles hurtigst
13
reset-aware
Rangér efter tidspunktet for nulstilling af kvoten — korte perioder først 📊
14
context-relay
Overdrag kontekst mellem mål i lange samtaler 🧠
15
context-optimized
Vælg det bedste match til den aktuelle kontekststørrelse
16
cache-optimized
Fastgør hvert genanvendeligt promptpræfiks til den samme konto — maksimér antal træffere i promptcachen 🎯
17
lkgp
Senest kendte velfungerende sti — fastgør til den senest vellykkede udbyder og falder derefter tilbage på regler
18
auto
Løbende vurdering af 16 faktorer på tværs af alle forbindelser 🤖
19
fusion
Send ud til et panel af modeller, hvorefter en bedømmer sammenfatter ét svar 🧬
20
pipeline
Sammenkæd trin — outputtet fra hvert mål sendes videre til det næste 🔗
Auto-Combo-motoren vurderer hver kandidat ud fra **16 faktorer** (driftstilstand, kvote, omkostninger, latenstid, opgaveegnethed, kvalitet, sessionstilgængelighed …) — se [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Robusthed er indbygget (3 uafhængige lag)
📖 [Auto-Combo-motor](docs/routing/AUTO-COMBO.md) · [Robusthedsvejledning](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Det, der adskiller OmniRoute
📊 Fuld metodebeskrivelse og detaljer om hver funktion sammenlignet med 9router, OpenRouter, CLIProxyAPI og LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Støt OmniRoute
OmniRoute er MIT-licenseret og vedligeholdes åbent. Hvis det sparer dig tid eller penge, kan du hjælpe med at holde det uafhængigt på følgende måder — vælg den, der passer dig. Sponsorater påvirker aldrig routingprioriteten; de giver synlighed, ikke en bedre placering.
**🇧🇷 PIX** — øjeblikkeligt, ingen gebyrer (Brasilien)
Nøgle (tilfældig): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix copia-e-cola:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Kryptovaluta — BTC · ETH · USDT-TRC20 · USDC-Solana (klik for at udvide)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Send kun hver mønt via det viste netværk — overførsel via det forkerte netværk kan medføre, at midlerne går tabt.
🐛 Har du fundet en fejl eller har du feedback? Opret en [diskussion](https://github.com/diegosouzapw/OmniRoute/discussions).
Udviklerbemærkninger: Projektet kan generere en lokal .env-fil under npm-installation/postinstall af hensyn til udviklernes bekvemmelighed. Denne fil ignoreres bevidst via .gitignore (se .gitignore) og må aldrig committes — hvis den committes ved en fejl, skal alle eksponerede hemmeligheder udskiftes, og filen fjernes fra historikken. Se docs/DEVELOPER-ENVIRONMENT.md for vejledning i håndtering af lokale miljøfiler og hemmeligheder.
## 📡 OmniRoute Radar
Det primære hovedtal for gratisniveauet er fortsat **~1.62B tokens/måned** fra det dokumenterede,
puljededuplikerede katalog ovenfor. Midlertidige tilmeldingskreditter fra udbydere kan separat øge
den første måned til **~2.22B**. Radar er et valgfrit, signeret katalog-overlay til brugere, der ønsker
mere opdateret tilgængelighed af gratis modeller mellem OmniRoute-udgivelser; fællesskabskataloget
og alle eksisterende gratisfunktioner forbliver gratis.
Støtter kan få adgang til livekataloget og yderligere muligheder hos udbydere. Dets separate,
variable loft er **højst cirka 3B tokens/måned**, afhængigt af udbydernes tilgængelighed.
Dette loft er ikke en garanti: Udbydere kan når som helst ændre kvoter, adgangskrav, modeller eller
regioner.
Radar er valgfrit og bruger kun GET. OmniRoute-klienten uploader ikke prompts, trafik,
udbyderkonfiguration, brugstelemetri eller lokal status for afviste meddelelser. Læs mere om
adgangskrav og det aktuelle katalog på **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Nyheder
> Seneste højdepunkter fra **v3.8.20 → v3.8.53**. Fuld historik i [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted`-routing** — den 20. kombostrategi springer opbrugte konti over og trækker derefter blandt resten i forhold til restkvote ÷ igangværende belastning, mens eksisterende samtaler forbliver fastlåste. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Headless-tilstand** — `omniroute serve --headless` (eller `OMNIROUTE_HEADLESS=1`) kører kun `/v1/*`-proxy-motoren, mens dashboardet og dashboard-specifikke undersystemer er slået fra. → [Headless-tilstand](docs/guides/HEADLESS.md)
- **🔎 Modelopdagelse** — `/v1/models` filtrerer efter kapabilitet, kontekst, type og tekst, og `POST /v1/models/query` returnerer en kort, deterministisk shortlist med samme pr.-nøgle-synlighed. → [API-reference](docs/reference/API_REFERENCE.md)
- **🔑 Routingstyring pr. nøgle** — fastlås en API-nøgle til én model eller kombo med `forcedModel`, og tilføj eller fjern en nøgles modeller og komboer atomisk (`/api/keys/{id}/access`). → [API-reference](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Finere PII-kontroller** — pr.-type-udvælgelse, op til 20 validerede brugerdefinerede maskeringsmønstre og pr.-type-registreringstællere; selve maskeringen forbliver tilvalg. → [Guardrails](docs/security/GUARDRAILS.md)
- **🌍 67 sprog** — dashboard, dokumentationsspejle og CLI, hvor `npm run i18n:add-locale` tilføjer et sprog overalt med én kommando. → [i18n-guide](docs/guides/I18N.md)
- **🎛️ OmniConductor** — indgående A2A-delegering til din agentflåde, Conductor-færdigheder på Agent Card og et dashboardpanel med Faro push-to-talk-stemmechat. → [A2A-server](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptiv adgang og overbelastningsbeskyttelse** — tunge chat-forespørgsler sættes i kø i stedet for at svare 503, med atomiske rullende RPM-leases pr. forbindelse. → [Robusthedsguide](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanonisk `/v1/models`-sortering** — én sammenhængende udbydergrupperet blok pr. udbyder (komboer fastlåst først), stabil på tværs af alle katalogkilder. → [API-reference](docs/reference/API_REFERENCE.md)
- **🗜️ Komprimeringshærdning** — inflationsbeskyttelse slået til som standard, Caveman-pakker til DE / FR / JA + kinesisk (wényán), RTK-filtre til Gradle & .NET. → [Komprimering](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Ærlig fastprisomkostning** — abonnements-/coding-plan-udbydere viser **$0** i omkostningsanalyser; budget, kvote og routing fortsætter med at estimere. → [API-reference](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-routing** — fordel en delt kontos kvote retfærdigt på tværs af samlede nøgler, arbejdsbevarende, så inaktive andele udlånes. → [Robusthedsguide](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Én-kommando CLI/agent-opsætning** — 15 registrerede `setup-*`-kommandoer; `omniroute run` starter 7 CLI'er (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` understøtter 11 mål med en interaktiv udbyder+model-vælger og pr.-kontekst-favoritter. → [CLI-integrationer](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Remote-tilstand** — styr en ekstern OmniRoute med scope-begrænsede tokens (`connect` / `contexts` / `tokens`) + en `antigravity` OAuth-hjælper til VPS-installationer. → [Remote-tilstand](docs/guides/REMOTE-MODE.md)
- **🧭 Smartere auto-routing** — `auto/:`-komboer, **Fusion** (modelpanel + dommer), opgavebevidst routing, pr.-forespørgsel model- / tilstands- / USD-budget-tilsidesættelser. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Udskiftelig komprimering** — 12 komponerbare motorer + Compression Studios: LLMLingua-2, totrins-Ultra, omniglyph, pr.-trin-fidelitetskontrol, GCF v3.2, editor med træk-omarrangering. → [Komprimering](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparent MITM-dekryptering (TPROXY)** — fang CLI'er, der ignorerer proxy-miljøvariabler, med et pr.-SNI-CA + trust store-installationsprogram. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Omkostningstelemetri overalt** — `X-OmniRoute-*`-omkostnings-/forbrugsheadere på alle endpoints, cache-HIT-besparelsesheader, pr.-nøgle USD-forbrugskvoter. → [API-reference](docs/reference/API_REFERENCE.md)
- **🧠 Hukommelse, du selv styrer** — slået fra som standard, tilvalg af int8-vektorkvantisering + typet henfald, pr.-forespørgsel `x-omniroute-no-memory`. → [Hukommelse](docs/frameworks/MEMORY.md)
- **🛡️ Sikkerhed** — prompt-injection-beskyttelse på alle LLM-ruter (red-team-suite), tilvalgt credential-maskerings-guardrail (redigerer lækkede API-nøgler/hemmeligheder i begge retninger), gratis DuckDuckGo-websøgning som sidste udvej og en valgfri OIDC-loginport til dashboardet (adgangskode-login forbliver altid tilgængeligt). → [Guardrails](docs/security/GUARDRAILS.md)
- **🖼️ Nye endpoints** — `/v1/ocr` (Mistral OCR) og `/v1/audio/translations` (Whisper-stil) fuldender medieoverfladen. → [API-reference](docs/reference/API_REFERENCE.md)
- **🎨 Billed- / video- / lydgenerering** — én API til medier: xAI Grok Imagine & Novita AI-video, ComfyUI, Magnific, Adobe Firefly, Segmind og taleudbydere som ElevenLabs. → [API-reference](docs/reference/API_REFERENCE.md)
- **🌍 Udrulning og drift** — reverse-proxy `basePath`, automatisk registrering af browsersprog, pr.-nøgle-enhedssporing, root-løs MITM-tillid, zh-TW-lokalisering. → [Miljø](docs/reference/ENVIRONMENT.md)
- **🤝 Flere udbydere og agenter** — cloud-agenter (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) med browser + OAuth-login, Ollama first-class-kort, Claude Opus 5 & Sonnet 5, officielt Kimi-partnerskab (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… og et opdateret **375-udbyderkatalog**. → [Udbydere](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Routing-gennemsigtighed** — hvert svar bærer en `X-OmniRoute-Decision`-header, der navngiver strategien/udbyderen/latensen, som betjente det; en ny `cache-optimized`-kombostrategi + Auto-Combo `cacheAffinity`-faktor leder gentagne forespørgsler tilbage til den forbindelse, der holder det cachede præfiks, og et skrivebeskyttet `/v1/auto-combo/{channel}/candidates`-endpoint viser en `auto/*`-kanals live-kandidatpulje. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Lokal ydelse og infrastruktur** — lokal Redis med ét klik, relay-udrullere til Cloudflare Workers / Deno Deploy, Bifrost og Mux som overvågede indlejrede tjenester. → [Indlejrede tjenester](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Også med i æsken** — plugin-framework + markedsplads, skills-frameworks til Omni/Agent/GitHub, Obsidian-vault-integration (22 MCP-værktøjer), OpenAI-kompatible Batch- og Files-API'er, semantisk svar-cache, gamification med ranglister, ACP-agent-discovery (15 indbyggede agenter), planlagt logeksport til BigQuery, `auto/chaos` parallel fan-out på tværs af flere modeller, en Telegram-bot-bro, en versionsstyring direkte i appen og LMArena-ELO-rangeringer af gratisudbydere. → [Dokumentation](docs/README.md)
## 🤖 Kompatible CLI'er og kodningsagenter
> Én konfiguration — `http://localhost:20128/v1` — og **alle** AI-IDE'er eller CLI'er kører på gratis og billige modeller.
📖 Opsætning pr. værktøj for alle 37 værktøjer (27 CLI-kodeværktøjer + 10 CLI-agenter) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode-plugin → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Start enhver understøttet CLI gennem OmniRoute med én kommando** — ingen konfigurationsfiler skrives,
legitimationsoplysninger indlæses pr. proces, og Qwen/Gemini får en midlertidig, isoleret hjemmemappe:
```bash
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# Eller vælg udbyder+model interaktivt, og skriv værktøjets egen konfiguration:
omniroute configure codex # også: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Hver kommando respekterer den aktive fjernkontekst (`omniroute connect `), `--dry-run`
viser de præcise miljøvariabler/argumenter uden at udføre kommandoen, og `--api-key-env NAME` holder hemmeligheder ude
af din shellhistorik. → [CLI-integrationer](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 375 AI-udbydere — 153 markeret som gratis i kataloget
> **375 registrerede udbydere** på tværs af de kanoniske samlinger for chat, medier, søgning, lokale modeller, cloud-agenter og system, herunder **153 med `hasFree: true`-registreringsmetadata**. Chatmodelregistret dækker **239 udbydere / 3.059 unikke udbyder-model-par / 1.475 rå model-ID'er**; det separate gratisbudgetkatalog har **467 rækker pr. model**, **34 tilbagevendende puljer** og **51 tilbagevendende/nøglefri gratis-for-altid-udbydere**. Dette er bevidst forskellige nævnere; definitioner og puljededuplikerede beregninger findes i [Udbyderreference](docs/reference/PROVIDER_REFERENCE.md) og [Gratisniveauer](docs/reference/FREE_TIERS.md).
### 🏢 Alle de store laboratorier — via ét endepunkt
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…og 350+ flere — hvert ikon hentes direkte fra dashboardets udbyderkatalog. 📖 [Udbyderreference](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Gratis for altid — 0 $, intet kort
OpenCode Zen DeepSeek V4, Nemotron 3 Intet tokenloft
Kilo Code Auto-router, Tencent Hy3 Gratis for altid
Requesty GPT-OSS 120B, Nemotron Gratis for altid
SiliconFlow DeepSeek V3.2 / R1 Gratisniveau
Z.AI GLM GLM-4.7 / 4.5-Flash Gratis for altid
Baidu ERNIE ERNIE 4.0 Gratis for altid
Qoder AI Qwen3-Max, Kimi-K2 Ubegrænset GRATIS
Pollinations GPT, Llama, Claude Ingen nøgle nødvendig
Cloudflare AI 50+ modeller 10K neuroner/dag
NVIDIA NIM GLM, MiniMax ~40 RPM gratis
Cerebras GLM 4.7, GPT-OSS Engangskredit på $5; kort påkrævet
### 🧩 Nyt: OmniRoute i VS Codes integrerede Copilot Chat
> Ingen ny sidebjælke, ingen ny chatgrænseflade — alle modeller, som OmniRoute leverer, vises direkte i
> **den Copilot Chat-modelvælger, du allerede bruger**. Siden VS Code 1.122 fungerer udbydermodeller
> uden GitHub-login eller Copilot-abonnement — agenttilstand, værktøjskald og billedforståelse, helt
> gratis.
Installer udvidelsen **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, forbind den
til din OmniRoute-server (standarden er `localhost:20128`), og åbn derefter Copilot Chat → modelvælger
→ **Administrer modeller…** → **OmniRoute**.
Inde fra editoren: Åbn visningen **Udvidelser**, søg efter **"OmniRoute"**, og klik på **Installer**
— det fungerer på samme måde i begge butikker. Kildekode, problemrapporter og udgivelsesvejledningen findes på
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Vejledning til VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — opsætning, hvad vælgeren viser, kontrolpanel i en fane, fejlfinding
### 🎩 Nyt: OmniRouteTray — din gateway direkte i menulinjen
> `omniroute serve` fungerer bedst, når den altid er aktiv. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> gør den til en menulinje-app til macOS, som du kan konfigurere og derefter glemme: Den starter serveren, holder den kørende
> efter genstarter, opdaterer den på stedet og giver adgang til dit aktuelle tokenbudget med ét klik — **intet
> terminalvindue skal stå åbent, og ingen `npm install -g omniroute` skal passes.**
Den er bygget med [Tauri v2](https://v2.tauri.app/) (en Rust-kerne på størrelse med en afrundingsfejl), leveres
med sit eget signerede Node 24-kørselsmiljø og administrerer en app-ejet OmniRoute-installation, så den aldrig er i konflikt med din
globale `node`/`bun`. Den **deler din eksisterende konfiguration og database i `~/.omniroute/`** — så det er den
samme OmniRoute, du allerede kører, bare med hat på. 🎩
Hvad den gør
Hvordan
🟢 Overvåger serveren
Starter omniroute serve og overtager en allerede kørende instans i stedet for at duplikere den
📊 Direkte overblik over forbruget
Udbydernes kvotebjælker, Claude-sessionens/ugens grænser med nedtællinger til nulstilling samt en omkostningsfordeling for 30 dage
🔄 Opdaterer automatisk på stedet
Trinvis installation, atomisk udskiftning og tilbagerulning ved fejl — altid på den nyeste version
🚀 Start ved login
Valgfri start ved login; kun i menulinjen, intet ikon i Dock
🩺 Diagnosticering & logfiler
Diagnosticering med ét klik og adgang til serverens logfiler
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Foretrækker du en download? Hent den nyeste .dmg fra
Udgivelser. Kildekode, fejlrapporter og dokumentation
til kompilering findes på zoispag/omniroute-tray.
💛 Et fællesskabsprojekt af @zoispag — ikke en officiel OmniRoute-udgivelse.
> Ud over serveren er OmniRoute et **fuldt kommandolinjecockpit** med **80+ kommandoer** samt åbne agentprotokoller, så en AI-agent kan styre det **på egen hånd**.
### ⌨️ En rigtig CLI (ikke kun `start`)
```bash
omniroute # start gateway + dashboard (port 20128)
omniroute chat # interaktiv TUI-chatklient (skråstregskommandoer: /model /combo /skill /memory)
omniroute setup # guidet guide til første kørsel
omniroute doctor # diagnosticer udbydere, porte og native afhængigheder
```
### 🛰️ Fjerntilstand — kør CLI'en her og OmniRoute på en VPS
Kører OmniRoute på en server? Styr det fra din bærbare computer med den **samme CLI**. Log ind én gang
med et adgangstoken med afgrænset omfang; derefter målrettes hver kommando mod fjernserveren.
```bash
omniroute connect 192.168.0.15 # adgangskode → token med afgrænset omfang, gemt som en kontekst
omniroute models # ← kører mod FJERNSERVEREN
omniroute configure codex # ← vælger en fjernmodel og skriver en lokal Codex-profil
omniroute tokens create --name ci --scope read # opret tokens med snævrere omfang til andre maskiner
omniroute contexts use default # ← skift tilbage til den lokale server
```
Tokens har omfanget `read` / `write` / `admin`; ruter, der starter processer, forbliver begrænset til loopback.
📖 [Fjerntilstand](docs/guides/REMOTE-MODE.md)
### 🤝 Tilslut en agent — så styrer den selv OmniRoute
Gør OmniRoute tilgængelig via **MCP**, **A2A**, en **REST API**, **webhooks** eller en **fjern-CLI** — enhver kompetent agent (eller din egen kode) får nøglerne til hele gatewayen: routing, udbydere, kombinationer, cache, komprimering og hukommelse — autonomt. HTTP-slutpunkterne nedenfor betjenes under `http://localhost:20128`.
Grænseflade
Slutpunkt / kommando
Brug det til
🧰 MCP (stdio)
omniroute --mcp
Integrer med Claude Desktop, Cursor eller enhver MCP-klient
OpenAI-kompatibel — chat, embeddings, billeder, lyd og OCR
🔔 Webhooks
/api/webhooks
Send hændelser for anmodninger / kvoter til Slack, Discord, Telegram eller en vilkårlig URL
🛰️ Fjern-CLI
omniroute connect
Styr en fjerninstans med adgangstokens med afgrænset omfang
```bash
# Giv Claude Code adgang til hele OmniRoute-værktøjssættet via MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [MCP-server](docs/frameworks/MCP-SERVER.md) · [A2A-server](docs/frameworks/A2A-SERVER.md) · [Agentprotokoller](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Spar 15–95 % tokens — automatisk
### 📖 Sådan fungerer det — pipeline, arkitektur og besparelsesmatematik
Standard-stakkombinationen kører `RTK → Caveman`. Når begge virker på samme værktøjs-/kontekst-payload, akkumuleres besparelserne:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Kodeblokke, URL'er, JSON og strukturerede data er **altid beskyttet** af bevaringsmotoren.
> **Hvorfor bruge mange tokens, når få tokens gør tricket?** Hver forespørgsel passerer gennem OmniRoutes komprimeringspipeline **transparent** — ingen klientændringer. Det er nu en **stak af 12 kombinerbare motorer**, der kører i rækkefølge og kan mikses og matches pr. routing-kombination — bygget videre på idéer fra [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) og [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Stakken med 12 motorer
Motorerne kører i pipelinerekkefølge; hver enkelt kan slås til/fra uafhængigt og konfigureres pr. kombination:
#
Motor
Hvad den gør
1
Session-Dedup
Fjerner indhold, der gentages på tværs af dialogrunder (indholdsadresseret, på tværs af runder)
2
CCR
Arkiverer store blokke bag hentemarkører, som hentes efter behov
3
Lite
Trimning af whitespace + billed-URL'er (baseline med lav latens)
4
RTK
Intelligent filtrering, dedup og afkortning af værktøjsresultater (kommandobevidst)
5
Responses Tool Output
Tabsfri-først JSON + afgrænset diagnostisk komprimering af shell-/patch-/søge-/build-output (Responses API)
6
Headroom
Tabsfri tabelkompaktering af JSON-arrays (~30 %) via en vendored GCF-codec
7
Relevance
Ekstraktiv sætningsscoring i forhold til den seneste brugerforespørgsel
8
Caveman
Regelbaseret prosakomprimering (~65–75 % på output)
9
Aggressive
Opsummering + progressiv ældning af gamle dialogrunder
10
LLMLingua-2
ML-semantisk beskæring via MobileBERT ONNX — kodesikker, asynkron
11
Ultra
Heuristisk tokenbeskæring med et valgfrit lille-model-niveau (SLM)
12
OmniGlyph
Eksperimentel kontekst-som-billede-kodning til målt Claude Fable 5 på den direkte Anthropic-wire; GPT 5.6-transformers forbliver fail-closed, indtil udbyderkvitteringer foreligger. Fire komprimeringsprofiler (aggressiv standard, afbalanceret, kodesikker, passthrough) (mest aggressiv; tilvalg)
Kodeblokke, URL'er og strukturerede data bevares **altid** byte-perfekt. **Ét-kliks-forudindstillinger** kombinerer motorerne:
Tilstand
Besparelse
Bedst til
🪶 Lite
~15%
Altid-til sikker standard
🪨 Standard (Caveman)
~30%
Daglig kodning
⚡ Aggressive
~50%
Lange værktøjstunge sessioner
🔥 Ultra
~75%
Maksimale besparelser
🧰 RTK
60–90%
Shell-/test-/build-/git-output
🔗 Stacked (RTK → Caveman)
78–95%
Blandede prompts + værktøjslogs
**Virkeligt eksempel — Standard-tilstand:**
> **Før (69 tokens):** _"Grunden til, at din React-komponent genrenderer, er sandsynligvis, at du opretter en ny objektreference ved hver rendercyklus. Når du sender et inline-objekt som en prop, opfatter Reacts overfladiske sammenligning det som et nyt objekt hver gang, hvilket udløser en genrendering. Jeg vil anbefale at bruge useMemo til at memoisere objektet."_
>
> **Efter (19 tokens):** _"Ny objekt-ref ved hver render. Inline-objekt-prop = ny ref = re-render. Wrap i useMemo."_
>
> **Samme svar. 72 % færre tokens. Nul nøjagtighedstab.** ✅
**PT-BR-eksempel — [Troglodita](https://github.com/leninejunior/troglodita)-tilstand:**
> **Før (42 tokens):** _"Problemet er, at komponenten re-renderer, fordi en ny objektreference oprettes i hver renderingscyklus. Jeg vil anbefale at bruge useMemo."_
>
> **Efter (12 tokens):** _"Re-render: ny ref hver cyklus (inline objekt genskabt). Brug `useMemo`."_
>
> **Samme svar. ~70% færre tokens. Teknisk præcision intakt.** ✅
### 🎚️ Ud over motorerne — outputstile, den adaptive drejeknap & kontrol pr. anmodning
De 12 motorer ovenfor reducerer det, der går **ind**. Tre lag mere former **hvordan**, **hvornår** og hvad der kommer **ud**:
- **🪄 Outputstile** _(styring på output-aksen)_ — injicer deterministiske, cache-sikre svarformende instruktioner; kan kombineres, hver ved `lite` / `full` / `ultra` intensitet. Tilføjelse af en stil er en én-linjes registreringspost:
- **Kortfattet prosa** — fjern fyld / artikler / forbehold; behold teknisk substans præcist.
- **Mindre kode** — "doven seniorudvikler" YAGNI: mindste fungerende ændring, ingen uanmodet stilladsering.
- **Ponytail (doven seniorudvikler)** — klatre op ad YAGNI-stigen, ret rodårsagen, mindste fungerende diff.
- **Jeg har ADHD (handling først)** — næste handling først, trin nummereret, ét konkret næste skridt, ingen indledning.
- **Kortfattet CJK (文言)** — klassisk-kinesisk ultrakortfattet stil (locale-begrænset til `zh`).
- **🎯 Adaptivt kontekstbudget** _(drejeknappen)_ — i stedet for én tænd/sluk-token-tærskel, eskaler de billigste, mest tabsfrie motorer kun så langt som nødvendigt for at **passe til modellens kontekstvindue**. Politik: `reserve-output` (standard, modelbevidst) · `percentage` · `absolute`. Tilstand: `floor` (garanter pasform) · `replace-autotrigger` (dit eksplicitte valg vinder) · `off` (legacy-tærskel).
- **🎛️ Hvor komprimering besluttes** _(prioritet, høj → lav)_ — pr.-anmodning `x-omniroute-compression`-header › routing-kombination-tilsidesættelse › aktiv navngivet profil › adaptiv / auto-trigger › panelstandard › fra. Den anvendte plan ekkoes tilbage i `X-OmniRoute-Compression: ; source=`-svarheaderen.
Auto-trigger efter token-tærskel, slå den adaptive drejeknap til, fastgør en navngivet profil, angiv en enkeltstående pr. anmodning, eller tildel en pipeline pr. routing-kombination — alt efter hvad der passer til arbejdsbyrden. En opt-in offline **eval-harness** (`npm run eval:compression`) scorer troskab vs. besparelser på et fastgjort korpus, før du forfremmer en ændring.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Hurtig start
**1) Installer & kør**
```bash
npm install -g omniroute
omniroute
```
> 💡 Ser du `npm warn ERESOLVE` eller peer-dep-advarsler? [De er harmløse](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Bruger du npm 11 eller nyere?** npm kan blokere pakke-lifecycle-scripts, medmindre de er tilladt. OmniRoutes `postinstall` (`node scripts/build/postinstall.mjs`) er påkrævet for at forberede dets native runtime-filer. Tillad de pakker, der er nævnt i npms advarsel, når du installerer globalt. For det pakkesæt, der rapporteres af OmniRoute 3.8.53:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> For at genbruge denne allowlist til fremtidige globale installationer, konfigurer den én gang, og installer derefter normalt:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Afhængighedslisten kan ændre sig mellem udgivelser; hvis npm rapporterer en anden liste, brug pakkenavnene fra den advarsel. Tilladelse af en pakke tillader, at dens install-scripts kører.
> **Bruger du Gemini Web eller en anden web-cookie-udbyder?** npm-pakken inkluderer
> Playwright, men ikke dens Chromium-binær. Se
> [Playwright Chromium-opsætning](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> noten før du laver den første web-udbyder-anmodning.
Dashboard på `http://localhost:20128` · API på `http://localhost:20128/v1`.
**2) Forbind en kvalificeret udbyder med din egen konto**
Dashboard → **Providers** → vælg en udbyder, hvis aktuelle vilkår og kvote passer til dit brug → tilføj dens API-nøgle eller gennemfør dens kontoforløb. Gratisniveauer kan kræve tilmelding, godkendelse eller en betalingsmetode. Gennemgå [Free Tiers Guide](docs/getting-started/FREE-TIERS-GUIDE.md); nøglefri tilgængelighed er ikke garanteret, og udbydere markeret med `tos: avoid` er udelukket fra `auto` som standard.
**3) Peg dit kodeværktøj mod det**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose provider/model)
```
**4) Bekræft, at det virker**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Du bør se dine tilsluttede modeller listet. 🎉 Det er det — begynd at kode, og OmniRoute auto-router og falder tilbage for dig.
Hvis din klient ikke kan sende custom headers, eksponerer OmniRoute også tokeniserede kompatibilitetsaliasser:
```txt
OpenAI-katalog: http://localhost:20128/vscode/YOUR_KEY/
OpenAI-modeller: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI-chat: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI-svar: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama-chat: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama-tags: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Brug disse kun til klienter, der ikke kan vedhæfte `Authorization: Bearer ...`. Header-auth er fortsat den foretrukne tilstand.
## 📦 Flere installationsmetoder — Docker, kildekode, pnpm, Arch
**🐳 Docker**
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
`:latest` følger den højeste **udgivne** stabile SemVer. Det følger ikke git `main`. Fastlås `:X.Y.Z` til GitOps. Se [Docker-udgivelseskanaler](docs/guides/DOCKER_GUIDE.md#release-channels). Image-filen fastlåser **`OMNIROUTE_MEMORY_MB=1024`**. Det er tilstrækkeligt til dashboardet og en let chat. **Kodningsagenter** (`POST /v1/responses` fra Claude Code, Codex, Grok, …) kræver en meget større V8-heap, ellers får processen en `FATAL ERROR` ved ca. 12 GiB med to overlappende lange kontekster. Dimensionér containeren større end heapen (native buffere ligger uden for V8):
| Arbejdsbelastning | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
| ---------------------------------- | ------------------------------- | ---------------------- |
| Dashboard/let chat | `1024` (image-standardværdi) | ≥2 g |
| Én kodningsagent | `8192` | ≥10 g |
| To samtidige lange `/v1/responses` | `10240`–`12288` | ≥12–16 g |
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-e OMNIROUTE_MEMORY_MB=8192 --memory=10g \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
Komplet tabel: [Docker-vejledning — RAM under kørsel](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Docker-kanal til forhåndsudgivelser:** `diegosouzapw/omniroute:next` og
> `diegosouzapw/omniroute:next-web` følger den aktuelle standardgren `release/v*`.
> Disse foranderlige tags er kun beregnet til test af ikke-udgivne rettelser og
> **understøttes ikke til produktion**. Se
> [Docker-udgivelseskanaler](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Standardkommandoerne `bun install` og global installation (`bun install -g omniroute`) understøttes via registrering af Bun-kørselsmiljøet:
- **Indbygget `bun:sqlite`**: OmniRoute bruger Buns indbyggede `bun:sqlite`-driver, når det kører under Bun, og falder tilbage til `better-sqlite3` på Node.js eller `sql.js`.
- **Automatisk valg af Webpack-bundler under udvikling**: Udviklingsmiljøet (`bun run dev`) registrerer automatisk Bun og deaktiverer Turbopack til fordel for Webpack for at forhindre inkompatibilitet med native V8-bindinger. Produktions-builds (`bun run build`) følger `OMNIROUTE_USE_TURBOPACK` præcis som på Node: Turbopack som standard, `OMNIROUTE_USE_TURBOPACK=0` for at bygge med Webpack (`Dockerfile.bun` eksponerer det som et `--build-arg`).
- **Dedikeret Bun-Dockerfile**: `Dockerfile.bun` med flere stadier til native Bun-produktionsinstallationer (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Installér og kør med Bun
bun install
bun run dev
```
**🛠️ Fra kildekode**
```bash
cp .env.example .env && npm install
PORT=20128 npm run dev
```
**📦 pnpm**
```bash
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
```
**🐧 Arch Linux (AUR)**
```bash
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
```
**🔧 Nix (Flake)**
```bash
# Brug af Nix flakes
nix develop
npm run dev
# Eller brug af devbox
devbox run npm run dev
```
📖 [Docker-vejledning](docs/guides/DOCKER_GUIDE.md) — Compose-profiler, Caddy HTTPS og Cloudflare-tunneler.
**🦭 Podman**
```bash
# 1. Klargør datamappen, der monteres via bind mount
mkdir -p data
# 2. Kun Linux + lokal rootless Podman (aldrig en ekstern Podman Machine-klient):
podman unshare chown 1000:1000 ./data
# 3. Angiv kørselsmiljøhintet, byg det lokale Compose-image, og start
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
På macOS eller Windows bruger Podman en ekstern Podman Machine: Spring `podman unshare` over, og
følg den [topologispecifikke vejledning til datamapper](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Podman-vejledning](contrib/podman/README.md) — Compose-builds, Podman Machine og
Linux/systemd Quadlet-opsætning.
**⚡ Hurtigere/mindre installation (spring det native build over)**
Den native SQLite-motor (`better-sqlite3`) er en **valgfri** afhængighed, så en global
installation blokerer aldrig på kompilering fra kildekode: Den bruger en præbygget binær fil, når en sådan matcher
din platform/Node, og falder ellers transparent tilbage til en ren JS-motor
(`node:sqlite` på Node 22+, ellers den medfølgende `sql.js` WASM) — ingen build-værktøjer kræves.
Sådan springer du den native opvarmning efter installationen helt over (CI, headless eller langsomme maskiner):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 springer den også over
```
Foretræk **pnpm** til de hurtigste installationer (indholdsadresseret lager + hardlinks — se ovenfor).
Brug Docker-profilen `base` (ovenfor) eller
[Termux-vejledningen](docs/guides/TERMUX_GUIDE.md) til et headless-kørselsmiljø uden dashboard. CLI'en og webdashboardet leveres af den
samme proces på én port, så der findes i øjeblikket ikke en separat pakke kun til CLI'en.
**Komplet rangering (deduplikerede kanoniske URL'er, `v > 0`, størst rækkevidde):**
| #1 | #2 | #3 | #4 | #5 |
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [nick_saraev — Instagram](https://www.instagram.com/reel/Da8ZthUPK98/) — **3,042,474** | [nnapier7 — Instagram](https://www.instagram.com/reel/Dbp7wv_CIO0/) — **1,454,535** | [Amidia AI & Tech — YouTube](https://www.youtube.com/watch?v=NJ0TQ-pyMDY) — **794,974** | [theopenstack — Instagram](https://www.instagram.com/reel/DaSs65mMrHk/) — **692,419** | [migue.baena — TikTok](https://www.tiktok.com/@migue.baena/video/7670919268216622358) — **685,788** |
| #6 | #7 | #8 | #9 | #10 |
| ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [milesreevesai — TikTok](https://www.tiktok.com/@milesreevesai/video/7667980059189366019) — **620,400** | [nikothetech — TikTok](https://www.tiktok.com/@nikothetech/video/7671890769665477918) — **610,803** | [Vaibhav Sisinty — YouTube](https://www.youtube.com/watch?v=QucgvbO5gsM) — **509,281** | [buildwithai.club — Instagram](https://www.instagram.com/reel/DbIt9AjK7-U/) — **347,652** | [nivedan.ai — Instagram](https://www.instagram.com/reel/DbIrCksJiqq/) — **331,973** |
Kanoniske målinger pr. 2026-10-18: **1.976 unikke videoer** · **20.220.289 kendte visninger** (`v > 0`) · **1.210 kanaler/profiler fordelt på netværk**. Råpanelet indeholder 1.976 rækker (YouTube 1.352 = 740 videoer i langt format + 612 Shorts · TikTok 334 · Instagram 290); ingen dubletter var tilbage efter normalisering ud fra den kanoniske URL, som bevarer det højeste antal pr. video. Indsamlingen fra YouTube har været sat på pause siden 2026-10-13 (API-kvoten var opbrugt fra 14. til 18. oktober) og fra TikTok/Instagram siden 2026-09-02 (ingen indsamlingskreditter); 76 videoer har endnu ikke et antal visninger.
> 🎬 **Har du lavet en video om OmniRoute?** Opret en [issue](https://github.com/diegosouzapw/OmniRoute/issues/new) eller [discussion](https://github.com/diegosouzapw/OmniRoute/discussions) med linket — så fremhæver vi den her.
# 📧 Fællesskab og hjælp
> Alt samlet ét sted — følg vedligeholderen, chat med fællesskabet, eller opret en issue.
| Kanal | Hvor / hvordan |
| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| 💼 **LinkedIn** — følg vedligeholderen | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) |
| 🐙 **GitHub** — følg for udgivelser og tips | [@diegosouzapw](https://github.com/diegosouzapw) |
| 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) |
| ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) |
| 🟢 **WhatsApp — 🌍 Global** | [tilmeld dig gruppen](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) |
| 🟢 **WhatsApp — 🇧🇷 Brasilien** | [tilmeld dig gruppen](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) |
| 🌍 **Websted** | [omniroute.online](https://omniroute.online) |
| 🌍 **🌍StHub OmniRoute-fællesskab (gratis)** | [StHub-portal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK) |
| 📦 **Kildekode** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) |
| 🐛 **Rapportér en fejl** | [opret en sag](https://github.com/diegosouzapw/OmniRoute/issues) — vedhæft outputtet fra `npm run system-info` |
| 🤝 **Bidrag** | [CONTRIBUTING.md](CONTRIBUTING.md) · [Forgrenings- og udgivelsesmodel](docs/ops/BRANCHING_MODEL.md) · vælg en `good first issue` |
| 💚 **Støt projektet** | [Måder at støtte på ↑](#-support-omniroute) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
Testdækningsstrategi for 56.000+ statiske testdeklarationer på tværs af 7.800+ sporede testfiler
# ⭐ Top-bidragsydere
> OmniRoute er formet af et passioneret open-source-fællesskab. Disse personer har ydet enestående bidrag, som direkte påvirker projektets kvalitet, stabilitet og rækkevidde. **Tak.**
### Eksterne bidragsydere efter mergede pull requests
Optælling foretaget 2026-10-18 15:09:09 UTC med live release/v3.8.52-spids 656f01cb43. Den paginerede GitHub GraphQL-optælling indeholder 9.191 mergede PR'er: 3.834 fra depotets ejer, 229 fra Dependabot, 6 fra andre bots/apps og 5.122 eksterne PR'er fra 835 forskellige bidragsydere. "Ændrede linjer" er GitHub-tilføjelser + -sletninger og inkluderer genererede filer, lockfiler, kataloger, oversættelser og dokumentation; det er churn, ikke forfattet LOC. 49 PR'er rapporterer GitHub-diffs på over 500.000 linjer (for eksempel viser #13399, en tilføjelse af en enkelt udbyder, 2.347 ændrede filer), hvilket oppuster flere af totalerne ovenfor. Uafgjorte resultater rangeres samlet.
### GitHub-attribuerede commits
Genkontrolleret den 2026-10-18 14:44:45 UTC: GitHub-tilskrevne commits rapporteret af repositoriets Contributors API for standardgrenen release/v3.8.52. API'et returnerede 849 identiteter (429 brugere, 2 bots, 418 anonyme); denne tabel udelukker vedligeholderen, bots og anonyme identiteter og bevarer delte placeringer i konkurrencen. Den adskiller sig både fra rangeringen af flettede PR'er ovenfor og fra Git-metadata-optællingen nedenfor.
> 🙏 Disse bidragyderes funktioner, fejlrettelser og infrastrukturforbedringer er en **central del** af det, der gør OmniRoute pålidelig og funktionsrig. Hver pull request, hver testcase og hver i18n-oversættelsesfil tæller. Open source bygges af mennesker som dem.
---
## 💖 Sponsorer
En hjertelig tak til de mennesker, der finansierer OmniRoute af egen lomme — hvert bidrag holder projektet gratis, uafhængigt og i udvikling.
… og andre, som foretrækker at forblive private 💛Offentlige GitHub-sponsorer blev genvalideret den 2026-10-18 via GitHub Sponsors GraphQL API: 11 offentlige sponsorater (6 aktive, 5 tidligere) ud af i alt 14. GitHubs isActive-status bestemmer de aktive mærkater ovenfor; tidligere offentlige engangsbidragydere takkes fortsat, og private sponsorer forbliver anonyme. Donationer via Ko-fi, Buy Me a Coffee, Liberapay, PIX og kryptovaluta er ikke angivet, fordi de ikke har nogen offentlig sponsorregistrering.💖 Bliv sponsor → — hver dollar bidrager til at holde OmniRoute gratis og uafhængigt.
## 👥 900+ bidragydere
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Revideret den 2026-10-18 ved det aktuelle tip ad160ab2d1 på release/v3.8.52 (6.826 commits): 993 normaliserede menneskelige Git-identiteter — 707 optræder som commitforfattere (inklusive vedligeholderen), og 286 optræder kun i eksplicitte Co-authored-by-trailere. Optællingen anvender .mailmap, sammenligner e-mailadresser uden hensyn til store og små bogstaver, sammenkæder kun numeriske og almindelige GitHub-noreply-adresser, når de koder for det samme brugernavn, udelukker 26 bot-/agent-/tjeneste-/pladsholderidentiteter og sammenfletter ikke almindelige e-mailadresser, blot fordi deres viste navne er ens. Revisionen den 2026-08-24 offentliggjorde 639; når denne metode køres igen på revisionens base ac02c5b42f, giver den 619, så stigningen skyldes nye bidragydere og ikke en mere lempelig metode.
### Sådan bidrager du
1. Fork repositoriet
2. Opret en branch fra tippet på den **aktive** `release/vX.Y.Z`-branch (ikke `main`) — se [Branching- og udgivelsesmodel](docs/ops/BRANCHING_MODEL.md)
3. Opret din feature-branch (`git checkout -b feat/amazing-feature`)
4. Commit dine ændringer (`git commit -m 'feat: add amazing feature'`)
5. Push til branchen (`git push origin feat/amazing-feature`)
6. Åbn en Pull Request med **base = den pågældende `release/vX.Y.Z`-branch**
Se [CONTRIBUTING.md](CONTRIBUTING.md) for detaljerede retningslinjer.
### Udgivelse af en ny version
```bash
# Opret en udgivelse — npm publish sker automatisk
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Stjerner
## 🌍 StarMapper
## 🙏 Tak
OmniRoute står på skuldrene af giganter. Det begyndte som en fork af **[9router](https://github.com/decolua/9router)** og en TypeScript-portering af Go-projektet **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — og derfra blev hvert undersystem nedenfor inspireret af et open source-projekt, der kom først. Hvert af dem har formet en konkret del af OmniRoute. Dette er vores tak til dem alle. 🙏
> ⭐ antal stjerner verificeret via GitHubs REST API den 18. oktober 2026 — giv disse projekter en stjerne. Antallene er et nøjagtigt dateret øjebliksbillede og vil naturligvis ændre sig.
### 🧬 Ophav & gateway
AI-gatewayen, hvis offentlige prisdatasæt forsyner vores synkronisering af omkostningssporing, og hvis model for normalisering af udbydere har dannet grundlag for vores routing.
MIT-kildekode tilpasset til den integrerede ChatGPT Web → Codex Responses-bro, herunder adaptere til browsersessioner, responsindramning, forbrug og websøgning.
Mønstre porteret til gendannelse af streams, aliasser uden ræsonnering, reservewebsøgning, grænser med glidende vindue, redigering af logfiler og hærdede startforløb.
Claude Code-kompatible standardindstillinger for transformation og adfærd for faktureringsheadere, generaliseret i OmniRoutes konfigurationsdrevne bro.
Projektets Grok-modeltilknytninger, Statsig-generator med simuleret TypeError, standardindstillinger for anmodninger og enheder samt NDJSON-responsbehandler blev i væsentlig grad tilpasset til OmniRoutes Grok Web-eksekveringskomponent.
Den primære indirekte kodekilde bag grok2api-merged; dens implementeringer af modeller, headere, payloads, Statsig og processorer er bevaret i Grok Webs ophav.
Den underliggende MIT-kildekode til Grok-payloads og standardindstillinger for enheder, Statsig-generatoren og result.response-processoren, videreført gennem TQZHR og grok2api-merged.
En indirekte kilde, som grok2api-merged krediterer for sit proxy-pool-lag; OmniRoute bevarer denne oplysning om ophav, men hævder ikke at have porteret en proxy-pool i sin afgrænsede Grok Web-eksekveringskomponent.
Den oprindelige Grok Web-implementering tog udgangspunkt i dets opstrømsdesign til HTTP/browser; dets direkte HTTP-sti stammer fra GrokProxy, så der hævdes ikke nogen selvstændig kodeportering.
Det virale "hvorfor bruge mange tokens, når få tokens gør tricket"-projekt — dets hulemandssprogsfilosofi driver vores standardkomprimeringstilstand og mere end 30 regler for fyldordsfjernelse og kondensering.
Højtydende komprimering af kommandooutput — inspirerede vores RTK-motor, JSON-filter-DSL, gendannelse af råt output og den stakkede RTK → Caveman-pipeline.
Den virale "dovne seniorudvikler"-YAGNI-kodningsfærdighed — inspirerede vores less-code-outputstil: styring mod den mindst mulige fungerende ændring, som reducerer _genereret_ kode (output-aksens pendant til Cavemans kortfattede prosa).
Indholdsbevidst outputkomprimering pr. filtype med fejlfølsom afbrydelse — validerede vores distribution efter type og spring over ved minimal gevinst.
Kolonnebaseret JSON i Rust + indholdsadresseret hentning + deduplikering på tværs af beskeder — validerede vores motordesign for headroom/ccr/session-dedup og den cachestabile invariant "den komprimerede form er positionsuafhængig".
Værktøjssæt til TypeScript Compiler API — inspirerede vores parserbaserede fjernelse af kommentarer, der bevarer streng-, skabelon- og regex-literaler.
MITM-opsnapning/-analyse af trafik mellem kodningsassistent ↔ LLM dannede grundlag for de tidlige krav til Traffic Inspector. Fire tidligere afledte moduler — SSE-sammenfletning, samtalenormalisering, maskering af hemmeligheder og rensning af headers — er blevet erstattet af uafhængige clean-room-implementeringer baseret på offentlige protokolstandarder. De to flader til værtsgennemgang (passthrough.ts og _internal/bypass.cjs) er fortsat OmniRoute-interne implementeringer, der er klassificeret uafhængigt; de blev ikke omskrevet som en del af denne udskiftning.
Transparent proxy-routing pr. proces — inspirerede vores nedbrudssikre nedlukning af MITM, inaktivitetstimeouts for sockets, procestilknytning via /proc og TPROXY-opsamling.
### 📚 Modeldata, observerbarhed og brugergrænseflade
En kurateret liste over biblioteker, der som standard er sikre, og som vejleder vores sikkerhedsvalg (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Dets kontobevidste modelomlægning, validering af stier til eksekverbare filer og adfærd for planetiketter dannede grundlag for OmniRoutes Antigravity-runtime.
Identificerede Grok Build-kvotegrænsefladen; OmniRoute verificerede og korrigerede derefter uafhængigt det aktive wire-format.
## 📄 Licens
MIT-licens - se [LICENSE](LICENSE) for detaljer.
---
**[⬆ Tilbage til toppen](#-omniroute)** · Bygget med ❤️ til open source AI-fællesskabet.
OmniRoute v3.8.53 · Node ≥22.22.2 · MIT-licens · omniroute.online