## 💰 ~1.62B žetonų per mėnesį trečiųjų šalių nemokamuose planuose
> **Naudokite savo teikėjų paskyras.** Tai apytikslė atskirai tinkamų trečiųjų šalių nemokamų planų suma, o ne žetonų dotacija iš OmniRoute. Registruokitės, gaukite prieigos duomenis ten, kur jų reikia, ir prijunkite teikėjus, kuriuos galite naudoti; kiekvienas teikėjas pats valdo savo limitus, prieinamumą ir sąlygas.
>
> Rankiniu būdu kaupti nemokamus planus – varginantis darbas: dešimtys SDK, dešimtys užklausų limitų ir jokio supratimo, kiek iš tikrųjų turite. OmniRoute kataloguoja **467 nemokamų planų įrašus, suskirstytus pagal 34 pasikartojančių telkinių raktus**, o antraštinę žetonų sumą skaičiuoja iš **17 telkinių su paskelbtu teigiamu mėnesiniu biudžetu ir penkių Groq limitų pagal modelį**, pašalindama pasikartojimus pagal bendrą telkinį. Kvotos, kurios atsidaro tik po regioninio tapatybės patikrinimo (šiuo metu: ModelScope), rodomos atskirai – +~6M po regioninio tapatybės patvirtinimo – ir niekada neįtraukiamos į antraštinę sumą. Rezultatas nuolat matomas valdymo skydelyje (`/dashboard/free-tiers`).
> Tiesioginio `/dashboard/free-tiers` puslapio animuota santrauka. Išsami metodika (telkinių dublių šalinimas, kreditų lygmenys, teikėjų sąlygos): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Šie skaičiai kas dvi savaites iš naujo tikrinami pagal tiesioginį katalogą ir **kinta abiem kryptimis** – teikėjui nutraukus nemokamą planą skaičius mažėja; atsiradus naujam – didėja. Skelbiame tai, ką katalogas iš tikrųjų apskaičiuoja, niekada – suapvalintą geriausio atvejo skaičių.
⭐ Pažymėkite repozitoriją žvaigždute, jei OMNIROUTE padėjo sutaupyti pinigų ir palengvinti jūsų darbą.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Prisijunkite prie bendruomenės
**👋 Sekite kūrėją – pirmieji sužinokite apie naujus teikėjus, leidimus ir patarimus:**
[](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)
**Klausimai, teikėjų patarimai, planai ir pagalba → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Visame pasaulyje](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brazilija](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portalas](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Gateway nuolat auga
## 🆓 Įdiekite, prijunkite teikėją ir nukreipkite užklausas per vieną galinį tašką
```bash
# Prijungę teikėją, nukopijuokite savo OmniRoute raktą iš 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!"}]}'
```
Modeliui `auto` reikalingas tinkamas maršrutas. Naujame diegime gali nebūti tinkamų taikinių be rakto, o be rakto veikiantis teikėjas gali atmesti trečiųjų šalių klientus. Teikėjai, pažymėti `tos: avoid`, įskaitant Kiro, pagal numatytuosius nustatymus pašalinami iš automatinio maršrutizavimo; paskyros prijungimas to nustatymo nepakeičia. Prieš rinkdamiesi teikėją, peržiūrėkite [Nemokamų planų vadovą](docs/getting-started/FREE-TIERS-GUIDE.md).📦 Greito pradėjimo scenarijai, kuriuos galite kopijuoti ir įklijuoti, skirti **Python, Node.js, PHP ir cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Pažadas
# 🤔 Kodėl OmniRoute?
## 🤝 Mus remia mūsų atvirojo kodo draugai
> **Norite prisijungti kaip atvirojo kodo draugas?** Šios įmonės remia atvirąjį kodą ir padeda „OmniRoute“ judėti pirmyn, o mes viešai nurodome, kur panaudojamas kiekvienas jų suteiktas žetonas. Susisiekite: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Dėkojame Kimi (Moonshot AI), mūsų steigiamajam atvirojo kodo draugui, už šio projekto rėmimą! „Kimi“ yra DI laboratorija, sukūrusi atvirų svorių K2 ir K3 modelių šeimas. Kimi K3 siūlo 1 mln. žetonų konteksto langą, įtaisytąjį vaizdų apdorojimą ir pažangiausio lygio programavimą už gerokai mažesnę kainą nei uždarieji modeliai, be to, iškart veikia su „Claude Code“, „Codex“ ir visais programavimo įrankiais, kuriuos aptarnauja „OmniRoute“.
Ką užtikrina „Kimi“ parama: „Kimi“ API kreditai užtikrina „OmniRoute“ DI patvirtinamą leidimų procesą — suliejimo patvirtinimo, kurį vykdo Kimi K3, etapą, peržiūrintį kiekvieną įtraukimo užklausą prieš jos išleidimą, — taip pat kasdienį funkcijų kūrimą. Visavertis „Kimi“ palaikymas teikiamas abiem būdais: per tiesioginę Kimi API (kimi-k3) ir Kimi Code programavimo planą (OAuth ir API raktas). „OmniRoute“ taip pat yra pirmasis Brazilijos atvirojo kodo projektas „Kimi“ paramos programoje. Gaukite „Kimi“ API raktą su 15 % papildomų kreditų →
Cheaper Inference cheaperinference.com
Dėkojame Cheaper Inference, „OmniRoute“ atvirojo kodo draugui, už šio projekto rėmimą! „Cheaper Inference“ yra pagal kainą parenkantis šliuzas, perparduodantis 42 pažangiausius modelius — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok ir MiniMax — per vieną su OpenAI suderinamą galinį tašką. Kiekviena užklausa nukreipiama pigiausiam tinkamam teikėjui, o mokestis niekada neviršija modelio kūrėjo nustatytos kainos.
Visavertis palaikymas „OmniRoute“: Chat Completions, savasis /v1/responses galinis taškas, vaizdų apdorojimas, įrankių iškvietimas ir 3 vaizdų modeliai (grok-imagine, nano-banana-pro, nano-banana-2, pasiekiami kaip cheaperinference/<model>). Gaukite API raktą →
Nuorodos, pažymėtos aff=omniroute, yra partnerių nuorodos. Jos padeda finansuoti projektą jums nieko papildomai nekainuojant. 🎟️ Partnerių akcijos — nemokami registracijos kuponai iš teikėjų, kurių neremiame (spustelėkite, kad išskleistumėte)Šis skyrius skirtas tik rekomendacijų ir kuponų kodams. Remiamos partnerystės pateiktos pirmiau, skiltyje 🤝 Mus remia mūsų atvirojo kodo draugai. „OmniRoute“ nesieja rėmimo ar partnerystės santykiai su čia nurodytais teikėjais — tai vieši kuponai, kuriais gali pasinaudoti visi.
AgentRouter agentrouter.org
AgentRouter — partnerių registracija · užsiregistravę gaukite $100 nemokamų kreditų (nemokamas serveris, todėl tikėtina didesnė delsa — geriausiai tinka testavimui, o ne gamybinei aplinkai). Visavertis palaikymas „OmniRoute“ nuo v3.8.50: Chat Completions, su Anthropic suderinamas duomenų perdavimo formatas ir su OpenAI suderinamas kelias. Galimi modeliai: claude-opus-4-8, claude-opus-5, gpt-5.6-sol ir kiti. Pasiimkite savo $100 →
⚠️ Partnerio nuoroda — „OmniRoute“ nesieja rėmimo ar partnerystės santykiai su šiuo teikėju.
Žinote kitą teikėją, siūlantį dosnų nemokamą registracijos kuponą, naudingą „OmniRoute“ naudotojams? Sukurkite problemos įrašą ir mes jį čia pridėsime.
## 🎯 Kombinacijos — pagrindinė funkcija
> **Kombinacija** – tai modelių grandinė, tarp kurių „OmniRoute“ užklausas nukreipia **automatiškai**. Jei išnaudojama kvota, sutrinka teikėjo veikimas arba smarkiai išauga išlaidos, kombinacija gali pereiti prie kito tinkamo ir tinkamai veikiančio modelio. 🛡️
### ⚡ Nereikia jokios konfigūracijos – tiesiog naudokite `auto`
Nereikia kurti jokios kombinacijos. Nustatykite modelį į `auto` (arba jo variantą), o „OmniRoute“ pagal jūsų prijungtus teikėjus sukurs virtualią kombinaciją, kuri bus vertinama realiuoju laiku:
Modelio ID
Kam jis optimizuotas
auto
🎯 Subalansuotas numatytasis variantas (LKGP – lieka prie paskutinio sėkmingai veikusio teikėjo)
auto/coding
🧑💻 Kodo generavimui skirti svoriai, pirmenybę teikiant kokybei
auto/fast
⚡ Pirmiausia – mažiausia delsa
auto/cheap
💰 Pirmiausia – mažiausia vieno žetono kaina
auto/subscription
🎟️ Tik prenumeratos kvota, už kurią jau mokate – nepavykus užklausa nutraukiama, niekada nepereinama prie apmokestinamo atsarginio varianto (vadovas)
auto/thrifty
🪜 Pirmiausia plano kvota, tada po vieną pakopą pereinama prie pigiausių mokamų variantų, o kvotai atsistačius grįžtama prie plano (vadovas)
auto/offline
🔋 Pirmiausia – didžiausias kvotos / dažnio ribos rezervas
auto/smart
🔭 Pirmenybė kokybei + 10 % tyrinėjimo, siekiant atrasti geresnius modelius
auto/lkgp
📌 Aiškiai nurodytas prisirišimas prie paskutinio sėkmingai veikusio teikėjo
auto/chaos
🧪 Lygiagretus užklausų siuntimas modelių grupei (po vieną kiekvienam teikėjui, pagal numatytąją nuostatą – 5), grąžinant vieną atsakymą; kiekvienam grupės modeliui tenka po vieną išorinę užklausą, tai nėra gedimų imitavimas
##
### 🔀 Arba sukurkite savo – 20 maršruto parinkimo strategijų
Visos **20** strategijų – derinkite jas kiekviename kombinacijos žingsnyje:
#
Strategija
Kaip ji veikia
1
priority
Sąrašas, kuriame pirmenybė teikiama pirmajam tikslui – kiekvienas išnaudojamas prieš pereinant prie kito 🥇
2
fill-first
Prieš pereinant prie kito tikslo visiškai išnaudojama kiekvieno tikslo kvota
3
weighted
Atsitiktinis pasirinkimas pagal kiekvieno tikslo svorį
4
round-robin
Tikslai cikliškai pasirenkami nustatyta tvarka
5
p2c
Atsitiktinis apkrovos balansavimas pagal dviejų pasirinkimų principą
6
least-used
Pasirenkamas tikslas, kurio dabartinė apkrova mažiausia
Vienos užklausos kaina mažinama pagal realiuoju laiku gaunamas katalogo kainas 💸
10
headroom
Pasirenkamas tikslas, turintis didžiausią likusią kvotą
11
quota-weighted
Praleidžiamos paskyros su išnaudota kvota, tada pasirenkama proporcingai likusiai kvotai ÷ vykdomai apkrovai – esami pokalbiai lieka priskirti tam pačiam tikslui ⚖️
12
reset-window
Pirmenybė teikiama tikslui, kurio kvotos laikotarpis bus atkurtas greičiausiai
13
reset-aware
Rikiuojama pagal kvotos atkūrimo laiką – pirmiausia trumpi laikotarpiai 📊
14
context-relay
Ilguose pokalbiuose kontekstas perduodamas tarp tikslų 🧠
15
context-optimized
Pasirenkamas dabartiniam konteksto dydžiui tinkamiausias tikslas
16
cache-optimized
Kiekvienas pakartotinai naudojamas raginimo priešdėlis priskiriamas tai pačiai paskyrai – taip maksimaliai padidinamas raginimų podėlio pataikymų skaičius 🎯
17
lkgp
Paskutinis sėkmingai veikęs kelias – naudojamas paskutinis sėkmingai veikęs teikėjas, o jam neveikiant pereinama prie taisyklių
18
auto
Visų jungčių vertinimas realiuoju laiku pagal 16 veiksnių 🤖
19
fusion
Užklausos siunčiamos modelių grupei, o vertintojas susintetina vieną atsakymą 🧬
20
pipeline
Žingsniai sujungiami į grandinę – kiekvieno tikslo išvestis perduodama kitam 🔗
📊 Visa metodika ir išsami informacija apie kiekvieną funkciją, palyginti su „9router“, „OpenRouter“, „CLIProxyAPI“ ir „LiteLLM“ → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Paremkite „OmniRoute“
„OmniRoute“ platinamas pagal MIT licenciją ir prižiūrimas atvirai. Jei jis padeda sutaupyti laiko ar pinigų, štai kaip galite padėti jam išlikti nepriklausomam — pasirinkite jums tinkamiausią būdą. Rėmimas niekada neturi įtakos maršruto parinkimo prioritetui; jis suteikia matomumą, o ne aukštesnę vietą reitinge.
**🇧🇷 PIX** — akimirksniu, be mokesčių (Brazilija)
Raktas (atsitiktinis): `5d865059-bc44-483a-962d-43ceb80126eb`
PIX kopijavimo ir įklijavimo kodas:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Kriptovaliutos — BTC · ETH · USDT-TRC20 · USDC-Solana (spustelėkite, kad išskleistumėte)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Kiekvieną kriptovaliutą siųskite tik nurodytu tinklu — siunčiant netinkamu tinklu galima prarasti lėšas.
🐛 Radote klaidą ar turite atsiliepimų? Pradėkite [diskusiją](https://github.com/diegosouzapw/OmniRoute/discussions).
Pastabos kūrėjams: Kūrėjų patogumui vykdant npm diegimą arba postinstall projektas gali sugeneruoti vietinį .env failą. Šis failas sąmoningai ignoruojamas naudojant .gitignore (žr. .gitignore) ir niekada neturi būti įtrauktas į saugyklą — jei jis buvo įtrauktas netyčia, pakeiskite visus atskleistus slaptuosius duomenis ir pašalinkite failą iš istorijos. Vietinių aplinkos failų ir slaptųjų duomenų tvarkymo rekomendacijas rasite docs/DEVELOPER-ENVIRONMENT.md.
## 📡 „OmniRoute Radar“
Pagrindinis nemokamo lygio rodiklis išlieka **~1.62B žetonų per mėnesį** pagal pirmiau pateiktą dokumentuotą,
dubliuojamus telkinių įrašus pašalinantį katalogą. Laikini teikėjų registracijos kreditai gali papildomai padidinti pirmojo
mėnesio kiekį iki **~2.22B**. „Radar“ yra pasirenkama, pasirašyta katalogo perdanga, skirta norintiems
naujesnės informacijos apie nemokamų modelių prieinamumą tarp „OmniRoute“ leidimų; bendruomenės katalogas ir visos esamos nemokamos
funkcijos lieka nemokamos.
Rėmėjai gali gauti tiesioginį katalogą ir papildomas teikėjų galimybes. Jo atskira,
kintama viršutinė riba yra **daugiausia maždaug 3B žetonų per mėnesį**, priklausomai nuo teikėjų prieinamumo.
Ši viršutinė riba nėra garantija: teikėjai bet kada gali keisti kvotas, tinkamumo reikalavimus, modelius ar regionus.
„Radar“ yra pasirenkama ir naudoja tik GET užklausas. „OmniRoute“ klientas neįkelia užklausų tekstų, srauto, teikėjų
konfigūracijos, naudojimo telemetrijos ar vietinės pranešimų atmetimo būsenos. Informaciją apie tinkamumo reikalavimus ir
dabartinį katalogą rasite **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Kas naujo
> Naujausi akcentai nuo **v3.8.20 → v3.8.53**. Visa istorija – [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted` maršrutizavimas** — 20-oji kombinacijų strategija praleidžia išsemtas paskyras, o tada atrenka iš likusiųjų proporcingai likusiai kvotai ÷ vykdomai apkrovai, esamus pokalbius išlaikydama prisegtus. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Headless režimas** — `omniroute serve --headless` (arba `OMNIROUTE_HEADLESS=1`) paleidžia tik `/v1/*` tarpinio serverio variklį, išjungus valdymo skydelį ir tik jam skirtas posistemes. → [Headless režimas](docs/guides/HEADLESS.md)
- **🔎 Modelių paieška** — `/v1/models` filtruoja pagal galimybes, kontekstą, tipą ir tekstą, o `POST /v1/models/query` grąžina trumpą deterministinį atrankos sąrašą su tokiu pačiu matomumu pagal raktą. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🔑 Maršrutizavimo valdymas pagal raktą** — prisekite API raktą prie vieno modelio ar kombinacijos su `forcedModel`, o rakto modelius ir kombinacijas pridėkite arba šalinkite atomiškai (`/api/keys/{id}/access`). → [API žinynas](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Tikslensnis PII valdymas** — pasirinkimas pagal tipą, iki 20 patvirtintų pasirinktinių maskavimo šablonų ir aptikimo skaitikliai pagal tipą; pats maskavimas lieka pasirenkamas. → [Apsaugos priemonės](docs/security/GUARDRAILS.md)
- **🌍 67 kalbos** — valdymo skydelis, dokumentacijos veidrodžiai ir CLI; `npm run i18n:add-locale` viena komanda prideda kalbą visur. → [i18n vadovas](docs/guides/I18N.md)
- **🎛️ OmniConductor** — gaunamasis A2A delegavimas jūsų agentų parkui, Conductor įgūdžiai Agent Card kortelėje ir valdymo skydelio skydas su Faro push-to-talk balso pokalbiais. → [A2A serveris](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptyvus priėmimas ir apsauga nuo perkrovos** — sunkiosios pokalbių užklausos laukia eilėje, o ne grąžina 503 klaidą, su atominėmis slenkančiosiomis RPM nuomomis kiekvienam ryšiui. → [Atsparumo vadovas](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanoninė `/v1/models` rikiuotė** — vienas vientisas, pagal tiekėjus sugrupuotas blokas kiekvienam tiekėjui (kombinacijos prisegtos pirmos), stabilus visuose katalogų šaltiniuose. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🗜️ Glaudinimo sustiprinimas** — pagal numatymą įjungta apsauga nuo išpūtimo, Caveman paketai DE / FR / JA + kinų kalbai (wényán), RTK filtrai Gradle ir .NET. → [Glaudinimas](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Sąžininga fiksuota kainodara** — prenumeratos / kodavimo plano tiekėjai sąnaudų analitikoje rodomi kaip **$0**; biudžetas, kvotos ir maršrutizavimas toliau atlieka įvertinimus. → [API žinynas](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share maršrutizavimas** — sąžiningai paskirsto bendros paskyros kvotą tarp telkinio raktų, tausodamas darbą, kad neveikiančios dalys būtų paskolintos. → [Atsparumo vadovas](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI/agentų sąranka viena komanda** — 15 užregistruotų `setup-*` komandų; `omniroute run` paleidžia 7 CLI įrankius (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` palaiko 11 taikinių su interaktyviu tiekėjo+modelio rinkikliu ir mėgstamiausiais pagal kontekstą. → [CLI integracijos](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Nuotolinis režimas** — valdykite nuotolinį OmniRoute ribotos apimties tokenais (`connect` / `contexts` / `tokens`) + `antigravity` OAuth pagalbininku VPS diegimams. → [Nuotolinis režimas](docs/guides/REMOTE-MODE.md)
- **🧭 Išmanesnis automatinis maršrutizavimas** — `auto/:` kombinacijos, **Fusion** (modelių kolegija + vertintojas), užduotį atpažįstantis maršrutizavimas, kiekvienos užklausos modelio / režimo / USD biudžeto perrašymai. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Prijungiamas glaudinimas** — 12 derinamų variklių + Compression Studios: LLMLingua-2, dviejų pakopų Ultra, omniglyph, kiekvieno žingsnio tikslumo kontrolė, GCF v3.2, redaktorius su perrikiavimu tempiant. → [Glaudinimas](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Skaidrus MITM iššifravimas (TPROXY)** — sugaukite CLI įrankius, ignoruojančius tarpinio serverio aplinkos kintamuosius, su CA pagal SNI + pasitikėjimo saugyklos diegimo programa. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Sąnaudų telemetrija visur** — `X-OmniRoute-*` sąnaudų/naudojimo antraštės kiekviename galutiniame taške, talpyklos pataikymo (cache-HIT) sutaupymų antraštė, USD išlaidų kvotos pagal raktą. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🧠 Jūsų valdoma atmintis** — pagal numatymą išjungta, pasirenkamas int8 vektorių kvantavimas + tipizuotas silpimas, kiekvienai užklausai – `x-omniroute-no-memory`. → [Atmintis](docs/frameworks/MEMORY.md)
- **🛡️ Saugumas** — apsauga nuo raginimų injekcijų kiekviename LLM maršrute (red-team testų rinkinys), pasirenkama kredencialų maskavimo apsauga (užmaskuoja nutekėjusius API raktus/paslaptis abiem kryptimis), nemokama DuckDuckGo paieška žiniatinklyje kaip paskutinė išeitis ir pasirenkami OIDC prisijungimo vartai valdymo skydeliui (prisijungimas slaptažodžiu visada lieka prieinamas). → [Apsaugos priemonės](docs/security/GUARDRAILS.md)
- **🖼️ Nauji galutiniai taškai** — `/v1/ocr` (Mistral OCR) ir `/v1/audio/translations` (Whisper stiliaus) užbaigia medijos galimybių rinkinį. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🎨 Paveikslėlių / vaizdo įrašų / garso generavimas** — viena API visai medijai: xAI Grok Imagine ir Novita AI vaizdo įrašai, ComfyUI, Magnific, Adobe Firefly, Segmind ir kalbos tiekėjai, tokie kaip ElevenLabs. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🌍 Diegimas ir eksploatavimas** — atvirkštinio tarpinio serverio `basePath`, automatinis naršyklės kalbos aptikimas, įrenginių sekimas pagal raktą, MITM pasitikėjimas be root teisių, zh-TW lokalizacija. → [Aplinka](docs/reference/ENVIRONMENT.md)
- **🤝 Daugiau tiekėjų ir agentų** — debesijos agentai (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) su prisijungimu per naršyklę + OAuth, visaverte Ollama kortelė, Claude Opus 5 ir Sonnet 5, oficiali Kimi partnerystė (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… ir atnaujintas **375 tiekėjų katalogas**. → [Tiekėjai](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Maršrutizavimo skaidrumas** — kiekvienas atsakymas pateikiamas su `X-OmniRoute-Decision` antrašte, nurodančia jį aptarnavusią strategiją/tiekėją/delą, nauja `cache-optimized` kombinacijų strategija + Auto-Combo `cacheAffinity` faktorius nukreipia pasikartojančias užklausas atgal į ryšį, kuriame laikomas talpykloje esantis prefiksas, o tik skaitymui skirtas `/v1/auto-combo/{channel}/candidates` galutinis taškas atskleidžia `auto/*` kanalo kandidatų telkinį realiu laiku. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Vietinis našumas ir infrastruktūra** — vienu spustelėjimu paleidžiamas vietinis Redis, Cloudflare Workers / Deno Deploy relay diegikliai, Bifrost ir Mux kaip prižiūrimos įterptosios paslaugos. → [Įterptosios paslaugos](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Taip pat komplekte** — papildinių karkasas + turgavietė, Omni/Agent/GitHub įgūdžių karkasai, Obsidian vault integracija (22 MCP įrankiai), su OpenAI suderinamos Batch ir Files API, semantinis atsakymų podėlis, gamifikacija su lyderių lentelėmis, ACP agentų aptikimas (15 integruotų agentų), suplanuotas žurnalų eksportas į BigQuery, `auto/chaos` lygiagretus kelių modelių platinimas (fan-out), Telegram boto tiltas, programoje integruotas versijų tvarkytuvas ir LMArena-ELO nemokamų teikėjų reitingai. → [Dokumentacija](docs/README.md)
## 🤖 Suderinamos CLI ir programavimo agentai
> Viena konfigūracija — `http://localhost:20128/v1` — ir **kiekviena** DI IDE ar CLI veikia su nemokamais ir nebrangiais modeliais.
**Paleiskite bet kurią palaikomą CLI per OmniRoute viena komanda** — nerašomi jokie konfigūracijos failai,
prisijungimo duomenys įterpiami kiekvienam procesui atskirai, o Qwen/Gemini suteikiamas laikinas izoliuotas pradžios katalogas:
```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 "atsakyk OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "atsakyk OK"
omniroute run qwen --model glm/glm-5.2 -- -p "atsakyk OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "atsakyk OK"
# Arba interaktyviai pasirinkite teikėją ir modelį bei įrašykite paties įrankio konfigūraciją:
omniroute configure codex # taip pat: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Kiekviena komanda naudoja aktyvų nuotolinį kontekstą (`omniroute connect `), `--dry-run`
parodo tikslias aplinkos reikšmes ir argumentus nieko nevykdant, o `--api-key-env NAME` neleidžia paslaptims
patekti į jūsų apvalkalo istoriją. → [CLI integracijos](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 375 AI teikėjai — 153 kataloge pažymėti kaip nemokami
> **375 registruoti teikėjai** kanoninėse pokalbių, medijos, paieškos, vietinių, debesijos agentų ir sistemos kolekcijose, įskaitant **153 su `hasFree: true` atradimo metaduomenimis**. Pokalbių modelių registras apima **239 teikėjus / 3,059 unikalias teikėjo–modelio poras / 1,475 neapdorotus modelių ID**; atskiras nemokamo biudžeto katalogas turi **467 eilutes pagal modelį**, **34 pasikartojančius fondus** ir **51 pasikartojantį / be rakto visam laikui nemokamą teikėją**. Tai sąmoningai skirtingi vardikliai; apibrėžtys ir skaičiavimai su fondų dedublikacija pateikti [Teikėjų žinyne](docs/reference/PROVIDER_REFERENCE.md) ir [Nemokamuose lygmenyse](docs/reference/FREE_TIERS.md).
### 🏢 Visos pagrindinės laboratorijos — per vieną galinį tašką
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…ir dar 350+ — kiekviena piktograma tiesiogiai gaunama iš valdymo skydo teikėjų katalogo. 📖 [Teikėjų žinynas](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Nemokama visam laikui — $0, be kortelės
OpenCode Zen DeepSeek V4, Nemotron 3 Be žetonų apribojimo
Kilo Code Auto-router, Tencent Hy3 Nemokama visada
### 🧩 Naujiena: OmniRoute tiesiogiai integruotame VS Code Copilot Chat
> Jokios naujos šoninės juostos ar naujos pokalbių sąsajos — kiekvienas OmniRoute teikiamas modelis rodomas tiesiog
> **jau naudojamame Copilot Chat modelių parinkiklyje**. Nuo VS Code 1.122 teikėjų modeliai veikia
> neprisijungus prie GitHub ir be Copilot prenumeratos — agento režimas, įrankių iškvietimas ir vaizdų analizė
> nemokamai.
Įdiekite **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** plėtinį, nurodykite jam
savo OmniRoute serverį (numatytoji reikšmė — `localhost:20128`), tada atidarykite Copilot Chat → modelių parinkiklį
→ **Tvarkyti modelius…** → **OmniRoute**.
> `omniroute serve` geriausiai veikia būdamas nuolat įjungtas. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> paverčia jį „nustatykite ir pamirškite“ principu veikiančia macOS meniu juostos programa: ji paleidžia serverį, palaiko jo veikimą
> po paleidimų iš naujo, atnaujina jį vietoje ir leidžia vienu spustelėjimu pasiekti dabartinį žetonų biudžetą — **nereikia
> palikti atidaryto terminalo lango ar prižiūrėti `npm install -g omniroute`.**
Sukurta naudojant [Tauri v2](https://v2.tauri.app/) (Rust branduolį, kurio dydis prilygsta apvalinimo paklaidai), programa pateikiama
su nuosava pasirašyta Node 24 vykdymo aplinka ir valdo programai priklausantį OmniRoute diegimą, todėl niekada nekonfliktuoja su jūsų
visuotiniu `node`/`bun`. Ji **naudoja jūsų esamą `~/.omniroute/` konfigūraciją ir duomenų bazę** — taigi tai
tas pats OmniRoute, kurį jau naudojate, tik su skrybėle. 🎩
Ką atlieka
Kaip
🟢 Prižiūri serverį
Paleidžia omniroute serve, o jau veikiančią egzemplioriaus kopiją perima, užuot ją dubliavusi
📊 Naudojimas realiuoju laiku iš pirmo žvilgsnio
Teikėjų kvotų juostos, Claude sesijos ir savaitės limitai su atstatymo laiko atskaita, 30 dienų išlaidų suvestinė
🔄 Automatiškai atnaujina vietoje
Etapinis diegimas, atominis pakeitimas, grąžinimas į ankstesnę būseną nesėkmės atveju — visada naudojama naujausia laida
🚀 Paleidžia prisijungus
Pasirinktinis paleidimas prisijungus; tik sistemos dėkle, be doko piktogramos
🩺 Patikra ir žurnalai
Diagnostika vienu spustelėjimu ir prieiga prie serverio žurnalų
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Norite atsisiųsti? Naujausią .dmg rasite
leidimų skiltyje. Šaltinio kodą, pranešimus apie problemas ir kompiliavimo
dokumentaciją rasite zoispag/omniroute-tray.
💛 Bendruomenės projektas, sukurtas @zoispag — tai nėra oficialus „OmniRoute“ leidimas.
> Be serverio, OmniRoute taip pat yra **visavertis komandų eilutės valdymo centras**, turintis **daugiau nei 80 komandų** ir atvirus agentų protokolus, todėl DI agentas gali jį valdyti **savarankiškai**.
### ⌨️ Tikra CLI (ne vien `start`)
```bash
omniroute # paleisti šliuzą ir valdymo skydelį (prievadas 20128)
omniroute chat # interaktyvus TUI pokalbių klientas (komandos: /model /combo /skill /memory)
omniroute setup # vedlys, skirtas pirmajam paleidimui
omniroute doctor # diagnozuoti teikėjus, prievadus ir savąsias priklausomybes
```
### 🛰️ Nuotolinis režimas — paleiskite CLI čia, o OmniRoute – VPS serveryje
OmniRoute veikia serveryje? Valdykite jį iš savo nešiojamojo kompiuterio naudodami **tą pačią CLI**. Vieną kartą prisijunkite
naudodami ribotos aprėpties prieigos prieigos raktą; tuomet kiekviena komanda bus vykdoma nuotoliniame serveryje.
```bash
omniroute connect 192.168.0.15 # slaptažodis → ribotos aprėpties prieigos raktas, išsaugomas kaip kontekstas
omniroute models # ← vykdoma NUOTOLINIAME serveryje
omniroute configure codex # ← pasirenkamas nuotolinis modelis, įrašomas vietinis Codex profilis
omniroute tokens create --name ci --scope read # sukurti siauresnės aprėpties prieigos raktus kitiems įrenginiams
omniroute contexts use default # ← grįžti į vietinį serverį
```
Prieigos raktų aprėptys yra `read` / `write` / `admin`; procesus paleidžiantys maršrutai lieka pasiekiami tik per grįžtamąją sąsają.
📖 [Nuotolinis režimas](docs/guides/REMOTE-MODE.md)
### 🤝 Prijunkite agentą — ir jis pats valdys OmniRoute
Suteikite prieigą prie OmniRoute per **MCP**, **A2A**, **REST API**, **žiniatinklio sąsajas** arba **nuotolinę CLI** — bet kuris tinkamas agentas (ar jūsų pačių kodas) galės autonomiškai valdyti visą šliuzą: maršrutizavimą, teikėjus, derinius, podėlį, glaudinimą ir atmintį. Toliau nurodyti HTTP galiniai taškai pasiekiami adresu `http://localhost:20128`.
Sąsaja
Galinis taškas / komanda
Kam naudoti
🧰 MCP (stdio)
omniroute --mcp
Integruoti su Claude Desktop, Cursor ar bet kuriuo MCP klientu
Suderinama su OpenAI — pokalbiai, įterpiniai, vaizdai, garsas, OCR
🔔 Žiniatinklio sąsajos
/api/webhooks
Siųsti užklausų / kvotų įvykius į Slack, Discord, Telegram arba bet kurį URL
🛰️ Nuotolinė CLI
omniroute connect
Valdyti nuotolinį egzempliorių naudojant ribotos aprėpties prieigos raktus
```bash
# Suteikti Claude Code visą OmniRoute įrankių rinkinį per MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [MCP serveris](docs/frameworks/MCP-SERVER.md) · [A2A serveris](docs/frameworks/A2A-SERVER.md) · [Agentų protokolai](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Sutaupykite 15–95 % žetonų — automatiškai
### 📖 Kaip tai veikia — vamzdelis, architektūra ir sutaupymų matematika
Numatytoji sukaupta kombinacija vykdo `RTK → Caveman`. Kai abu veikia tą pačią įrankio/konteksto apkrovą, sutaupymai kaupiasi:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Kodo blokai, URL, JSON ir struktūriniai duomenys yra **visada apsaugoti** išsaugojimo variklio.
> **Kam naudoti daug žetonų, kai užtenka kelių?** Kiekviena užklausa **skaidriai** praeina per OmniRoute glaudinimo vamzdelį — jokių kliento pakeitimų. Dabar tai **12 derinamų variklių rinkinys**, kurie vykdomi iš eilės ir maišomi bei derinami pagal maršruto kombinaciją — remiantis idėjomis iš [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) ir [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 12 variklių rinkinys
Varikliai vykdomi vamzdelio tvarka; kiekvienas yra nepriklausomai įjungiamas/išjungiamas ir konfigūruojamas pagal kombinaciją:
#
Variklis
Ką jis daro
1
Session-Dedup
Pašalina per kelis ėjimus pasikartojantį turinį (adresuojamas pagal turinį, tarp ėjimų)
2
CCR
Archyvuoja didelius blokus už gavimo žymų, kurie gaunami pagal poreikį
3
Lite
Tarpų ir vaizdų URL apkarpymas (bazė su minimalia delsena)
4
RTK
Išmanus įrankių rezultatų filtravimas, dedublikavimas ir apkarpymas (atsižvelgiant į komandas)
5
Responses Tool Output
Pirmiausia be nuostolių JSON + apribota diagnostinė kompresija shell/patch/search/build išvestims (Responses API)
6
Headroom
Be nuostolių lentelinis JSON masyvų sutankinimas (~30 %) naudojant įdėtą GCF kodeką
7
Relevance
Ekstrakcinis sakinių vertinimas pagal paskutinę naudotojo užklausą
ML semantinis retinimas per MobileBERT ONNX — saugus kodui, asinchroninis
11
Ultra
Euristinis žetonų retinimas su pasirinktinu mažojo modelio (SLM) lygmeniu
12
OmniGlyph
Eksperimentinis konteksto kaip vaizdo kodavimas, išmatuotas su Claude Fable 5 tiesioginiame Anthropic kanale; GPT 5.6 transformatoriai lieka fail-closed režime, kol bus gauti teikėjo patvirtinimai. Keturi kompresijos profiliai (agresyvus numatytasis, subalansuotas, saugus kodui, praleidimo) (agresyviausias; įjungiamas pasirinktinai)
Kodo blokai, URL ir struktūriniai duomenys **visada išsaugomi** baitas į baitą. **Vieno spustelėjimo išankstiniai nustatymai** sujungia variklius:
Režimas
Sutaupymai
Geriausiai tinka
🪶 Lite
~15 %
Visada įjungtas saugus numatytasis režimas
🪨 Standartinis (Caveman)
~30 %
Kasdieniam programavimui
⚡ Aggressive
~50 %
Ilgoms, įrankiais apkrautoms sesijoms
🔥 Ultra
~75 %
Maksimaliems sutaupymams
🧰 RTK
60–90 %
Shell/test/build/git išvestims
🔗 Sukaupta (RTK → Caveman)
78–95 %
Mišriems raginimams + įrankių žurnalams
**Tikras pavyzdys — Standartinis režimas:**
> **Prieš (69 žetonai):** _"Jūsų React komponentas iš naujo atvaizduojamas greičiausiai todėl, kad kiekviename atvaizdavimo cikle sukuriate naują objekto nuorodą. Kai perduodate tiesioginį objektą kaip prop, React paviršutiniškas palyginimas kaskart jį mato kaip kitą objektą, o tai sukelia pakartotinį atvaizdavimą. Rekomenduočiau naudoti useMemo objektui įsiminti."_
>
> **Po (19 žetonų):** _"Nauja objekto nuoroda kiekviename atvaizdavime. Tiesioginis objekto prop = nauja nuoroda = pakartotinis atvaizdavimas. Apvyniokite useMemo."_
>
> **Tas pats atsakymas. 72 % mažiau žetonų. Jokio tikslumo praradimo.** ✅
**PT-BR pavyzdys — [Troglodita](https://github.com/leninejunior/troglodita) režimas:**
> **Prieš (42 tokenai):** _"Problema ta, kad komponentas atvaizduojamas iš naujo, nes kiekviename atvaizdavimo cikle sukuriama nauja objekto nuoroda. Rekomenduočiau naudoti useMemo."_
>
> **Po (12 tokenų):** _"Perpiešimas: nauja nuoroda kiekviename cikle (įterptasis objektas kuriamas iš naujo). Naudoti `useMemo`."_
>
> **Tas pats atsakymas. ~70 % mažiau tokenų. Techninis tikslumas nepakitęs.** ✅
### 🎚️ Ne tik varikliai — išvesties stiliai, adaptyvus reguliatorius ir valdymas kiekvienai užklausai
Aukščiau pateikti 12 variklių sumažina tai, kas patenka **į vidų**. Dar trys sluoksniai formuoja **kaip**, **kada** ir kas išeina **išorėn**:
- **🪄 Išvesties stiliai** _(išvesties ašies kryptavimas)_ — įterpia deterministines, podėliui saugias atsakymų formavimo instrukcijas; derinami, kiekvienas su `lite` / `full` / `ultra` intensyvumu. Stiliaus pridėjimas — viena eilutė registre:
- **Glausta proza** — pašalina užpildus / artikelius / vengiančias frazes; išlaiko tikslią techninę esmę.
- **Mažiau kodo** — „tingaus vyresniojo programuotojo" YAGNI: mažiausias veikiantis pakeitimas, jokio neprašyto karkaso.
- **Ponytail (tingus vyresnysis programuotojas)** — kyla YAGNI laiptais, taiso šakninę priežastį, mažiausias veikiantis skirtumas.
- **Turiu ADHD (veiksmas pirmiausia)** — pirmiausia pateikiamas kitas veiksmas, žingsniai sunumeruoti, vienas konkretus kitas žingsnis, jokios pratarmės.
- **Glaustas CJK (文言)** — klasikinės kinų kalbos itin glaustas stilius (apribotas lokale `zh`).
- **🎯 Adaptyvus konteksto biudžetas** _(reguliatorius)_ — vietoj vieno įjungimo/išjungimo tokenų slenksčio, pigiausi, mažiausiai prarandantys varikliai stiprinami tik tiek, kiek reikia, kad **tilptų į modelio konteksto langą**. Politika: `reserve-output` (numatytoji, pritaikyta modeliui) · `percentage` · `absolute`. Režimas: `floor` (garantuotas tilpimas) · `replace-autotrigger` (laimi jūsų aiškus pasirinkimas) · `off` (senasis slenkstis).
- **🎛️ Kur sprendžiama dėl glaudinimo** _(prioritetas, aukščiausias → žemiausias)_ — konkrečios užklausos `x-omniroute-compression` antraštė › maršrutų derinio perrašymas › aktyvus įvardytasis profilis › adaptyvus / automatinis suaktyvinimas › skydelio numatytoji › išjungta. Pritaikytas planas grąžinamas atsakymo antraštėje `X-OmniRoute-Compression: ; source=`.
Suaktyvinkite automatiškai pagal tokenų slenkstį, įjunkite adaptyvų reguliatorių, prisekite įvardytąjį profilį, nustatykite vienkartinę reikšmę konkrečiai užklausai arba priskirkite konvejerį kiekvienam maršrutų deriniui — kas geriausiai tinka darbo krūviui. Pasirenkama neprisijungus veikianti **vertinimo aplinka** (`npm run eval:compression`) fiksuotame korpuse įvertina tikslumą ir sutaupymus prieš jums patvirtinant pakeitimą.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Greita pradžia
**1) Įdiekite ir paleiskite**
```bash
npm install -g omniroute
omniroute
```
> 💡 Matote `npm warn ERESOLVE` arba „peer-dep" įspėjimus? [Jie nekenksmingi](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Naudojate npm 11 ar naujesnę versiją?** npm gali blokuoti paketų gyvavimo ciklo scenarijus, jei jie neleidžiami. OmniRoute `postinstall` (`node scripts/build/postinstall.mjs`) būtinas norint paruošti vietinius vykdymo failus. Diegdami globaliai leiskite paketus, nurodytus npm įspėjime. Paketų rinkiniui, kurį nurodo OmniRoute 3.8.53:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Norėdami šį leidimų sąrašą pakartotinai naudoti būsimuose globaliuose diegimuose, sukonfigūruokite jį vieną kartą, o vėliau diekite kaip įprasta:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Priklausomybių sąrašas gali keistis tarp leidimų; jei npm praneša kitokį sąrašą, naudokite to įspėjimo paketų pavadinimus. Leidus paketą, leidžiama vykdyti jo diegimo scenarijus.
> **Naudojate Gemini Web ar kitą teikėją, pagrįstą žiniatinklio slapukais?** npm paketas apima
> Playwright, bet ne jo Chromium dvejetainį failą. Prieš pateikdami pirmąją užklausą žiniatinklio teikėjui,
> peržiūrėkite [Playwright Chromium sąrankos](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> pastabą.
Skydelis pasiekiamas adresu `http://localhost:20128` · API — `http://localhost:20128/v1`.
**2) Prijunkite tinkamą teikėją naudodami savo paskyrą**
Skydelis → **Teikėjai** → pasirinkite teikėją, kurio dabartinės sąlygos ir kvota tinka jūsų naudojimo atvejui → pridėkite jo API raktą arba užbaikite paskyros susiejimo srautą. Nemokami planai gali reikalauti registracijos, patvirtinimo arba mokėjimo būdo. Peržiūrėkite [Nemokamų planų vadovą](docs/getting-started/FREE-TIERS-GUIDE.md); prieinamumas be rakto negarantuojamas, o teikėjai, pažymėti `tos: avoid`, pagal numatymą neįtraukiami į `auto`.
**3) Nukreipkite savo kodavimo įrankį**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose provider/model)
```
**4) Patikrinkite, ar veikia**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Turėtumėte pamatyti prijungtų modelių sąrašą. 🎉 Štai ir viskas — pradėkite programuoti, o OmniRoute automatiškai nukreips užklausas ir atliks atsarginį perjungimą už jus.
Jei jūsų klientas negali siųsti pasirinktinių antraščių, OmniRoute taip pat teikia suderinamumo slapyvardžius su žetonais:
```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
```
Naudokite juos tik klientams, kurie negali pridėti `Authorization: Bearer ...`. Autentifikavimas antraštėmis išlieka pageidautinas režimas.
## 📦 Daugiau diegimo būdų — Docker, pirminis kodas, 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` nurodo aukščiausią **paskelbtą** stabilią SemVer versiją. Ji neseka git `main`. Naudodami GitOps, pasirinkite konkrečią `:X.Y.Z` versiją. Žr. [Docker leidimų kanalus](docs/guides/DOCKER_GUIDE.md#release-channels). Atvaizde nustatyta **`OMNIROUTE_MEMORY_MB=1024`**. To pakanka valdymo skydeliui ir nedideliam pokalbiui. **Programavimo agentams** (`POST /v1/responses` iš Claude Code, Codex, Grok, …) reikia gerokai didesnės V8 krūvos, kitaip, esant dviem persidengiantiems ilgiems kontekstams ir sunaudojus apie 12 GiB, procesas baigiamas `FATAL ERROR` klaida. Konteineriui skirkite daugiau atminties nei krūvai (savosios atminties buferiai yra už V8 ribų):
| Darbo krūvis | Krūva (`-e OMNIROUTE_MEMORY_MB`) | Konteineris (`--memory`) |
| ----------------------------------------------- | ------------------------------------ | ------------------------ |
| Valdymo skydelis / nedidelis pokalbis | `1024` (numatytoji atvaizdo reikšmė) | ≥2 g |
| Vienas programavimo agentas | `8192` | ≥10 g |
| Dvi vienalaikės ilgos `/v1/responses` užklausos | `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
```
Visa lentelė: [Docker vadovas — vykdymo aplinkos RAM](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Išankstinių Docker leidimų kanalas:** `diegosouzapw/omniroute:next` ir
> `diegosouzapw/omniroute:next-web` seka dabartinę numatytąją `release/v*`
> šaką. Šios kintamos žymos skirtos tik dar neišleistiems pataisymams testuoti ir
> **nėra palaikomos gamybinėje aplinkoje**. Žr.
> [Docker leidimų kanalus](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Standartinis `bun install` ir visuotinis diegimas (`bun install -g omniroute`) palaikomi aptinkant Bun vykdymo aplinką:
- **Integruotas `bun:sqlite`**: veikdama Bun aplinkoje, OmniRoute naudoja integruotą Bun `bun:sqlite` tvarkyklę, o Node.js aplinkoje grįžta prie `better-sqlite3` arba `sql.js`.
- **Automatinis Webpack rinkinio kūrimo priemonės parinkimas kūrimo aplinkoje**: kūrimo režimas (`bun run dev`) automatiškai aptinka Bun ir vietoje Turbopack įjungia Webpack, kad būtų išvengta nesuderinamumo su savosiomis V8 sąsajomis. Gamybinės versijos (`bun run build`) naudoja `OMNIROUTE_USE_TURBOPACK` lygiai taip pat kaip Node aplinkoje: pagal numatytuosius nustatymus naudojama Turbopack, o norint kurti su Webpack — `OMNIROUTE_USE_TURBOPACK=0` (`Dockerfile.bun` ją pateikia kaip `--build-arg`).
- **Specialus Bun Dockerfile**: kelių etapų `Dockerfile.bun`, skirtas saviesiems gamybiniams Bun diegimams (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Įdiekite ir paleiskite naudodami Bun
bun install
bun run dev
```
**🛠️ Iš pirminio kodo**
```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
# Naudojant Nix flakes
nix develop
npm run dev
# Arba naudojant devbox
devbox run npm run dev
```
📖 [Docker vadovas](docs/guides/DOCKER_GUIDE.md) — Compose profiliai, Caddy HTTPS, Cloudflare tuneliai.
**🦭 Podman**
```bash
# 1. Paruoškite susietai prijungiamą duomenų katalogą
mkdir -p data
# 2. Tik Linux ir vietiniam be root veikiančiam Podman (niekada nenaudokite su nuotoliniu Podman Machine klientu):
podman unshare chown 1000:1000 ./data
# 3. Nustatykite vykdymo aplinkos nuorodą, sukurkite vietinį Compose atvaizdą ir paleiskite
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
macOS arba Windows sistemose Podman naudoja nuotolinę Podman Machine: praleiskite `podman unshare` ir
vadovaukitės [konkrečiai topologijai skirtomis duomenų katalogo rekomendacijomis](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Podman vadovas](contrib/podman/README.md) — Compose versijų kūrimas, Podman Machine ir
Linux/systemd Quadlet sąranka.
**⚡ Greitesnis / lengvesnis diegimas (praleidžiant savosios dalies kūrimą)**
Savasis SQLite variklis (`better-sqlite3`) yra **pasirenkama** priklausomybė, todėl visuotinis
diegimas niekada neužstringa kompiliuojant iš pirminio kodo: kai jūsų platformai ir Node versijai
yra tinkamas iš anksto sukompiliuotas dvejetainis failas, naudojamas jis, o kitu atveju skaidriai
pereinama prie grynojo JS variklio (`node:sqlite` naudojant Node 22+, kitu atveju — pridėtas
`sql.js` WASM) — kūrimo įrankių nereikia.
Norėdami visiškai praleisti po įdiegimo atliekamą **savosios dalies paruošimą** (CI, aplinkose be grafinės sąsajos arba lėtuose kompiuteriuose), naudokite toliau pateiktą komandą.
Pastaba: taip praleidžiamas tik savosios SQLite dalies paruošimo veiksmas (`scripts/postinstall.mjs`);
dvejetainio failo kopijavimo / taisymo procedūra (`scripts/build/postinstall.mjs`) vis tiek vykdoma įprastai:
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 taip pat jį praleidžia
```
Norėdami diegti greičiausiai, rinkitės **pnpm** (pagal turinį adresuojama saugykla ir kietosios nuorodos — žr. pirmiau).
Norėdami naudoti vykdymo aplinką be valdymo skydelio ir grafinės sąsajos, rinkitės Docker `base` profilį (pirmiau) arba
[Termux vadovą](docs/guides/TERMUX_GUIDE.md). CLI ir žiniatinklio valdymo skydelį aptarnauja tas pats
procesas viename prievade, todėl šiuo metu nėra atskiro, tik CLI skirto paketo.
# ⭐ Žymiausi talkininkai
> OmniRoute formuoja aistringa atvirojo kodo bendruomenė. Šie asmenys įnešė išskirtinį indėlį, tiesiogiai veikiantį projekto kokybę, stabilumą ir pasiekiamumą. **Ačiū.**
### Išoriniai talkininkai pagal sujungtas užklausas (PR)
Statistika surinkta 2026-10-18 15:09:09 UTC naudojant tiesioginę release/v3.8.52 šakos viršūnę 656f01cb43. Puslapiuotoje GitHub GraphQL suvestinėje yra 9 191 sujungtas PR: 3 834 – saugyklos savininko, 229 – Dependabot, 6 – kitų robotų / programėlių ir 5 122 išoriniai PR iš 835 unikalių talkininkų. „Pakeistos eilutės“ – tai GitHub pridėtų ir pašalintų eilučių suma, apimanti sugeneruotus failus, „lockfile“ failus, katalogus, vertimus ir dokumentaciją; tai kodo kaitos apimtis, o ne autorių parašytų eilučių skaičius (LOC). 49 PR turi GitHub skirtumus, viršijančius 500 000 eilučių (pavyzdžiui, #13399 – vieno paslaugų teikėjo pridėjimas – apima 2 347 pakeistus failus), todėl kai kurios aukščiau pateiktos sumos yra išpūstos. Vienodą rezultatą pasiekę talkininkai priskiriami tai pačiai vietai.
### GitHub priskirti pakeitimai (commits)
Pakartotinai patikrinta 2026-10-18 14:44:45 UTC: GitHub priskirti commit'ai, kuriuos pateikia saugyklos Contributors API pagal numatytąją šaką release/v3.8.52. API grąžino 849 tapatybes (429 vartotojus, 2 botus, 418 anoniminių); ši lentelė neįtraukia prižiūrėtojo, botų ir anoniminių tapatybių bei išlaiko lygiąsias vietas. Ji skiriasi tiek nuo aukščiau pateikto sulietų PR reitingo, tiek nuo žemiau pateikiamos Git metaduomenų suvestinės.
> 🙏 Šių talkininkų sukurtos funkcijos, pataisytos klaidos ir infrastruktūros patobulinimai yra **esminė dalis** to, kas daro OmniRoute patikimą ir funkcionalų. Svarbus kiekvienas pull request, kiekvienas testo atvejis ir kiekvienas i18n vertimo failas. Atvirąjį kodą kuria būtent tokie žmonės.
---
## 💖 Rėmėjai
Nuoširdžiai dėkojame žmonėms, kurie finansuoja „OmniRoute“ iš savo kišenės — kiekvienas indėlis padeda projektui išlikti nemokamam, nepriklausomam ir toliau vystytis.
… ir kiti, pageidaujantys išlikti nevieši 💛Vieši „GitHub Sponsors“ duomenys buvo pakartotinai patikrinti 2026-10-18 naudojant „GitHub Sponsors GraphQL API“: 11 viešų rėmimų (6 aktyvūs, 5 ankstesni) iš 14 iš viso. „GitHub“ būsena isActive lemia pirmiau pateiktas aktyvumo žymas; ankstesniems viešiems vienkartiniams rėmėjams ir toliau dėkojama, o nevieši rėmėjai lieka anonimiški. „Ko-fi“, „Buy Me a Coffee“, „Liberapay“, PIX ir kriptovaliutų aukos sąraše nepateikiamos, nes nėra viešų įrašų apie šiuos rėmėjus.💖 Tapkite rėmėju → — kiekvienas doleris padeda „OmniRoute“ išlikti nemokamam ir nepriklausomam.
## 👥 900+ bendraautorių
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Auditas atliktas 2026-10-18 pagal tuo metu aktualią release/v3.8.52 viršūnę ad160ab2d1 (6 826 įsipareigojimai): 993 normalizuotos žmonių Git tapatybės — 707 nurodytos kaip įsipareigojimų autoriai (įskaitant prižiūrėtoją), o 286 nurodytos tik aiškiose Co-authored-by pabaigos eilutėse. Atliekant apskaitą taikomas .mailmap, el. pašto adresai lyginami neskiriant didžiųjų ir mažųjų raidžių, skaitiniai ir įprasti GitHub „noreply“ adresai sujungiami tik tada, kai juose užkoduotas tas pats naudotojo vardas, neįtraukiamos 26 botų, agentų, paslaugų ir vietos rezervavimo tapatybės, o įprasti el. pašto adresai nesujungiami vien todėl, kad sutampa jų rodomi vardai. 2026-08-24 audite buvo paskelbti 639 bendraautoriai; pakartotinai pritaikius šį metodą to audito bazinei versijai ac02c5b42f, gaunami 619 bendraautorių, todėl jų skaičius išaugo dėl naujų bendraautorių, o ne dėl mažiau griežto metodo.
### Kaip prisidėti
1. Sukurkite saugyklos kopiją
2. Sukurkite šaką nuo **aktyvios** `release/vX.Y.Z` viršūnės (ne nuo `main`) — žr. [Šakų ir leidimų modelį](docs/ops/BRANCHING_MODEL.md)
3. Sukurkite savo funkcionalumo šaką (`git checkout -b feat/amazing-feature`)
4. Įsipareigokite atliktus pakeitimus (`git commit -m 'feat: add amazing feature'`)
5. Nusiųskite pakeitimus į šaką (`git push origin feat/amazing-feature`)
6. Atidarykite Pull Request, nustatę **base = atitinkama `release/vX.Y.Z` šaka**
Išsamias gaires rasite faile [CONTRIBUTING.md](CONTRIBUTING.md).
### Naujos versijos išleidimas
```bash
# Sukurkite leidimą — npm publish vykdomas automatiškai
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Žvaigždutės
## 🌍 StarMapper
## 🙏 Padėkos
„OmniRoute“ stovi ant milžinų pečių. Projektas prasidėjo kaip **[9router](https://github.com/decolua/9router)** atšaka ir Go projekto **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** TypeScript versija, o vėliau kiekvieną toliau nurodytą posistemę įkvėpė atvirojo kodo projektas, kuris tai įgyvendino pirmiau. Kiekvienas jų padėjo suformuoti konkrečią „OmniRoute“ dalį. Taip dėkojame jiems visiems. 🙏
> ⭐ žvaigždučių skaičius patikrintas naudojant GitHub REST API 2026 m. spalio 18 d. — skirkite šiems projektams po žvaigždutę. Šie skaičiai yra tiksli konkrečios datos momentinė kopija ir laikui bėgant natūraliai keisis.
### 🧬 Kilmė ir tinklų sietuvas
DI tinklų sietuvas, kurio viešas kainodaros duomenų rinkinys naudojamas mūsų sąnaudų stebėjimo sinchronizavimui, o teikėjų normalizavimo modelis padėjo suformuoti mūsų maršruto parinkimą.
MIT šaltinio kodas, pritaikytas į projektą įtrauktam ChatGPT Web → Codex Responses tiltui, įskaitant naršyklės seanso, atsakymų kadravimo, naudojimo ir žiniatinklio paieškos adapterius.
Pagrindinis netiesioginis grok2api-merged kodo šaltinis; jo modelių, antraščių, naudingosios apkrovos, Statsig ir apdorojimo modulių realizacijos išsaugotos Grok Web kilmės grandinėje.
Pamatinis MIT šaltinio kodas, skirtas numatytosioms Grok naudingosios apkrovos ir įrenginių nuostatoms, Statsig generatoriui bei per TQZHR ir grok2api-merged perimtam result.response apdorojimo moduliui.
Netiesioginis šaltinis, kurį grok2api-merged nurodo kaip savo tarpinių serverių telkinio sluoksnio pagrindą; „OmniRoute“ išsaugo šį kilmės paminėjimą, tačiau neteigia perkėlusi tarpinių serverių telkinį į savo ribotos apimties Grok Web vykdymo modulį.
Jo slapukais autentifikuojamas Grok tarpinis serveris ir result.response.token srautinio perdavimo šablonas padėjo suformuoti „OmniRoute“ Grok Web perdavimo sluoksnį.
Kuriant pradinę Grok Web realizaciją buvo remiamasi jo HTTP / naršyklės išorinės sistemos architektūra; jo tiesioginis HTTP kelias sukurtas GrokProxy pagrindu, todėl neteigiama, kad kodas buvo perkeltas savarankiškai.
### 🗜️ Konteksto ir prieigos raktų glaudinimas — varikliai
Virusinis projektas „kam naudoti daug žetonų, kai užtenka kelių“ — jo urvinio žmogaus kalbos filosofija yra mūsų standartinio glaudinimo režimo ir daugiau nei 30 perteklinių žodžių šalinimo bei sutraukimo taisyklių pagrindas.
PT-BR žetonų glaudinimas — yra mūsų pt-BR kalbos paketo pagrindas: pleonazmų mažinimas ir perteklinių žodžių šalinimas, pritaikyti Brazilijos portugalų kalbos gramatikai.
Jo į veiksmą orientuotas, ADHD turintiems žmonėms pritaikytas atsakymų stilius buvo pritaikytas glaustam OmniRoute išvesties stiliui penkiomis kalbomis.
### 🧩 Kompaktiški formatai, žetonų tyrimai ir kodą atpažįstančios priemonės
Į turinį atsižvelgiantis kiekvieno failo tipo išvesties glaudinimas su sutrikimus įvertinančiu atsisakymu — patvirtino mūsų nukreipimą pagal tipą ir praleidimą nepasiekus minimalaus laimėjimo.
Rust stulpelinis JSON, turiniu adresuojamas gavimas ir pasikartojimų šalinimas tarp pranešimų — patvirtino mūsų headroom/ccr/session-dedup variklių dizainą ir podėlio stabilumo invariantą „suglaudinta forma nepriklauso nuo pozicijos“.
TypeScript Compiler API priemonių rinkinys — įkvėpė mūsų analizatoriumi pagrįstą komentarų šalinimą, išsaugantį eilučių, šablonų ir reguliariųjų reiškinių literalus.
Programavimo asistento ↔ LLM srauto MITM perėmimas ir analizė padėjo suformuoti pradinius Traffic Inspector reikalavimus. Keturi anksčiau išvestiniai moduliai — SSE sujungimas, pokalbių normalizavimas, paslapčių maskavimas ir antraščių išvalymas — buvo pakeisti nepriklausomais „švaraus kambario“ principais sukurtais įgyvendinimais, pagrįstais viešaisiais protokolų standartais. Dvi pagrindinio kompiuterio tiesioginio praleidimo sąsajos (passthrough.ts ir _internal/bypass.cjs) tebėra nepriklausomai klasifikuojami vidiniai OmniRoute įgyvendinimai; atliekant šį pakeitimą jos nebuvo perrašytos.
Skaidrusis kiekvieno proceso tarpinio serverio maršruto parinkimas — įkvėpė mūsų gedimams atsparų MITM išjungimą, neaktyvių lizdų skirtąjį laiką, procesų priskyrimą naudojant /proc ir TPROXY srauto perėmimą.
### 📚 Modelių duomenys, stebimumas ir naudotojo sąsaja
Atrinktas pagal numatytuosius nustatymus saugių bibliotekų sąrašas, kuriuo vadovaujamės priimdami saugumo sprendimus (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Jo į paskyras orientuotas modelių persiejimas, vykdomųjų failų kelių tikrinimas ir planų etikečių veikimas padėjo suformuoti OmniRoute Antigravity vykdymo aplinką.
Nustatė Grok Build kvotos sąsają; tada OmniRoute nepriklausomai patikrino ir pataisė faktinį perdavimo formatą.
## 📄 Licencija
MIT licencija – išsamesnę informaciją rasite [LICENSE](LICENSE).
---
**[⬆ Grįžti į viršų](#-omniroute)** · Sukurta su ❤️ atvirojo kodo AI bendruomenei.
OmniRoute v3.8.53 · Node ≥22.22.2 · MIT licencija · omniroute.online