## 💰 ~1.62B tokener / måned på tvers av gratisnivåer hos tredjeparter
> **Bruk dine egne leverandørkontoer.** Dette er et estimert samlet antall på tvers av gratisnivåer hos tredjeparter som du må kvalifisere for separat, ikke en tildeling av tokener fra OmniRoute. Registrer deg, skaff påloggingsinformasjon der det kreves, og koble til leverandørene du kan bruke. Hver leverandør bestemmer sine egne grenser, sin egen tilgjengelighet og sine egne vilkår.
>
> Det er tungvint å kombinere gratisnivåer manuelt — dusinvis av SDK-er, dusinvis av hastighetsgrenser og ingen oversikt over hvor mye du faktisk har. OmniRoute katalogiserer **489 oppføringer for gratisnivåer fordelt på 35 gjentakende poolnøkler** og beregner det oppgitte tokenantallet fra de **17 poolene med et publisert positivt månedsbudsjett samt fem Groq-grenser per modell**, deduplisert etter delt pool. Kvoter som bare blir tilgjengelige etter en regional identitetskontroll (for øyeblikket: ModelScope), vises separat som +~6M bak regional identitetsverifisering og regnes aldri med i hovedtallet. Resultatet forblir synlig i kontrollpanelet (`/dashboard/free-tiers`).
> Animert sammendrag av den aktive siden `/dashboard/free-tiers`. Fullstendig metodikk (pooldeduplisering, kredittnivåer, leverandørvilkår): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Disse tallene revideres på nytt annenhver uke mot den aktive katalogen og **beveger seg begge veier** — avslutter en leverandør et gratisnivå, synker tallet; kommer et nytt til, stiger det. Vi publiserer det katalogen faktisk beregner, aldri et oppjustert bestefall.
⭐ Gi repoet en stjerne hvis OMNIROUTE har hjulpet deg med å spare penger og gjøre arbeidet enklere.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Bli med i fellesskapet
**👋 Følg vedlikeholderen — få nye leverandører, utgivelser 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ørsmål, leverandørtips, veikart og støtte → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Globalt](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 fortsetter å vokse
## 🆓 Installer, koble til en leverandør, og rut deretter gjennom ett endepunkt
```bash
# Etter at du har koblet til en leverandør, kopierer du OmniRoute-nøkkelen din fra Kontrollpanel → Endepunkter:
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` krever en kvalifisert rute. En ny installasjon kan mangle kvalifiserte nøkkelfrie mål, og en nøkkelfri leverandør kan avvise tredjepartsklienter. Leverandører merket med `tos: avoid`, inkludert OpenCode Free og Kiro, er som standard ekskludert fra automatisk ruting. Tilkobling av en konto overstyrer ikke denne innstillingen. Se [veiledningen for gratisnivåer](docs/getting-started/FREE-TIERS-GUIDE.md) før du velger en leverandør.📦 Kopier-og-lim-inn-hurtigstartskript for **Python, Node.js, PHP og cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Løftet
# 🤔 Hvorfor OmniRoute?
## 🤝 Støttet av våre åpen kildekode-venner
> **Vil du bli med som en åpen kildekode-venn?** Dette er selskapene som støtter åpen kildekode og hjelper OmniRoute med å holde det gående – og vi sier offentlig hvor hver token de gir oss går. Ta kontakt: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Takk til Kimi (Moonshot AI), vår grunnleggende åpen kildekode-venn, for å støtte dette prosjektet! Kimi er AI-laboratoriet bak de åpen-vektede K2- og K3-modellfamiliene – Kimi K3 leverer et 1M-token kontekstvindu, innebygd syn og grense-nivå koding til en brøkdel av prisen for lukkede modeller, og fungerer ut av boksen med Claude Code, Codex og alle kodingsverktøy OmniRoute tilbyr.
Hva Kimis støtte driver: Kimis API-kreditter driver OmniRoutes AI-validerte utgivelses-pipeline – sammenslåingsvalideringen drevet av Kimi K3-stadiet som gjennomgår hver pull-forespørsel før den sendes – pluss daglig funksjonsutvikling. Førsteklasses Kimi-støtte leveres på begge måter: den direkte Kimi API (kimi-k3) og Kimi Code kodingplanen (OAuth og API-nøkkel). OmniRoute er også det første brasilianske åpen kildekode-prosjektet i Kimis støtteprogram. Få en Kimi API-nøkkel med 15 % ekstra kreditter →
Cheaper Inference cheaperinference.com
Takk til Cheaper Inference, en OmniRoute åpen kildekode-venn, for å støtte dette prosjektet! Cheaper Inference er en kostnadsrangert gateway som videreselger 42 grensemodeller – Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok og MiniMax – bak ett OpenAI-kompatibelt endepunkt, og ruter hver forespørsel til den billigste kvalifiserte leverandøren uten å noensinne ta mer enn modellprodusentens listepris.
Førsteklasses støtte i OmniRoute: Chat Completions, det native /v1/responses-endepunktet, visjon, verktøykall og 3 bildemodeller (grok-imagine, nano-banana-pro, nano-banana-2, tilgjengelig som cheaperinference/<model>). Få en API-nøkkel →
Lenker merket aff=omniroute er partnerlenker. De finansierer prosjektet uten ekstra kostnad for deg. 🎟️ Affiliates Promo — gratis registreringskuponger fra leverandører vi ikke sponser (klikk for å utvide)Denne seksjonen er kun for henvisnings-/kupongkoder. Sponsede partnerskap finnes i 🤝 Støttet av våre åpen kildekode-venner ovenfor. OmniRoute har ingen sponsing eller partnerskap med leverandørene som er oppført her – dette er offentlige kuponger som alle kan bruke.
AgentRouter agentrouter.org
AgentRouter — affiliate-registrering · $100 gratis kreditter ved registrering (gratis server, forvent høyere latens – best for testing, ikke produksjon). Førsteklasses støtte i OmniRoute siden v3.8.50: Chat Completions, det Anthropic-kompatible trådformatet og den OpenAI-kompatible stien. Tilgjengelige modeller inkluderer claude-opus-4-8, claude-opus-5, gpt-5.6-sol og mer. Hent dine $100 →
⚠️ Affiliate-lenke — OmniRoute har ingen sponsing eller partnerskap med denne leverandøren.
Kjenner du en annen leverandør med en generøs gratis registreringskupong som gagner OmniRoute-brukere? Åpne en sak, så legger vi den til her.
## 🎯 Kombinasjoner — flaggskipet
> En **kombinasjon** er en kjede av modeller som OmniRoute ruter mellom **automatisk**. Hvis kvoten brukes opp, en leverandør svikter eller kostnadene øker kraftig, kan kombinasjonen gå videre til neste kvalifiserte, friske modell. 🛡️
### ⚡ Null konfigurasjon — bare bruk `auto`
Ingen kombinasjon trenger å opprettes. Sett modellen din til `auto` (eller en variant), så bygger OmniRoute en virtuell kombinasjon fra de tilkoblede leverandørene dine, vurdert i sanntid:
Modell-ID
Hva den optimaliserer for
auto
🎯 Balansert standardvalg (LKGP — holder seg til den sist fungerende leverandøren)
auto/coding
🧑💻 Kvalitetsprioriterte vekter for kodegenerering
auto/fast
⚡ Laveste latenstid først
auto/cheap
💰 Laveste kostnad per token først
auto/offline
🔋 Mest ledig kapasitet for kvoter/frekvensgrenser først
auto/smart
🔭 Kvalitet først + 10 % utforsking for å oppdage bedre modeller
auto/lkgp
📌 Eksplisitt tilknytning til sist fungerende leverandør
auto/chaos
🧪 Parallell utsending til et panel av modeller (én per leverandør, 5 som standard), returnerer ett svar; ett oppstrømskall per panelmodell, ikke feilinjeksjon
##
### 🔀 Eller bygg din egen — 19 rutingstrategier
Alle **19** strategiene — bland og kombiner per kombinasjonstrinn:
#
Strategi
Hva den gjør
1
priority
Ordnet liste med første mål prioritert — bruk opp hvert mål før det neste 🥇
2
fill-first
Fyll kvoten til hvert mål helt før du går videre
3
weighted
Vektet tilfeldig valg basert på vekten til hvert mål
4
round-robin
Gå gjennom målene i rekkefølge
5
p2c
Tilfeldig lastbalansering med valg mellom to alternativer
6
least-used
Velg målet med lavest gjeldende belastning
7
random
Ensartet tilfeldig valg (duplikater fjernes)
8
strict-random
Tilfeldig uten å fjerne gjentakelser 🎲
9
cost-optimized
Minimer $ per forespørsel basert på gjeldende katalogpriser 💸
10
headroom
Velg målet med mest gjenværende kvote
11
reset-window
Foretrekk målet med kvotevinduet som tilbakestilles først
12
reset-aware
Ranger etter tidspunkt for tilbakestilling av kvoten — korte vinduer først 📊
13
context-relay
Overfør kontekst mellom mål for lange samtaler 🧠
14
context-optimized
Velg det beste alternativet for gjeldende kontekststørrelse
15
cache-optimized
Fest hvert gjenbrukbare ledetekstprefiks til samme konto — maksimer treff i ledetekst-hurtigbufferen 🎯
16
lkgp
Sist fungerende rute — festes til den sist fungerende leverandøren og går deretter tilbake til reglene ved behov
17
auto
Sanntidsvurdering basert på 16 faktorer på tvers av alle tilkoblinger 🤖
18
fusion
Sender ut til et panel av modeller + en dommer sammenfatter ett svar 🧬
19
pipeline
Kjed sammen trinn — resultatet fra hvert mål mates inn i det neste 🔗
Auto-Combo-motoren vurderer hver kandidat ut fra **16 faktorer** (helsetilstand, kvote, kostnad, latenstid, oppgavetilpasning, kvalitet, økttilgjengelighet …) — se [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Robusthet er innebygd (3 uavhengige lag)
📖 [Automatisk kombinasjonsmotor](docs/routing/AUTO-COMBO.md) · [Resiliensveiledning](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Hva som skiller OmniRoute fra andre
📊 Fullstendig metodikk og detaljert sammenligning av hver funksjon med 9router, OpenRouter, CLIProxyAPI og LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Støtt OmniRoute
OmniRoute er MIT-lisensiert og vedlikeholdes åpent. Hvis det sparer deg for tid eller penger, kan du bidra til å holde det uavhengig — velg det som passer deg. Sponsing påvirker aldri rutingsprioriteten; det kjøper synlighet, ikke rangering.
**🇧🇷 PIX** — umiddelbart, uten gebyrer (Brasil)
Nøkkel (tilfeldig): `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 (klikk for å utvide)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Send hver valuta kun via nettverket som vises — sending via feil nettverk kan føre til at midlene går tapt.
🐛 Funnet en feil eller har du tilbakemeldinger? Start en [diskusjon](https://github.com/diegosouzapw/OmniRoute/discussions).
Merknader for utviklere: Prosjektet kan generere en lokal .env-fil under npm install/postinstall for å gjøre det enklere for utviklere. Denne filen ignoreres med hensikt via .gitignore (se .gitignore) og må aldri legges inn i repositoriet — hvis den ved et uhell blir lagt inn, må alle eksponerte hemmeligheter roteres og filen fjernes fra historikken. Se docs/DEVELOPER-ENVIRONMENT.md for veiledning om håndtering av lokale miljøfiler og hemmeligheter.
## 📡 OmniRoute Radar
Hovedtallet for gratisnivået er fortsatt **~1,62 mrd. tokens/måned** fra den dokumenterte,
utvalgsduplikatfjernede katalogen ovenfor. Midlertidige registreringskreditter fra leverandører kan separat øke den første
måneden til **~2,22 mrd.** Radar er et valgfritt, signert katalogoverlegg for dem som ønsker mer oppdatert
tilgjengelighet av gratismodeller mellom OmniRoute-utgivelser. Fellesskapskatalogen og alle eksisterende
gratisfunksjoner forblir gratis.
Støttespillere kan motta den oppdaterte katalogen og flere leverandørmuligheter. Den separate,
variable øvre grensen er **maksimalt omtrent 3 mrd. tokens/måned**, avhengig av leverandørtilgjengeligheten.
Denne grensen er ingen garanti: Leverandører kan når som helst endre kvoter, kvalifikasjonskrav, modeller eller
regioner.
Radar er valgfritt og bruker kun GET. OmniRoute-klienten laster ikke opp ledetekster, trafikk, leverandørkonfigurasjon,
brukstelemetri eller lokal status for avviste kunngjøringer. Les mer om kvalifikasjonskravene og
den gjeldende katalogen på **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Hva er nytt
> Nylige høydepunkter fra **v3.8.20 → v3.8.50**. Full historikk i [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — innkommende A2A-delegering til agentflåten din, Conductor-ferdigheter på agentkortet og et kontrollpanel med Faro-talekommunikasjon via trykk-for-å-snakke. → [A2A-server](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptivt inntak og overbelastningsvern** — ressurskrevende chatforespørsler settes i kø i stedet for å returnere 503, med atomiske, rullerende RPM-leieavtaler per tilkobling. → [Veiledning for robusthet](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanonisk rekkefølge for `/v1/models`** — én sammenhengende, leverandørgruppert blokk per leverandør (kombinasjoner festet først), stabil på tvers av alle katalogkilder. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🗜️ Forsterket komprimering** — inflateringsvern aktivert som standard, Caveman-pakker for DE / FR / JA + kinesisk (wényán), RTK-filtre for Gradle og .NET. → [Komprimering](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Ærlige fastpriskostnader** — abonnements-/kodeplanleverandører vises med **$0** i kostnadsanalysen; budsjett, kvoter og ruting fortsetter å estimere. → [API-referanse](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share-ruting** — fordel kvoten til en delt konto rettferdig mellom samlede nøkler, med arbeidsbevarende utlån av ubrukte andeler. → [Veiledning for robusthet](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI-/agentoppsett med én kommando** — 13 registrerte `setup-*`-kommandoer; `omniroute run` starter 7 CLI-er (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` støtter 10 mål med en interaktiv leverandør- og modellvelger samt favoritter per kontekst. → [CLI-integrasjoner](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Ekstern modus** — styr en ekstern OmniRoute med avgrensede tokener (`connect` / `contexts` / `tokens`) + en `antigravity` OAuth-hjelper for VPS-installasjoner. → [Ekstern modus](docs/guides/REMOTE-MODE.md)
- **🧭 Smartere automatisk ruting** — `auto/:`-kombinasjoner, **Fusion** (modellpanel + dommer), oppgavebevisst ruting samt overstyringer av modell / modus / USD-budsjett per forespørsel. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Utvidbar komprimering** — 12 kombinerbare motorer + Compression Studios: LLMLingua-2, todelt Ultra, omniglyph, nøyaktighetsport per trinn, GCF v3.2 og dra-og-slipp-redigering av rekkefølgen. → [Komprimering](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparent MITM-dekryptering (TPROXY)** — fang opp CLI-er som ignorerer proxy-miljøvariabler, med en CA per SNI og installasjonsprogram for klareringslageret. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Kostnadstelemetri overalt** — `X-OmniRoute-*`-headere for kostnad/bruk på alle endepunkter, header for besparelser ved cache-HIT og USD-forbrukskvoter per nøkkel. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🧠 Minne du kontrollerer** — deaktivert som standard, valgfri int8-vektorkvantisering + typet forringelse, og `x-omniroute-no-memory` per forespørsel. → [Minne](docs/frameworks/MEMORY.md)
- **🛡️ Sikkerhet** — vern mot promptinjeksjon på alle LLM-ruter (red-team-testsamling), valgfritt vern for maskering av påloggingsopplysninger (sladder lekkede API-nøkler/hemmeligheter i begge retninger), gratis DuckDuckGo-nettsøk som siste utvei og en valgfri OIDC-påloggingsport for kontrollpanelet (passordpålogging forblir alltid tilgjengelig). → [Sikkerhetsmekanismer](docs/security/GUARDRAILS.md)
- **🖼️ Nye endepunkter** — `/v1/ocr` (Mistral OCR) og `/v1/audio/translations` (Whisper-stil) kompletterer medietilbudet. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🎨 Bilde-/video-/lydgenerering** — ett API for medier: xAI Grok Imagine og Novita AI-video, ComfyUI, Magnific, Adobe Firefly, Segmind og taleleverandører som ElevenLabs. → [API-referanse](docs/reference/API_REFERENCE.md)
- **🌍 Distribusjon og drift** — `basePath` for omvendt proxy, automatisk registrering av nettleserspråk, enhetssporing per nøkkel, rotløs MITM-klarering og zh-TW-lokalisering. → [Miljø](docs/reference/ENVIRONMENT.md)
- **🤝 Flere leverandører og agenter** — skyagenter (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) med nettleser- og OAuth-pålogging, førsteklasses Ollama-kort, Claude Opus 5 og Sonnet 5, offisielt Kimi-partnerskap (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI … og en oppdatert **katalog med 352 leverandører**. → [Leverandører](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Gjennomsiktig ruting** — alle svar inneholder en `X-OmniRoute-Decision`-header som oppgir strategien/leverandøren/ventetiden som betjente forespørselen, en ny `cache-optimized`-kombinasjonsstrategi + Auto-Combo-faktoren `cacheAffinity` ruter gjentatte forespørsler tilbake til tilkoblingen som har det bufrede prefikset, og et skrivebeskyttet `/v1/auto-combo/{channel}/candidates`-endepunkt viser den aktive kandidatpoolen til en `auto/*`-kanal. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Lokal ytelse og infrastruktur** — lokal Redis med ett klikk, distribusjonsverktøy for Cloudflare Workers / Deno Deploy-reléer samt Bifrost og Mux som overvåkede, innebygde tjenester. → [Innebygde tjenester](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Også inkludert** — programtilleggsrammeverk + markedsplass, rammeverk for Omni-/Agent-/GitHub-ferdigheter, Obsidian-hvelvintegrasjon (22 MCP-verktøy), OpenAI-kompatible Batch- og Files-API-er, semantisk svarbuffer, spillifisering med resultatlister, ACP-agentoppdagelse (15 innebygde agenter), planlagt loggeksport til BigQuery, parallell utsending til flere modeller med `auto/chaos`, en Telegram-brobot, en versjonsbehandler i appen og LMArena-ELO-rangeringer av gratisleverandører. → [Dokumentasjon](docs/README.md)
## 🤖 Kompatible CLI-er og kodeagenter
> Én konfigurasjon — `http://localhost:20128/v1` — og **alle** AI-IDE-er eller CLI-er kjører på gratis og rimelige modeller.
+ fungerer også med · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · alle OpenAI-kompatible verktøy
📖 Verktøyspesifikt oppsett for alle de 36 verktøyene (26 CLI-kodeverktøy + 10 CLI-agenter) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode-programtillegg → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Start et hvilket som helst støttet CLI-verktøy gjennom OmniRoute med én kommando** — ingen konfigurasjonsfiler skrives,
legitimasjon injiseres per prosess, og Qwen/Gemini får en midlertidig, isolert hjemmekatalog:
```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 velg leverandør og modell interaktivt, og skriv verktøyets egen konfigurasjon:
omniroute configure codex # også: claude opencode qwen aider goose gemini cline continue kilo
```
Alle kommandoer respekterer den aktive eksterne konteksten (`omniroute connect `), `--dry-run`
forhåndsviser nøyaktige miljøvariabler og argumenter uten å kjøre noe, og `--api-key-env NAME` holder hemmeligheter ute
av skallhistorikken din. → [CLI-integrasjoner](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 372 KI-leverandører — 154 gratismerket i katalogen
> **372 registrerte leverandører** på tvers av de kanoniske samlingene for chat, medier, søk, lokale modeller, skyagenter og systemer, inkludert **154 med søkemetadataene `hasFree: true`**. Registeret over chatmodeller dekker **237 leverandører / 3 009 unike leverandør–modell-par / 1 443 rå modell-ID-er**; den separate gratiskvote-katalogen har **491 rader per modell**, **35 gjentakende kvotepuljer** og **54 gjentakende/nøkkelfrie leverandører som er gratis for alltid**. Disse nevnerne er ulike med hensikt; definisjoner og beregninger der kvotepuljer er deduplisert, finnes i [Leverandørreferansen](docs/reference/PROVIDER_REFERENCE.md) og [Gratisnivåer](docs/reference/FREE_TIERS.md).
### 🏢 Alle store laboratorier — gjennom ett endepunkt
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…og over 330 flere — hvert ikon hentes direkte fra kontrollpanelets leverandørkatalog. 📖 [Leverandørreferanse](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Gratis for alltid — $0, uten kort
OpenCode Zen DeepSeek V4, Nemotron 3 Ingen tokenbegrensning
Kilo Code Automatisk ruter, Tencent Hy3 Gratis for alltid
Requesty GPT-OSS 120B, Nemotron Gratis for alltid
SiliconFlow DeepSeek V3.2 / R1 Gratisnivå
Z.AI GLM GLM-4.7 / 4.5-Flash Gratis for alltid
Baidu ERNIE ERNIE 4.0 Gratis for alltid
Qoder AI Qwen3-Max, Kimi-K2 Ubegrenset og GRATIS
Pollinations GPT, Llama, Claude Ingen nøkkel nødvendig
Cloudflare AI 50+ modeller 10K nevroner/dag
NVIDIA NIM GLM, MiniMax ~40 RPM gratis
Cerebras GLM 4.7, GPT-OSS Engangskreditt på $5; kort kreves
### 🧩 Nytt: OmniRoute i VS Codes integrerte Copilot Chat
> Ingen ny sidestolpe, ikke noe nytt chatgrensesnitt — alle modellene OmniRoute leverer, vises direkte i
> **modellvelgeren i Copilot Chat som du allerede bruker**. Fra og med VS Code 1.122 fungerer leverandørmodeller
> uten GitHub-innlogging eller Copilot-abonnement — agentmodus, verktøykall og bildeanalyse,
> helt gratis.
Installer utvidelsen **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, koble den
til OmniRoute-serveren din (standard er `localhost:20128`), og åpne deretter Copilot Chat → modellvelger
→ **Administrer modeller…** → **OmniRoute**.
Fra redigeringsprogrammet: åpne visningen **Utvidelser**, søk etter **«OmniRoute»**, og klikk på **Installer**
— fungerer på samme måte i begge butikkene. Kildekode, saker og publiseringshåndboken finnes på
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Veiledning for VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — oppsett, hva modellvelgeren viser, kontrollpanel i en fane, feilsøking
### 🎩 Nytt: OmniRouteTray — gatewayen din, rett i menylinjen
> `omniroute serve` trives best når den alltid er på. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> gjør dette til en menylinjeapp for macOS som du kan sette opp og glemme: Den starter serveren, holder den i gang
> på tvers av omstarter, oppdaterer den på stedet og gir deg direkte tilgang til gjeldende tokenbudsjett med ett klikk — **uten
> et terminalvindu som står åpent, og uten en `npm install -g omniroute`-installasjon som må passes på.**
Den er bygget med [Tauri v2](https://v2.tauri.app/) (en Rust-kjerne på størrelse med en avrundingsfeil) og leveres med
sin egen signerte Node 24-kjøretid. Den administrerer en appeid OmniRoute-installasjon, slik at den aldri kommer i konflikt med din
globale `node`/`bun`. Den **deler den eksisterende konfigurasjonen og databasen din i `~/.omniroute/`** — så det er
den samme OmniRoute du allerede kjører, bare med hatt på. 🎩
Hva den gjør
Hvordan
🟢 Overvåker serveren
Starter omniroute serve og overtar en instans som allerede kjører, i stedet for å duplisere den
📊 Direkte bruksoversikt
Kvotelinjer for leverandører, økt- og ukesgrenser for Claude med nedtelling til tilbakestilling, kostnadsfordeling for 30 dager
🔄 Autooppdaterer på stedet
Trinnvis installasjon, atomisk bytte, tilbakerulling ved feil — alltid på den nyeste utgivelsen
🚀 Start ved innlogging
Valgfri oppstart ved innlogging; kun systemstatusfelt, uten Dock-ikon
🩺 Diagnostikk og logger
Diagnostikk med ett klikk og tilgang til serverlogger
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Foretrekker du en nedlasting? Hent den nyeste .dmg-filen fra
Utgivelser. Kildekode, feilrapporter og byggedokumentasjon
finner du på zoispag/omniroute-tray.
💛 Et fellesskapsprosjekt av @zoispag — ikke en offisiell OmniRoute-utgivelse.
> I tillegg til serveren er OmniRoute et **komplett kommandolinjekontrollsenter** med **over 80 kommandoer**, samt åpne agentprotokoller slik at en KI-agent kan styre det **på egen hånd**.
### ⌨️ Et ekte CLI (ikke bare `start`)
```bash
omniroute # kjør gateway + kontrollpanel (port 20128)
omniroute chat # interaktiv TUI-chatklient (skråstrek: /model /combo /skill /memory)
omniroute setup # veiledet oppstartsveiviser
omniroute doctor # diagnostiser leverandører, porter og plattformspesifikke avhengigheter
```
### 🛰️ Ekstern modus — kjør CLI-et her og OmniRoute på en VPS
Kjører OmniRoute på en server? Styr det fra den bærbare datamaskinen din med **samme CLI**. Logg inn én gang
med et avgrenset tilgangstoken; deretter retter hver kommando seg mot den eksterne serveren.
```bash
omniroute connect 192.168.0.15 # passord → avgrenset token, lagret som en kontekst
omniroute models list # ← kjører mot den EKSTERNE serveren
omniroute configure codex # ← velger en ekstern modell og skriver en lokal Codex-profil
omniroute tokens create --name ci --scope read # opprett mer begrensede tokener for andre maskiner
omniroute contexts use default # ← bytt tilbake til den lokale serveren
```
Tokener er avgrenset til `read` / `write` / `admin`; ruter som starter prosesser, forblir begrenset til loopback.
📖 [Ekstern modus](docs/guides/REMOTE-MODE.md)
### 🤝 Koble til en agent — så styrer den OmniRoute selv
Gjør OmniRoute tilgjengelig via **MCP**, **A2A**, et **REST API**, **webhooks** eller et **eksternt CLI** — enhver agent med nødvendig funksjonalitet (eller din egen kode) får nøklene til hele gatewayen: ruting, leverandører, kombinasjoner, hurtigbuffer, komprimering og minne — autonomt. HTTP-endepunktene nedenfor er tilgjengelige under `http://localhost:20128`.
Grensesnitt
Endepunkt / kommando
Bruk det til
🧰 MCP (stdio)
omniroute --mcp
Koble til Claude Desktop, Cursor eller en hvilken som helst MCP-klient
Send forespørsels-/kvotehendelser til Slack, Discord, Telegram eller en hvilken som helst URL
🛰️ Eksternt CLI
omniroute connect
Styr en ekstern instans med avgrensede tilgangstokener
```bash
# Gi Claude Code hele OmniRoute-verktøysettet 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
### 📖 Slik fungerer det — pipeline, arkitektur og beregning av besparelser
Den stablede standardkombinasjonen kjører `RTK → Caveman`. Når begge behandler den samme verktøy-/kontekstnyttelasten, forsterkes besparelsene:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Kodeblokker, URL-er, JSON og strukturerte data er **alltid beskyttet** av bevaringsmotoren.
> **Hvorfor bruke mange tokens når noen få gjør jobben?** Hver forespørsel går **transparent** gjennom OmniRoutes komprimeringspipeline — uten endringer på klientsiden. Den er nå en **stabel med 12 kombinerbare motorer** som kjøres i rekkefølge og kan kombineres fritt for hver rutingskombinasjon — basert på ideer 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).
### 🧱 Stabelen med 12 motorer
Motorene kjøres i pipeline-rekkefølge. Hver av dem kan slås av eller på og konfigureres uavhengig for hver kombinasjon:
#
Motor
Hva den gjør
1
Session-Dedup
Fjerner innhold som gjentas på tvers av turer (innholdsadressert, på tvers av turer)
2
CCR
Arkiverer store blokker bak hentemarkører og henter dem ved behov
3
Lite
Reduserer blanktegn og bilde-URL-er (grunnnivå med lav latens)
4
RTK
Smart filtrering, deduplisering og avkorting av verktøyresultater (kommandobevisst)
5
Responses Tool Output
Primært tapsfri JSON-komprimering samt begrenset diagnostisk komprimering av utdata fra skall, patcher, søk og bygging (Responses API)
6
Headroom
Tapsfri tabellkomprimering av JSON-matriser (~30 %) via en medfølgende GCF-kodek
7
Relevance
Ekstraktiv poengsetting av setninger mot den siste brukerforespørselen
8
Caveman
Regelbasert komprimering av prosa (~65–75 % av utdataene)
9
Aggressive
Oppsummering og gradvis aldring av gamle turer
10
LLMLingua-2
ML-basert semantisk beskjæring via MobileBERT ONNX — trygg for kode, asynkron
11
Ultra
Heuristisk tokenbeskjæring med et valgfritt lite modellnivå (SLM)
12
OmniGlyph
Eksperimentell koding av kontekst som bilde for målte Claude Fable 5 direkte over Anthropic-forbindelsen. GPT 5.6-transformatorer forblir lukket ved feil i påvente av kvitteringer fra leverandøren. Fire komprimeringsprofiler (aggressiv som standard, balansert, trygg for koding, passthrough) (mest aggressiv, må aktiveres eksplisitt)
Kodeblokker, URL-er og strukturerte data bevares **alltid** byteperfekt. **Forhåndsinnstillinger med ett klikk** kombinerer motorene:
Modus
Besparelse
Passer best til
🪶 Lite
~15 %
Trygg standard som alltid er aktiv
🪨 Standard (Caveman)
~30 %
Daglig koding
⚡ Aggressive
~50 %
Lange økter med mye verktøybruk
🔥 Ultra
~75 %
Maksimal besparelse
🧰 RTK
60–90 %
Utdata fra skall, tester, bygging og git
🔗 Stablet (RTK → Caveman)
78–95 %
Blandede ledetekster og verktøylogger
**Reelt eksempel — Standard-modus:**
> **Før (69 tokens):** _«Årsaken til at React-komponenten din gjengis på nytt, er sannsynligvis at du oppretter en ny objektreferanse i hver gjengivelsessyklus. Når du sender et innebygd objekt som en prop, oppfatter Reacts overfladiske sammenligning det som et annet objekt hver gang, noe som utløser en ny gjengivelse. Jeg anbefaler å bruke useMemo til å mellomlagre objektet.»_
>
> **Etter (19 tokens):** _«Ny objektreferanse ved hver gjengivelse. Innebygd objekt-prop = ny referanse = ny gjengivelse. Pakk inn i useMemo.»_
>
> **Samme svar. 72 % færre tokens. Ingen tap av nøyaktighet.** ✅
**PT-BR-eksempel — [Troglodita](https://github.com/leninejunior/troglodita)-modus:**
> **Før (42 tokener):** _«Problemet er at komponenten gjengis på nytt fordi en ny objektreferanse opprettes i hver gjengivelsessyklus. Jeg vil anbefale å bruke useMemo.»_
>
> **Etter (12 tokener):** _«Ny gjengivelse: ny ref. hver syklus (innebygd objekt opprettes på nytt). Bruk `useMemo`.»_
>
> **Samme svar. ~70 % færre tokener. Teknisk presisjon intakt.** ✅
### 🎚️ Utover motorene — utdatastiler, den adaptive bryteren og kontroll per forespørsel
De 12 motorene ovenfor reduserer det som går **inn**. Tre ytterligere lag former **hvordan**, **når** og hva som kommer **ut**:
- **🪄 Utdatastiler** _(styring langs utdataaksen)_ — injiser deterministiske, hurtigbuffersikre instruksjoner for utforming av svar; kan kombineres, hver med intensiteten `lite` / `full` / `ultra`. En stil legges til med én enkelt oppføring i registeret:
- **Konsis prosa** — fjern fyllord / artikler / forbehold; behold det tekniske innholdet nøyaktig.
- **Mindre kode** — «lat seniorutvikler»-YAGNI: minste fungerende endring, ingen struktur som ikke er etterspurt.
- **Hestehale (lat seniorutvikler)** — klatre opp YAGNI-stigen, løs rotårsaken, minste fungerende diff.
- **Jeg har ADHD (handling først)** — start med neste handling, nummererte trinn, ett konkret neste trinn, ingen innledning.
- **Konsis CJK (文言)** — ultrakonsis stil på klassisk kinesisk (begrenset til nasjonal innstilling `zh`).
- **🎯 Adaptivt kontekstbudsjett** _(bryteren)_ — i stedet for én av/på-terskel for tokener eskaleres bare de rimeligste motorene med minst tap så langt som nødvendig for å **passe innenfor modellens kontekstvindu**. Policy: `reserve-output` (standard, modellbevisst) · `percentage` · `absolute`. Modus: `floor` (garantert plass) · `replace-autotrigger` (det eksplisitte valget ditt vinner) · `off` (eldre terskel).
- **🎛️ Hvor komprimering avgjøres** _(prioritet, høy → lav)_ — `x-omniroute-compression`-header per forespørsel › overstyring for rutekombinasjon › aktiv navngitt profil › adaptiv / automatisk utløsing › standardinnstilling i panelet › av. Den anvendte planen gjengis i responsheaderen `X-OmniRoute-Compression: ; source=`.
Utløs automatisk basert på tokenterskel, slå på den adaptive bryteren, lås en navngitt profil, angi en engangsinnstilling per forespørsel eller tilordne en prosesseringskjede per rutekombinasjon — velg det som passer arbeidsbelastningen. Et valgfritt frakoblet **evalueringsverktøy** (`npm run eval:compression`) vurderer nøyaktighet mot besparelser på et fast datasett før du tar en endring i bruk.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Hurtigstart
**1) Installer og kjør**
```bash
npm install -g omniroute
omniroute
```
> 💡 Ser du `npm warn ERESOLVE` eller advarsler om peer-avhengigheter? [De er harmløse](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Bruker du npm 11 eller nyere?** npm kan blokkere livssyklusskript for pakker med mindre de er tillatt. OmniRoutes `postinstall` (`node scripts/build/postinstall.mjs`) er nødvendig for å klargjøre de systemspesifikke kjøretidsfilene. Tillat pakkene som er nevnt i npm-advarselen når du installerer globalt. For pakkesettet rapportert av OmniRoute 3.8.51:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> For å bruke denne tillatelseslisten på nytt ved fremtidige globale installasjoner kan du konfigurere den én gang og deretter installere som normalt:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Listen over avhengigheter kan endres mellom utgivelser. Hvis npm rapporterer en annen liste, bruker du pakkenavnene fra den advarselen. Når en pakke tillates, kan installasjonsskriptene dens kjøres.
> **Bruker du Gemini Web eller en annen leverandør basert på nettinformasjonskapsler?** npm-pakken inkluderer
> Playwright, men ikke Chromium-binærfilen. Se merknaden om
> [oppsett av Playwright Chromium](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> før du sender den første forespørselen til nettleverandøren.
Kontrollpanel på `http://localhost:20128` · API på `http://localhost:20128/v1`.
**2) Koble til en kvalifisert leverandør med din egen konto**
Kontrollpanel → **Leverandører** → velg en leverandør der gjeldende vilkår og kvote passer bruksområdet ditt → legg til API-nøkkelen eller fullfør kontoprosessen. Gratisnivåer kan kreve registrering, godkjenning eller en betalingsmåte. Les [veiledningen for gratisnivåer](docs/getting-started/FREE-TIERS-GUIDE.md). Tilgjengelighet uten nøkkel er ikke garantert, og leverandører merket med `tos: avoid` ekskluderes som standard fra `auto`.
**3) Pek kodeverktøyet ditt mot tjenesten**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose provider/model)
```
**4) Kontroller at det fungerer**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Du skal se en liste over de tilkoblede modellene dine. 🎉 Det var alt — begynn å kode, så ruter OmniRoute automatisk og bruker reserveløsninger for deg.
Hvis klienten din ikke kan sende egendefinerte headere, tilbyr OmniRoute også tokeniserte kompatibilitetsaliaser:
```txt
OpenAI catalog: http://localhost:20128/vscode/YOUR_KEY/
OpenAI models: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI chat: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI responses: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama chat: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama tags: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Bruk disse bare for klienter som ikke kan legge ved `Authorization: Bearer ...`. Autentisering med header er fortsatt den foretrukne metoden.
## 📦 Flere installasjonsmetoder — 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øyeste **publiserte** stabile SemVer-versjonen. Den følger ikke git `main`. Fest til `:X.Y.Z` for GitOps. Se [Docker-utgivelseskanaler](docs/guides/DOCKER_GUIDE.md#release-channels).Avbildningen angir **`OMNIROUTE_MEMORY_MB=1024`**. Det er nok for kontrollpanelet og lett bruk av chat. **Kodeagenter** (`POST /v1/responses` fra Claude Code, Codex, Grok, …) trenger en mye større V8-heap, ellers får prosessen `FATAL ERROR` ved ~12 GiB med to overlappende lange kontekster. Dimensjoner containeren større enn heapen (interne buffere ligger utenfor V8):
| Arbeidsbelastning | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
| ---------------------------------- | ---------------------------------- | ---------------------- |
| Kontrollpanel / lett bruk av chat | `1024` (standard for avbildningen) | ≥2 g |
| Én kodeagent | `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
```
Fullstendig tabell: [Docker-veiledning — RAM under kjøring](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Docker-kanal for forhåndsutgivelser:** `diegosouzapw/omniroute:next` og
> `diegosouzapw/omniroute:next-web` følger den gjeldende standardgrenen `release/v*`.
> Disse foranderlige taggene er kun beregnet på testing av rettelser som ennå ikke er utgitt, og
> **støttes ikke i produksjon**. Se
> [Docker-utgivelseskanaler](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Standard `bun install` og global installasjon (`bun install -g omniroute`) støttes gjennom registrering av Bun-kjøremiljøet:
- **Innebygd `bun:sqlite`**: OmniRoute bruker Buns innebygde `bun:sqlite`-driver når det kjøres under Bun, og faller tilbake til `better-sqlite3` på Node.js eller `sql.js`.
- **Automatisk valg av Webpack-pakker i utviklingsmiljøet**: Utviklingsmiljøet (`bun run dev`) registrerer automatisk Bun og deaktiverer Turbopack til fordel for Webpack for å unngå inkompatibilitet med native V8-bindinger. Produksjonsbygg (`bun run build`) følger `OMNIROUTE_USE_TURBOPACK` på nøyaktig samme måte som på Node: Turbopack som standard, `OMNIROUTE_USE_TURBOPACK=0` for å bygge med Webpack (`Dockerfile.bun` eksponerer den som et `--build-arg`).
- **Dedikert Dockerfile for Bun**: Flertrinns `Dockerfile.bun` for native Bun-produksjonsdistribusjoner (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Installer og kjø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
# Bruk av Nix-flakes
nix develop
npm run dev
# Eller bruk av devbox
devbox run npm run dev
```
📖 [Docker-veiledning](docs/guides/DOCKER_GUIDE.md) — Compose-profiler, Caddy HTTPS, Cloudflare-tunneler.
**🦭 Podman**
```bash
# 1. Klargjør den bind-monterte datakatalogen
mkdir -p data
# 2. Kun Linux + lokal rotløs Podman (aldri en ekstern Podman Machine-klient):
podman unshare chown 1000:1000 ./data
# 3. Angi kjøretidshintet, bygg det lokale Compose-avbildningen og start
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
På macOS eller Windows bruker Podman en ekstern Podman Machine: hopp over `podman unshare` og
følg [den topologispesifikke veiledningen for datakatalogen](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Podman-veiledning](contrib/podman/README.md) — Compose-bygg, Podman Machine og
oppsett av Linux/systemd Quadlet.
**⚡ Raskere / slankere installasjon (hopp over native-byggingen)**
Den native SQLite-motoren (`better-sqlite3`) er en **valgfri** avhengighet, så en global
installasjon blokkeres aldri av kompilering fra kildekode: Den bruker en forhåndsbygd binærfil når en samsvarer med
plattformen/Node-versjonen din, og faller ellers transparent tilbake til en ren JS-motor
(`node:sqlite` på Node 22+, ellers den medfølgende `sql.js` WASM) — ingen byggeverktøy kreves.
Slik hopper du helt over den native oppvarmingen etter installasjon (CI, uten grafisk grensesnitt eller trege maskiner):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 hopper også over den
```
For de raskeste installasjonene bør du foretrekke **pnpm** (innholdsadressert lager + harde lenker — se ovenfor).
For et kjøremiljø uten kontrollpanel og grafisk grensesnitt bruker du Docker-profilen `base` (ovenfor) eller
[Termux-veiledningen](docs/guides/TERMUX_GUIDE.md). CLI-verktøyet og nettkontrollpanelet betjenes av den
samme prosessen på én port, så det finnes foreløpig ingen separat pakke kun for CLI-verktøyet.
Strategi for testdekning av over 39 000 statiske testerklæringer fordelt på over 5 100 sporede testfiler
# ⭐ Viktigste bidragsytere
> OmniRoute formes av et lidenskapelig fellesskap basert på åpen kildekode. Disse personene har gitt eksepsjonelle bidrag som har direkte innvirkning på prosjektets kvalitet, stabilitet og rekkevidde. **Tusen takk.**
### Eksterne bidragsytere etter innlemmede pull requests
Fryst ved spissen av den aktive grenen release/v3.8.50, dafb4ae808, med innlemminger til og med 2026-08-24 05:26:03 UTC. Den paginerte GitHub GraphQL-opptellingen inneholder 5 911 innlemmede PR-er: 2 707 fra eieren av repositoriet, 179 fra Dependabot og 3 025 eksterne PR-er fra 535 unike bidragsytere. «Endrede linjer» er tillegg + slettinger på GitHub og omfatter genererte filer, låsefiler, kataloger, oversettelser og dokumentasjon; det måler endringsmengde, ikke egenproduserte kodelinjer. Delte plasseringer ved grensen er beholdt.
### Commits tilskrevet av GitHub
Bob.Hou 🏅 51 GitHub-tilskrevne commits · delt 10.-plass
Xiangzhe 🏅 51 GitHub-tilskrevne commits · delt 10.-plass
Kontrollert på nytt 2026-08-24 06:14:31 UTC: GitHub-tilskrevne commits rapportert av repositoriets Contributors API for standardgrenen release/v3.8.50. API-et returnerte 525 identiteter (415 brukere, 2 boter, 108 anonyme); denne tabellen utelater vedlikeholderen, boter og anonyme identiteter og beholder delte plasseringer. Den er forskjellig fra både rangeringen etter sammenslåtte pull requests ovenfor og opptellingen av 639 personer basert på Git-metadata nedenfor.
> 🙏 Disse bidragsyternes funksjoner, feilrettinger og forbedringer av infrastrukturen er en **sentral del** av det som gjør OmniRoute pålitelig og funksjonsrikt. Hver pull request, hvert testtilfelle og hver i18n-oversettelsesfil teller. Åpen kildekode bygges av mennesker som dem.
---
## 💖 Sponsorer
En hjertelig takk til dem som finansierer OmniRoute av egen lomme — hvert bidrag holder prosjektet gratis, uavhengig og i utvikling.
… og andre som foretrekker å forbli private 💛Offentlige GitHub-sponsorer ble kontrollert på nytt 2026-08-24. GitHubs activeOnly-status bestemmer de aktive merkelappene ovenfor. Tidligere offentliggjorte engangsbidragsytere blir fortsatt takket, mens private sponsorer forblir anonyme.💖 Bli sponsor → — hver dollar bidrar til å holde OmniRoute gratis og uavhengig.
## 👥 Over 600 bidragsytere
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Revidert 2026-08-24 ved den frosne basen ac02c5b42f og kontrollert på nytt ved det gjeldende release/v3.8.50-endepunktet dafb4ae808: 639 normaliserte menneskelige Git-identiteter — 407 forekommer som commit-forfattere (inkludert vedlikeholderen), og 232 forekommer bare i eksplisitte Co-authored-by-trailere. Opptellingen normaliserer GitHub-noreply-brukernavn, utelukker 26 bot-/agent-/tjeneste-/plassholderidentiteter og slår ikke sammen vanlige e-postadresser bare fordi visningsnavnene deres er like.
### Slik bidrar du
1. Fork repositoriet
2. Opprett en gren fra det **aktive** `release/vX.Y.Z`-endepunktet (ikke `main`) — se [Gren- og utgivelsesmodell](docs/ops/BRANCHING_MODEL.md)
3. Opprett funksjonsgrenen din (`git checkout -b feat/amazing-feature`)
4. Commit endringene dine (`git commit -m 'feat: add amazing feature'`)
5. Push til grenen (`git push origin feat/amazing-feature`)
6. Åpne en Pull Request med **base = den aktuelle `release/vX.Y.Z`-grenen**
Se [CONTRIBUTING.md](CONTRIBUTING.md) for detaljerte retningslinjer.
### Utgivelse av en ny versjon
```bash
# Opprett en utgivelse — npm publish skjer automatisk
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Stjerner
## 🌍 StarMapper
## 🙏 Takk
OmniRoute står på skuldrene til kjemper. Det startet som en forgrening av **[9router](https://github.com/decolua/9router)** og en TypeScript-portering av Go-prosjektet **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — og derfra ble hvert undersystem nedenfor inspirert av et åpen kildekode-prosjekt som var først ute. Hvert av dem formet en konkret del av OmniRoute. Dette er vår takk til dem alle. 🙏
> ⭐ antall stjerner ble verifisert via GitHubs REST API 24. august 2026 — gi gjerne disse prosjektene en stjerne. Antallene er et nøyaktig øyeblikksbilde fra denne datoen og vil naturligvis endre seg.
### 🧬 Opphav og gateway
AI-gatewayen der det offentlige prisdatasettet forsyner synkroniseringen av kostnadssporingen vår, og der modellen for leverandørnormalisering dannet grunnlaget for rutingen vår.
MIT-kildekode tilpasset til den inkluderte broen ChatGPT Web → Codex Responses, inkludert adaptere for nettleserøkter, responsinnramming, bruk og nettsøk.
Mønstre portert til gjenoppretting av strømmer, aliaser uten tenking, reservebasert nettsøk, grenser med glidende vindu, sladding av logger og sikrede oppstartsforløp.
Claude Code-kompatible standardinnstillinger for transformasjon og oppførsel for faktureringshoder, generalisert i OmniRoutes konfigurasjonsstyrte bro.
Prosjektets Grok-modelltilordninger, Statsig-generator med falsk TypeError, standardinnstillinger for forespørsler og enheter samt NDJSON-responsbehandler ble i vesentlig grad tilpasset til OmniRoutes Grok Web-eksekveringsmotor.
Den viktigste indirekte kodekilden bak grok2api-merged; implementasjonene av modeller, hoder, nyttelast, Statsig og behandlere er bevart i Grok Web-opphavslinjen.
Den underliggende MIT-kilden for Grok-nyttelast og standardinnstillinger for enheter, Statsig-generatoren og result.response-behandleren som er videreført gjennom TQZHR og grok2api-merged.
En indirekte kilde kreditert av grok2api-merged for proxy-pool-laget; OmniRoute bevarer henvisningen til dette opphavet, men hevder ikke å ha portert en proxy-pool i sin avgrensede Grok Web-eksekveringsmotor.
Den opprinnelige Grok Web-implementasjonen konsulterte prosjektets oppstrømsdesign for HTTP/nettleser; den direkte HTTP-banen stammer fra GrokProxy, så det hevdes ikke at noen uavhengig kodeportering har funnet sted.
Prosjektets Rust-baserte ChatOptions- og responskonvoluttskjemaer dannet grunnlaget for OmniRoutes TypeScript-typer for Grok-forespørsler og strømmesvar.
Det virale «hvorfor bruke mange token når få token gjør susen»-prosjektet — filosofien om huleboerspråk driver standardmodusen vår for komprimering og over 30 regler for fyllord og kondensering.
Høyytelses komprimering av kommandoutdata — inspirerte RTK-motoren vår, JSON-filter-DSL-en, gjenoppretting av rådata og den stablede RTK → Caveman-pipelinen.
PT-BR-tokenkomprimering — driver språkpakken vår for pt-BR: reduksjon av pleonasmer og fjerning av fyllord tilpasset brasiliansk-portugisisk grammatikk.
Den virale «late seniorutvikleren»-ferdigheten for YAGNI-koding — inspirerte utdatastilen vår mindre kode: styring mot den minste fungerende endringen som reduserer _generert_ kode (utdataaksens motstykke til Cavemans knappe prosa).
Innholdsbevisst komprimering av utdata per filtype med feilbevisst avbrudd — bekreftet rutingen vår per type og muligheten til å hoppe over ved minimal gevinst.
Kolonnebasert JSON i Rust + innholdsadressert henting + deduplisering på tvers av meldinger — bekreftet motordesignet vårt for headroom/ccr/session-dedup og den hurtigbufferstabile invarianten «komprimert form er posisjonsuavhengig».
MITM-avskjæring og -analyse av trafikk mellom kodeassistenter og LLM-er dannet grunnlaget for de tidlige kravene til Traffic Inspector. Fire tidligere avledede moduler — SSE-sammenslåing, samtalenormalisering, maskering av hemmeligheter og rensing av headere — er erstattet av uavhengige renromsimplementasjoner basert på offentlige protokollstandarder. De to vertsflater for direktegjennomgang (passthrough.ts og _internal/bypass.cjs) er fortsatt interne OmniRoute-implementasjoner som er klassifisert uavhengig; de ble ikke omskrevet som en del av denne erstatningen.
Transparent proxy-ruting per prosess — inspirerte vår krasjsikre avslutning av MITM, tidsavbrudd for inaktive sokler, prosesstilknytning via /proc og TPROXY-registrering.
### 📚 Modelldata, observerbarhet og brukergrensesnitt
En kuratert liste over biblioteker med sikre standardinnstillinger som veileder sikkerhetsvalgene våre (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Kontobevisst omtilordning av modeller, validering av kjørbare filbaner og håndtering av abonnementsetiketter dannet grunnlaget for OmniRoutes Antigravity-kjøretid.
Identifiserte Grok Build-kvotegrensesnittet; OmniRoute verifiserte og korrigerte deretter det aktive overføringsformatet uavhengig.
## 📄 Lisens
MIT-lisens – se [LICENSE](LICENSE) for detaljer.
---
**[⬆ Tilbake til toppen](#-omniroute)** · Bygget med ❤️ for AI-fellesskapet med åpen kildekode.
OmniRoute v3.8.52 · Node ≥22.22.2 · MIT-lisens · omniroute.online