## 💰 ~1,62 mlrd. žetonų per mėnesį iš trečiųjų šalių nemokamų planų
> **Naudokite savo paslaugų teikėjų paskyras.** Tai yra apskaičiuota bendra atskirai prieinamų trečiųjų šalių nemokamų planų apimtis, o ne „OmniRoute“ suteikiami žetonai. Užsiregistruokite, prireikus gaukite prisijungimo duomenis ir prijunkite paslaugų teikėjus, kuriais galite naudotis; kiekvienas paslaugų teikėjas pats nustato savo limitus, prieinamumą ir sąlygas.
>
> Rankiniu būdu sujungti nemokamus planus sudėtinga — dešimtys SDK, dešimtys užklausų dažnio apribojimų ir jokio aiškumo, kiek išteklių iš tikrųjų turite. „OmniRoute“ kataloge yra **467 nemokamų planų įrašai, priklausantys 34 pasikartojančių telkinių raktams**, o bendras žetonų skaičius apskaičiuojamas pagal **17 telkinių su paskelbtu teigiamu mėnesiniu biudžetu ir penkis atskirų „Groq“ modelių limitus**, pašalinant bendrų telkinių dubliavimą. Kvotos, kurios suteikiamos tik patvirtinus regioninę tapatybę (šiuo metu: „ModelScope“), rodomos atskirai — dar ~6 mln. po regioninės tapatybės patvirtinimo — ir niekada neįtraukiamos į pagrindinį skaičių. Rezultatas visada matomas valdymo skydelyje (`/dashboard/free-tiers`).
> Tiesioginio `/dashboard/free-tiers` puslapio animuota santrauka. Visa metodika (telkinių dubliavimo šalinimas, kreditų lygiai, paslaugų teikėjų sąlygos): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Šie skaičiai kas dvi savaites pakartotinai tikrinami pagal tiesioginį katalogą ir **gali kisti abiem kryptimis** — paslaugų teikėjui nutraukus nemokamą planą, skaičius sumažėja; atsiradus naujam, jis padidėja. Skelbiame tai, ką iš tikrųjų apskaičiuoja katalogas, o ne suapvalintą optimistinį variantą.
⭐ Pažymėkite saugyklą žvaigždute, jei OMNIROUTE padėjo sutaupyti pinigų ir palengvino 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 projekto prižiūrėtoją — pirmieji sužinokite apie naujus paslaugų 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, patarimai apie paslaugų teikėjus, veiksmų planas ir pagalba → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Pasaulinė grupė](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)**
## 📈 Tinklų sietuvas toliau auga
## 🆓 Įdiekite, prijunkite teikėją ir nukreipkite 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!"}]}'
```
Norint naudoti `auto`, reikalingas tinkamas maršrutas. Naujoje įdiegtyje gali nebūti tinkamų paskirties vietų, kurioms nereikia rakto, o rakto nereikalaujantis teikėjas gali atmesti trečiųjų šalių klientus. Teikėjai, pažymėti `tos: avoid`, įskaitant Kiro, pagal numatytuosius nustatymus neįtraukiami į automatinį maršruto parinkimą; paskyros prijungimas šio nustatymo nepakeičia. Prieš pasirinkdami teikėją, peržiūrėkite [nemokamų planų vadovą](docs/getting-started/FREE-TIERS-GUIDE.md).📦 Nukopijuojami ir įklijuojami greitojo paleidimo scenarijai, 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 svarbiausi pakeitimai nuo **v3.8.20 → v3.8.52**. Visa istorija pateikta faile [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted` maršruto parinkimas** — 20-oji kombinuotoji strategija praleidžia paskyras, kurių kvota išnaudota, tada iš likusių renkasi proporcingai pagal likusią kvotą ÷ vykdomą apkrovą, o esami pokalbiai lieka susieti su tuo pačiu maršrutu. → [Automatiniai deriniai](docs/routing/AUTO-COMBO.md)
- **🧰 Begalvė veiksena** — `omniroute serve --headless` (arba `OMNIROUTE_HEADLESS=1`) paleidžia tik `/v1/*` tarpinio serverio modulį, išjungdamas valdymo skydelį ir tik jam skirtas posistemes. → [Begalvė veiksena](docs/guides/HEADLESS.md)
- **🔎 Modelių aptikimas** — `/v1/models` filtruoja pagal galimybes, kontekstą, rūšį ir tekstą, o `POST /v1/models/query` grąžina trumpą deterministinį sąrašą, išlaikydamas tą patį kiekvienam raktui taikomą matomumą. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🔑 Maršruto valdymas pagal raktą** — susiekite API raktą su vienu modeliu ar deriniu naudodami `forcedModel` ir atomiškai pridėkite arba pašalinkite rakto modelius bei derinius (`/api/keys/{id}/access`). → [API žinynas](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Detalesnis AID valdymas** — pasirinkimas pagal tipą, iki 20 patikrintų pasirinktinių maskavimo šablonų ir aptikimo skaitikliai pagal tipą; pats maskavimas vis tiek įjungiamas pasirinktinai. → [Apsaugos priemonės](docs/security/GUARDRAILS.md)
- **🌍 67 kalbos** — valdymo skydeliui, dokumentacijos kopijoms ir CLI; `npm run i18n:add-locale` viena komanda prideda kalbą visur. → [i18n vadovas](docs/guides/I18N.md)
- **🎛️ OmniConductor** — gaunamų A2A užduočių perdavimas jūsų agentų parkui, Conductor gebėjimai Agent Card kortelėje ir valdymo skydelio skydelis su Faro tiesioginiu balso pokalbiu paspaudus ir kalbant. → [A2A serveris](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptyvus priėmimas ir apsauga nuo perkrovos** — daug išteklių naudojančios pokalbių užklausos statomos į eilę, užuot grąžinus 503, o kiekvienam ryšiui taikomos atominės slenkančios RPM nuomos. → [Atsparumo vadovas](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanoninė `/v1/models` tvarka** — kiekvienam teikėjui skiriamas vienas vientisas blokas, sugrupuotas pagal teikėją (deriniai pateikiami pirmiausia), išliekantis stabilus visuose katalogo šaltiniuose. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🗜️ Sustiprintas glaudinimas** — pagal numatytąsias nuostatas įjungta išskleidimo apsauga, Caveman paketai vokiečių / prancūzų / japonų ir kinų (wényán) kalboms, RTK filtrai, skirti Gradle ir .NET. → [Glaudinimas](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Sąžininga fiksuoto tarifo kaina** — prenumeratos / programavimo plano teikėjų sąnaudų analizėje rodoma **$0**; biudžeto, kvotos ir maršruto parinkimo skaičiavimai tęsiami. → [API žinynas](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share maršruto parinkimas** — bendros paskyros kvota teisingai padalijama tarp sugrupuotų raktų, o nenaudojamos dalys perskiriamos kitiems. → [Atsparumo vadovas](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI / agentų sąranka viena komanda** — 15 užregistruotų `setup-*` komandų; `omniroute run` paleidžia 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` palaiko 11 paskirties sistemų su interaktyvia teikėjo ir modelio parinktimi bei kiekvienam kontekstui priskiriamais parankiniais. → [CLI integracijos](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Nuotolinė veiksena** — valdykite nuotolinę OmniRoute naudodami aprėpties žetonus (`connect` / `contexts` / `tokens`) ir `antigravity` OAuth pagalbinę priemonę, skirtą VPS diegimams. → [Nuotolinė veiksena](docs/guides/REMOTE-MODE.md)
- **🧭 Išmanesnis automatinis maršruto parinkimas** — `auto/:` deriniai, **Fusion** (modelių grupė ir vertintojas), pagal užduotį pritaikomas maršruto parinkimas, kiekvienos užklausos modelio / veiksenos / USD biudžeto perrašymas. → [Automatiniai deriniai](docs/routing/AUTO-COMBO.md)
- **🗜️ Modulinis glaudinimas** — 12 komponuojamų modulių ir Compression Studios: LLMLingua-2, dviejų pakopų Ultra, omniglyph, kiekvieno žingsnio tikslumo patikra, GCF v3.2, vilkimu pertvarkomas redaktorius. → [Glaudinimas](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Skaidrus MITM iššifravimas (TPROXY)** — perimkite CLI, nepaisančias tarpinio serverio aplinkos kintamųjų, naudodami kiekvienam SNI skirtą CA ir patikimų sertifikatų saugyklos diegimo priemonę. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Sąnaudų telemetrija visur** — `X-OmniRoute-*` sąnaudų / naudojimo antraštės kiekviename galiniame taške, sutaupymo dėl pataikymo į podėlį antraštė ir kiekvieno rakto išlaidų USD kvotos. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🧠 Jūsų valdoma atmintis** — pagal numatytąsias nuostatas išjungta, pasirinktinai įjungiama int8 vektorių kvantizacija ir tipizuotas nykimas, kiekvienai užklausai skirtas `x-omniroute-no-memory`. → [Atmintis](docs/frameworks/MEMORY.md)
- **🛡️ Saugumas** — raginimo injekcijų apsauga kiekviename LLM maršrute (red-team testų rinkinys), pasirinktinai įjungiama kredencialų maskavimo apsaugos priemonė (abiem kryptimis redaguoja nutekėjusius API raktus / paslaptis), nemokama DuckDuckGo žiniatinklio paieška kraštutiniu atveju ir pasirinktinis OIDC prisijungimo barjeras valdymo skydeliui (prisijungimas slaptažodžiu visada lieka prieinamas). → [Apsaugos priemonės](docs/security/GUARDRAILS.md)
- **🖼️ Nauji galiniai taškai** — `/v1/ocr` (Mistral OCR) ir `/v1/audio/translations` (Whisper stiliaus) papildo medijos funkcijas. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🎨 Vaizdų / vaizdo įrašų / garso generavimas** — viena API medijai: xAI Grok Imagine ir Novita AI vaizdo įrašai, ComfyUI, Magnific, Adobe Firefly, Segmind bei kalbos paslaugų teikė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ą, šakninės prieigos nereikalaujantis MITM pasitikėjimo nustatymas, zh-TW lokalizacija. → [Aplinka](docs/reference/ENVIRONMENT.md)
- **🤝 Daugiau teikėjų ir agentų** — debesijos agentai (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) su naršykle ir OAuth prisijungimu, visavertė Ollama kortelė, Claude Opus 5 ir Sonnet 5, oficiali partnerystė su Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… ir atnaujintas **375 teikėjų katalogas**. → [Teikėjai](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Maršruto parinkimo skaidrumas** — kiekviename atsakyme pateikiama `X-OmniRoute-Decision` antraštė, nurodanti jį aptarnavusią strategiją / teikėją / delsą; nauja `cache-optimized` derinių strategija ir Auto-Combo `cacheAffinity` koeficientas pakartotines užklausas nukreipia į ryšį, kuriame saugomas podėlyje esantis prefiksas, o tik skaitymui skirtas `/v1/auto-combo/{channel}/candidates` galinis taškas pateikia tiesioginį `auto/*` kanalo kandidatų telkinį. → [Automatiniai deriniai](docs/routing/AUTO-COMBO.md)
- **⚡ Vietinis našumas ir infrastruktūra** — vienu spustelėjimu paleidžiamas vietinis Redis, Cloudflare Workers / Deno Deploy perdavimo tarnybų diegimo priemonės, Bifrost ir Mux kaip prižiūrimos įterptosios paslaugos. → [Įterptosios paslaugos](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Taip pat įtraukta** — papildinių sistema ir prekyvietė, Omni/Agent/GitHub įgūdžių sistemos, Obsidian saugyklos integracija (22 MCP įrankiai), su OpenAI suderinamos Batch ir Files API, semantinė atsakymų podėlinė, žaidybinimas su lyderių lentelėmis, ACP agentų aptikimas (15 integruotų agentų), suplanuotas žurnalų eksportavimas į BigQuery, `auto/chaos` lygiagretus užklausų paskirstymas keliems modeliams, Telegram roboto tiltas, programėlėje integruota versijų tvarkyklė 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 DI teikėjai — 153 kataloge pažymėti kaip nemokami
> **375 registruoti teikėjai** kanoniniuose pokalbių, medijos, paieškos, vietinių, debesijos agentų ir sistemos rinkiniuose, įskaitant **153 su `hasFree: true` aptikimo metaduomenimis**. Pokalbių modelių registre yra **239 teikėjai / 3 059 skirtingos teikėjo ir modelio poros / 1 475 neapdoroti modelių ID**; atskirame nemokamų limitų kataloge yra **467 kiekvienam modeliui skirtos eilutės**, **34 periodiškai atnaujinami išteklių fondai** ir **52 periodiškai atnaujinami arba rakto nereikalaujantys visam laikui nemokami teikėjai**. Šie vardikliai skiriasi sąmoningai; apibrėžtys ir skaičiavimai, kuriuose išteklių fondų dublikatai pašalinti, pateikti [Teikėjų žinyne](docs/reference/PROVIDER_REFERENCE.md) ir [Nemokamuose planuose](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 daugiau nei 350 — kiekviena piktograma tiesiogiai gaunama iš valdymo skydelio teikėjų katalogo. 📖 [Teikėjų žinynas](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Nemokamai visam laikui — $0, kortelės nereikia
OpenCode Zen DeepSeek V4, Nemotron 3 Be žetonų limito
Kilo Code Automatinis maršrutizatorius, Tencent Hy3 Nemokamai visam laikui
Requesty GPT-OSS 120B, Nemotron Nemokamai visam laikui
SiliconFlow DeepSeek V3.2 / R1 Nemokamas planas
Z.AI GLM GLM-4.7 / 4.5-Flash Nemokamai visam laikui
Baidu ERNIE ERNIE 4.0 Nemokamai visam laikui
Qoder AI Qwen3-Max, Kimi-K2 NERIBOTAI ir NEMOKAMAI
Pollinations GPT, Llama, Claude Rakto nereikia
Cloudflare AI 50+ modelių 10 tūkst. neuronų per dieną
NVIDIA NIM GLM, MiniMax ~40 RPM nemokamai
Cerebras GLM 4.7, GPT-OSS Vienkartinis $5 kreditas; būtina kortelė
OpenRouter :free modeliai +$10 → didesnis RPM
📖 Visas kompiuterio skaitomas katalogas → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Kur veikia OmniRoute — bet kur
> Ta pati programa, jūsų įrenginys, jūsų taisyklės. Nuo visuotinio npm diegimo iki **jūsų telefono** naudojant Termux.
Platforma
Diegimas
Privalumai
📦 npm (visuotinis)
npm install -g omniroute
Viena komanda, bet kuri OS
🐳 Docker
docker run … diegosouzapw/omniroute
Kelių architektūrų palaikymas: AMD64 + ARM64
🖥️ Darbalaukis (Electron)
npm run electron:build
Savasis langas + sistemos dėklas — Windows / macOS / Linux
🎩 Meniu juosta (OmniRouteTray)
brew install --cask zoispag/tap/omniroute-tray
Prižiūri ir automatiškai atnaujina serverį — macOS
💪 ARM
savasis arm64
Raspberry Pi, ARM serveriai, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Veikia jūsų telefone visą parą, root teisių nereikia
📲 PWA
„Pridėti prie pradžios ekrano“
Visas ekranas, veikia neprisijungus, galima įdiegti iš naršyklės
🧩 OpenCode papildinys
@omniroute/opencode-provider
Tiesioginė OpenCode integracija
🤖 VS Code Copilot Chat
įdiekite OmniCopilot plėtinį
Kiekvienas OmniRoute modelis savajame Copilot Chat parinkiklyje — stabiliojoje ir Insiders versijose
### 🧩 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 — konvejeris, architektūra ir sutaupymo skaičiavimai
Numatytasis sudėtinis derinys vykdo `RTK → Caveman`. Kai abu taikomi tam pačiam įrankio / konteksto naudingajam turiniui, sutaupymas 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 išsaugojimo variklio yra **visada apsaugomi**.
> **Kam naudoti daug žetonų, jei pakanka kelių?** Kiekviena užklausa pereina per „OmniRoute“ glaudinimo konvejerį **skaidriai** — klientui nieko keisti nereikia. Dabar tai yra **12 komponuojamų variklių rinkinys**, vykdomas nustatyta tvarka ir derinamas pagal kiekvieną maršruto parinkimo kombinaciją — jis pagrįstas [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) idėjomis.
### 🧱 12 variklių rinkinys
Varikliai vykdomi konvejerio tvarka; kiekvieną galima atskirai įjungti, išjungti ir konfigūruoti kiekvienam deriniui:
#
Variklis
Ką jis daro
1
Session-Dedup
Pašalina tarp užklausų pasikartojantį turinį (adresuojamą pagal turinį, apimantį kelias užklausas)
2
CCR
Archyvuoja didelius blokus už gavimo žymeklių, kad prireikus juos būtų galima gauti
3
Lite
Tarpų ir vaizdų URL apkarpymas (mažos delsos bazinis variantas)
4
RTK
Išmanus įrankių rezultatų filtravimas, pasikartojimų šalinimas ir trumpinimas (atsižvelgiant į komandą)
5
Responses Tool Output
Pirmiausia nenuostolingas JSON ir ribotas diagnostinis glaudinimas, taikomas apvalkalo / pataisų / paieškos / kūrimo išvestims (Responses API)
6
Headroom
Nenuostolingas lentelinis JSON masyvų sutankinimas (~30%) naudojant į projektą įtrauktą GCF kodeką
7
Relevance
Ištraukiamasis sakinių vertinimas pagal paskutinę naudotojo užklausą
Heuristinis žetonų genėjimas su pasirenkama mažojo modelio (SLM) pakopa
12
OmniGlyph
Eksperimentinis konteksto kodavimas kaip vaizdo, skirtas išmatuotam Claude Fable 5 tiesioginiame Anthropic kanale; GPT 5.6 transformatoriai tebėra uždaromi gedimo atveju, kol bus gauti tiekėjo patvirtinimai. Keturi glaudinimo profiliai (numatytasis agresyvus, subalansuotas, saugus programavimui, be pakeitimų) (agresyviausias; pasirenkamas)
Kodo blokai, URL ir struktūriniai duomenys **visada išsaugomi** baito tikslumu. **Vienu spustelėjimu pasirenkami išankstiniai nustatymai** sujungia variklius:
Režimas
Sutaupymas
Geriausiai tinka
🪶 Lite
~15%
Saugiam numatytajam režimui, kuris visada įjungtas
🪨 Standard (Caveman)
~30%
Kasdieniam programavimui
⚡ Aggressive
~50%
Ilgoms sesijoms, kuriose intensyviai naudojami įrankiai
🔥 Ultra
~75%
Didžiausiam sutaupymui
🧰 RTK
60–90%
Apvalkalo / testų / kūrimo / git išvesčiai
🔗 Stacked (RTK → Caveman)
78–95%
Mišrioms užklausoms ir įrankių žurnalams
**Tikras pavyzdys — Standard režimas:**
> **Prieš (69 žetonai):** _„Tikėtina, kad jūsų React komponentas atvaizduojamas iš naujo todėl, kad per kiekvieną atvaizdavimo ciklą sukuriate naują objekto nuorodą. Kai kaip savybę perduodate įterptąjį objektą, React paviršutiniškasis palyginimas kiekvieną kartą jį laiko kitu objektu, todėl suaktyvinamas pakartotinis atvaizdavimas. Rekomenduočiau objektui įsiminti naudoti useMemo.“_
>
> **Po (19 žetonų):** _„Kiekvieno atvaizdavimo metu — nauja objekto nuoroda. Įterptasis objekto parametras = nauja nuoroda = pakartotinis atvaizdavimas. Apgaubkite su useMemo.“_
>
> **Tas pats atsakymas. 72% mažiau žetonų. Jokio tikslumo praradimo.** ✅
**PT-BR pavyzdys — [Troglodita](https://github.com/leninejunior/troglodita) režimas:**
> **Prieš (42 žetonai):** _„Problema ta, kad komponentas atvaizduojamas iš naujo, nes per kiekvieną atvaizdavimo ciklą sukuriama nauja objekto nuoroda. Rekomenduočiau naudoti useMemo.“_
>
> **Po (12 žetonų):** _„Pakartotinis atvaizdavimas: nauja nuoroda kiekviename cikle (objektas eilutėje sukuriamas iš naujo). Naudoti `useMemo`.“_
>
> **Tas pats atsakymas. ~70 % mažiau žetonų. Techninis tikslumas išlaikytas.** ✅
### 🎚️ Daugiau nei varikliai — išvesties stiliai, adaptyvusis reguliatorius ir kiekvienos užklausos valdymas
12 pirmiau pateiktų variklių sumažina tai, kas patenka **į vidų**. Dar trys sluoksniai nustato, **kaip**, **kada** ir kas pateikiama **išorėje**:
- **🪄 Išvesties stiliai** _(valdymas pagal išvesties ašį)_ — įterpia deterministines, podėliui saugias atsakymo formavimo instrukcijas; jas galima derinti, kiekvienai pasirenkant `lite` / `full` / `ultra` intensyvumą. Stiliui pridėti pakanka vienos registro eilutės:
- **Glausta proza** — pašalina užpildantį tekstą / artikelius / abejojimą; tiksliai išlaiko techninę esmę.
- **Mažiau kodo** — „tingaus vyresniojo programuotojo“ YAGNI: mažiausias veikiantis pakeitimas, jokios neprašytos pagalbinės struktūros.
- **Arklio uodega (tingus vyresnysis programuotojas)** — kyla YAGNI pakopomis, pašalina pagrindinę priežastį, pateikia mažiausią veikiantį pakeitimų rinkinį.
- **Turiu ADHD (pirmiausia veiksmas)** — pradeda nuo kito veiksmo, sunumeruoja žingsnius, pateikia vieną konkretų kitą žingsnį, be įžangos.
- **Glausta CJK (文言)** — itin glaustas klasikinės kinų kalbos stilius (pagal lokalę apribotas iki `zh`).
- **🎯 Adaptyvusis konteksto biudžetas** _(reguliatorius)_ — užuot naudojus vieną įjungimo / išjungimo žetonų slenkstį, pigiausi ir mažiausiai nuostolingi varikliai palaipsniui įjungiami tik tiek, kiek reikia, kad turinys **tilptų į modelio konteksto langą**. Strategija: `reserve-output` (numatytoji, atsižvelgianti į modelį) · `percentage` · `absolute`. Režimas: `floor` (garantuoja sutalpinimą) · `replace-autotrigger` (pirmenybė teikiama jūsų aiškiam pasirinkimui) · `off` (senasis slenkstis).
- **🎛️ Kur priimamas glaudinimo sprendimas** _(pirmenybė nuo aukščiausios iki žemiausios)_ — kiekvienos užklausos `x-omniroute-compression` antraštė › maršruto derinio perrašymas › aktyvus pavadintas profilis › adaptyvusis / automatinis paleidimas › numatytoji skydelio nuostata › išjungta. Pritaikytas planas pakartojamas atsakymo antraštėje `X-OmniRoute-Compression: ; source=`.
Naudokite automatinį paleidimą pagal žetonų slenkstį, įjunkite adaptyvųjį reguliatorių, fiksuokite pavadintą profilį, nustatykite vienkartinę parinktį konkrečiai užklausai arba priskirkite konvejerį maršruto deriniui — rinkitės tai, kas geriausiai tinka darbo krūviui. Pasirenkama neprisijungus veikianti **vertinimo sistema** (`npm run eval:compression`) pagal fiksuotą duomenų rinkinį įvertina tikslumo ir sutaupymo santykį prieš įdiegiant 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)
# ⚡ Greitoji pradžia
**1) Įdiekite ir paleiskite**
```bash
npm install -g omniroute
omniroute
```
> 💡 Matote `npm warn ERESOLVE` arba lygiaverčių priklausomybių įspėjimus? [Jie nepavojingi](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Naudojate npm 11 arba naujesnę versiją?** npm gali blokuoti paketo gyvavimo ciklo scenarijus, nebent jie būtų leidžiami. OmniRoute `postinstall` (`node scripts/build/postinstall.mjs`) būtinas vietiniams vykdymo aplinkos failams paruošti. Diegdami globaliai leiskite npm įspėjime nurodytus paketus. OmniRoute 3.8.51 nurodytam paketų rinkiniui:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Norėdami šį leidžiamų paketų sąrašą pakartotinai naudoti būsimiems globaliems diegimams, vieną kartą jį sukonfigūruokite, o tada diekite įprastai:
>
> ```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 skirtingose laidose gali keistis; jei npm pateikia kitokį sąrašą, naudokite tame įspėjime nurodytus paketų pavadinimus. Suteikus paketui leidimą, gali būti vykdomi jo diegimo scenarijai.
> **Naudojate Gemini Web arba kitą žiniatinklio slapukų teikėją?** npm pakete yra
> Playwright, bet nėra jo Chromium dvejetainio failo. Prieš pateikdami pirmąją žiniatinklio teikėjo užklausą, perskaitykite
> [Playwright Chromium sąrankos](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> pastabą.
Valdymo skydelis pasiekiamas adresu `http://localhost:20128` · API pasiekiama adresu `http://localhost:20128/v1`.
**2) Prijunkite tinkamą teikėją naudodami savo paskyrą**
Valdymo skydelis → **Teikėjai** → pasirinkite teikėją, kurio dabartinės sąlygos ir kvota atitinka jūsų naudojimo atvejį → pridėkite jo API raktą arba užbaikite paskyros prijungimo procesą. Nemokamiems planams gali reikėti registracijos, patvirtinimo arba mokėjimo metodo. 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 numatytąsias nuostatas neįtraukiami į `auto`.
**3) Nukreipkite savo programavimo įrankį**
```txt
Bazinis URL: http://localhost:20128/v1
API raktas: [nukopijuokite iš Valdymo skydelis → Galiniai taškai]
Modelis: auto (parenkamas maršrutas tarp tinkamų jungčių — arba pasirinkite teikėją / modelį)
```
**4) Patikrinkite, ar viskas veikia**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Turėtumėte matyti prijungtų modelių sąrašą. 🎉 Štai ir viskas — pradėkite programuoti, o OmniRoute automatiškai parinks maršrutą ir prireikus atsarginį variantą.
Jei jūsų klientas negali siųsti pasirinktinių antraščių, OmniRoute taip pat pateikia su žetonais susietus suderinamumo alternatyviuosius adresus:
```txt
OpenAI katalogas: http://localhost:20128/vscode/YOUR_KEY/
OpenAI modeliai: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI pokalbiai: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI atsakymai: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama pokalbiai: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama žymos: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Juos naudokite tik klientams, kurie negali pridėti `Authorization: Bearer ...`. Autentifikavimas antrašte išlieka rekomenduojamas būdas.
## 📦 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.
Testų aprėpties strategija, skirta daugiau nei 56 000 statinių testų deklaracijų daugiau nei 7 800 sekamų testų failų
# ⭐ Daugiausiai prisidėję dalyviai
> „OmniRoute“ formuoja entuziastinga atvirojo kodo bendruomenė. Šie žmonės išskirtinai prisidėjo prie projekto ir tiesiogiai veikia jo kokybę, stabilumą bei pasiekiamumą. **Ačiū.**
### Išoriniai dalyviai pagal sujungtas PR užklausas
Duomenys surinkti 2026-10-18 15:09:09 UTC pagal tuo metu aktualią release/v3.8.52 viršūnę 656f01cb43. Puslapiais suskirstyti „GitHub GraphQL“ duomenys apima 9 191 sujungtą PR užklausą: 3 834 pateikė saugyklos savininkas, 229 – „Dependabot“, 6 – kiti robotai ar programos, o 5 122 išorines PR užklausas pateikė 835 skirtingi dalyviai. „Pakeistos eilutės“ – tai „GitHub“ pridėtų ir pašalintų eilučių suma, apimanti sugeneruotus failus, užrakinimo failus, katalogus, vertimus ir dokumentaciją; tai pakeitimų apimtis, o ne autoriaus parašytų kodo eilučių skaičius. 49 PR užklausų „GitHub“ skirtumai viršija 500 000 eilučių (pavyzdžiui, #13399, kuria pridėtas vienas teikėjas, nurodyti 2 347 pakeisti failai), todėl kai kurios pirmiau pateiktos sumos yra išpūstos. Vienodus rezultatus turintiems dalyviams skiriama ta pati vieta.
### „GitHub“ priskirti įsipareigojimai
Pakartotinai patikrinta 2026-10-18 14:44:45 UTC: saugyklos bendraautorių API nurodyti GitHub priskirti įnašai numatytojoje release/v3.8.52 šakoje. API grąžino 849 tapatybes (429 naudotojus, 2 robotus, 418 anoniminių tapatybių); šioje lentelėje neįtraukti prižiūrėtojas, robotai ir anoniminės tapatybės, o vienodą rezultatą pasiekę dalyviai išsaugoti. Ji skiriasi ir nuo pirmiau pateikto sujungtų PR reitingo, ir nuo toliau pateikto Git metaduomenų surašymo.
> 🙏 Šių bendraautorių sukurtos funkcijos, klaidų pataisymai ir infrastruktūros patobulinimai yra **esminė dalis** to, kas daro OmniRoute patikimą ir turtingą funkcijų. Kiekviena pakeitimų užklausa, kiekvienas testavimo atvejis ir kiekvienas i18n vertimo failas yra svarbūs. Atvirąjį kodą kuria tokie žmonės kaip jie.
---
## 💖 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ą.