# 🚀 OmniRoute — Nemokami AI vartai
**Sukūrė [Diego Souza](https://github.com/diegosouzapw)**
## 💰 ~1,62 mlrd. žetonų / mėn. trečiųjų šalių nemokamuose planuose
> **Naudokite savo tiekėjų paskyras.** Tai yra apskaičiuota bendra suma iš atskirai tinkamų naudoti trečiųjų šalių nemokamų planų, o ne OmniRoute suteikiamas žetonų kreditas. Užsiregistruokite, prireikus gaukite prisijungimo duomenis ir prijunkite galimus naudoti tiekėjus; kiekvienas tiekėjas kontroliuoja savo limitus, prieinamumą ir sąlygas.
>
> Nemokamų planų sudėjimas rankiniu būdu yra varginantis — dešimtys SDK, dešimtys užklausų dažnio limitų ir jokio aiškumo, kiek iš tikrųjų turite. OmniRoute kataloguoja **465 nemokamo plano įrašus pagal 34 pasikartojančius telkinio raktus** ir apskaičiuoja žetonų antraštėje rodomą skaičių pagal **17 telkinių, kuriems paskelbtas teigiamas mėnesio biudžetas, bei penkis kiekvienam modeliui taikomus Groq limitus**, juos deduplikuodama pagal bendrą telkinį. Kvotos, kurios atidaromos tik patikrinus regioninę tapatybę (šiuo metu: ModelScope), rodomos atskirai — +~6 mln. po regioninės tapatybės patvirtinimo — ir niekada neįtraukiamos į antraštėje rodomą sumą. Rezultatas lieka matomas skydelyje (`/dashboard/free-tiers`).
> Animacinė tiesioginio `/dashboard/free-tiers` puslapio santrauka. Visa metodika (telkinių deduplikavimas, kreditų pakopos, tiekė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 **gali tiek didėti, tiek mažėti** — tiekėjui nutraukus nemokamą planą, skaičius sumažėja; atsiradus naujam, jis padidėja. Skelbiame tai, ką katalogas iš tikrųjų apskaičiuoja, o ne suapvalintą geriausią scenarijų.
⭐ 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 prižiūrėtoją — pirmieji sužinokite apie naujus tiekė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 tiekėjus, veiksmų planas ir pagalba → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](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)**
## 📈 Šliuzas toliau auga
## 🆓 Įdiekite, prijunkite teikėją ir nukreipkite per vieną galinį punktą
```bash
# Prijungę teikėją, nukopijuokite 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!"}]}'
```
`auto` reikia tinkamo maršruto. Naujai įdiegtoje sistemoje gali nebūti tinkamų tik raktu pagrįstų taikinių, o teikėjas, nereikalaujantis rakto, gali atmesti trečiųjų šalių klientus. Teikėjai, pažymėti `tos: avoid`, įskaitant Kiro, pagal numatytuosius nustatymus neįtraukiami į automatinį maršrutų 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).📦 Greitosios pradžios scenarijai, kuriuos galima nukopijuoti 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 kiekvienos funkcijos informacija, 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.54**. Visa istorija pateikiama faile [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted` maršrutizavimas** — 20-oji kombinuotoji strategija praleidžia išnaudotas paskyras, tada iš likusių renkasi proporcingai likusiai kvotai ÷ vykdomų užklausų apkrovai, išlaikydama esamų pokalbių susiejimą. → [Automatiniai deriniai](docs/routing/AUTO-COMBO.md)
- **🧰 Režimas be grafinės sąsajos** — `omniroute serve --headless` (arba `OMNIROUTE_HEADLESS=1`) paleidžia tik `/v1/*` tarpinio serverio modulį, išjungdamas valdymo skydą ir tik jam skirtus posistemius. → [Režimas be grafinės sąsajos](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šą su tokiu pačiu matomumu pagal raktą. → [API nuoroda](docs/reference/API_REFERENCE.md)
- **🔑 Maršrutizavimo valdymas pagal raktą** — susiekite API raktą su vienu modeliu arba deriniu naudodami `forcedModel`, taip pat atominiu būdu pridėkite arba pašalinkite rakto modelius ir derinius (`/api/keys/{id}/access`). → [API nuoroda](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Tikslesni PII valdikliai** — pasirinkimas pagal tipą, iki 20 patvirtintų pasirinktinių maskavimo šablonų ir aptikimo skaitikliai pagal tipą; pats maskavimas išlieka pasirenkamas. → [Apsaugos priemonės](docs/security/GUARDRAILS.md)
- **🌍 67 kalbos** — valdymo skydas, dokumentacijos veidrodžiai ir CLI, o `npm run i18n:add-locale` viena komanda prideda kalbą visur. → [i18n vadovas](docs/guides/I18N.md)
- **🎛️ OmniConductor** — įeinantis A2A delegavimas jūsų agentų flotilei, Conductor gebėjimai Agent Card kortelėje ir valdymo skydo skydelis su Faro tiesioginio pokalbio balsu funkcija. → [A2A serveris](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptyvus priėmimas ir perkrovos apsauga** — didelės apimties pokalbių užklausos patenka į eilę, užuot grąžinusios 503, o kiekvienam ryšiui taikomos atominės slenkančios RPM nuomos. → [Atsparumo vadovas](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanoninė `/v1/models` tvarka** — vienas vientisas pagal teikėją sugrupuotas blokas kiekvienam teikėjui (deriniai pateikiami pirmiausia), stabili tvarka visuose katalogo šaltiniuose. → [API nuoroda](docs/reference/API_REFERENCE.md)
- **🗜️ Suspaudimo sustiprinimas** — pagal numatytuosius nustatymus įjungta išsipūtimo apsauga, Caveman paketai DE / FR / JA ir kinų (wényán) kalboms, RTK filtrai Gradle ir .NET. → [Suspaudimas](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Sąžininga fiksuoto tarifo kaina** — prenumeratos / programavimo plano teikėjų kainų analizėje rodoma **$0**; biudžetas, kvota ir maršrutizavimas toliau atlieka sąmatas. → [API nuoroda](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share maršrutizavimas** — sąžiningai paskirsto bendros paskyros kvotą telkiamiems raktams, užtikrindamas darbo tęstinumą, kad nenaudojamos dalys būtų paskolinamos. → [Atsparumo vadovas](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI / agentų sąranka viena komanda** — 15 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 interaktyviu teikėjo ir modelio parinkikliu bei parankiniais pagal kontekstą. → [CLI integracijos](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Nuotolinis režimas** — valdykite nuotolinį OmniRoute naudodami ribotos aprėpties žetonus (`connect` / `contexts` / `tokens`) ir `antigravity` OAuth pagalbinę priemonę VPS diegimams. → [Nuotolinis režimas](docs/guides/REMOTE-MODE.md)
- **🧭 Išmanesnis automatinis maršrutizavimas** — `auto/:` deriniai, **Fusion** (modelių grupė + vertintojas), užduotims pritaikytas maršrutizavimas, pagal užklausą taikomi modelio / režimo / USD biudžeto pakeitimai. → [Automatiniai deriniai](docs/routing/AUTO-COMBO.md)
- **🗜️ Įskiepiamas suspaudimas** — 12 komponuojamų variklių ir Compression Studios: LLMLingua-2, dviejų lygių Ultra, omniglyph, kiekvieno veiksmo tikslumo vartai, GCF v3.2, redaktorius su elementų vilkimu ir pertvarkymu. → [Suspaudimas](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Skaidrus MITM iššifravimas (TPROXY)** — fiksavimo CLI, kurie ignoruoja tarpinio serverio aplinkos kintamuosius, su atskiru CA pagal SNI ir patikimos saugyklos diegimo programa. → [MITM / TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Išlaidų telemetrija visur** — `X-OmniRoute-*` išlaidų ir naudojimo antraštės kiekviename galiniame taške, talpyklos pataikymo santaupų antraštė, USD išlaidų kvotos pagal raktą. → [API nuoroda](docs/reference/API_REFERENCE.md)
- **🧠 Jūsų valdoma atmintis** — pagal numatytuosius nustatymus išjungta, pasirenkamas int8 vektorių kvantavimas ir tipizuotas nykimas, kiekvienai užklausai skirtas `x-omniroute-no-memory`. → [Atmintis](docs/frameworks/MEMORY.md)
- **🛡️ Saugumas** — apsauga nuo prompt injekcijų kiekviename LLM maršrute (red-team testų rinkinys), pasirenkama prisijungimo duomenų maskavimo apsauga (užmaskuoja nutekėjusius API raktus ir paslaptis abiem kryptimis), nemokama DuckDuckGo paskutinės išeities žiniatinklio paieška ir pasirenkami OIDC prisijungimo vartai valdymo skydui (prisijungimas slaptažodžiu visada lieka pasiekiamas). → [Apsaugos priemonės](docs/security/GUARDRAILS.md)
- **🖼️ Nauji galiniai taškai** — `/v1/ocr` (Mistral OCR) ir `/v1/audio/translations` (Whisper tipo) užbaigia medijos funkcijų rinkinį. → [API nuoroda](docs/reference/API_REFERENCE.md)
- **🎨 Vaizdų / vaizdo įrašų / garso generavimas** — viena medijos API: xAI Grok Imagine ir Novita AI vaizdo įrašai, ComfyUI, Magnific, Adobe Firefly, Segmind bei kalbos teikėjai, tokie kaip ElevenLabs. → [API nuoroda](docs/reference/API_REFERENCE.md)
- **🌍 Diegimas ir operacijos** — 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 teikėjų ir agentų** — debesijos agentai (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) su naršyklės ir OAuth prisijungimu, visavertė Ollama kortelė, Claude Opus 5 ir Sonnet 5, oficiali Kimi partnerystė (Code / Web / Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… ir atnaujintas **388 teikėjo katalogas**. → [Teikėjai](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Maršrutizavimo skaidrumas** — kiekviename atsakyme pateikiama `X-OmniRoute-Decision` antraštė, nurodanti strategiją, teikėją ir delsą, aptarnavusius užklausą; nauja `cache-optimized` derinio strategija ir Auto-Combo `cacheAffinity` faktorius nukreipia pasikartojančias užklausas atgal į ryšį, kuriame laikoma podėlyje esanti priešdėlio dalis; tik skaitymui skirtas `/v1/auto-combo/{channel}/candidates` galinis taškas atskleidžia 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 serverių diegikliai, „Bifrost“ ir „Mux“ kaip prižiūrimosios įterptosios paslaugos. → [Įterptosios paslaugos](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Taip pat įtraukta** — įskiepių 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ėlio sistema, žaidybinimas su lyderių lentelėmis, ACP agentų aptikimas (15 integruotų agentų), suplanuotas žurnalų eksportavimas į „BigQuery“, `auto/chaos` lygiagretus kelių modelių paskirstymas, „Telegram“ roboto sąsaja, programoje integruota versijų tvarkyklė ir nemokamų teikėjų reitingai pagal LMArena-ELO. → [Dokumentacija](docs/README.md)
## 🤖 Suderinami CLI ir programavimo agentai
> Viena konfigūracija — `http://localhost:20128/v1` — ir **kiekviena** AI IDE ar CLI veikia su nemokamais ir nebrangiais modeliais.
**Paleiskite bet kurį palaikomą CLI per OmniRoute viena komanda** — jokių konfigūracinių failų,
prisijungimo duomenys įterpiami kiekvienam procesui, Qwen/Gemini gauna laikiną izoliuotą namų katalogą:
```bash
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# Arba pasirinkite tiekėją+modelį interaktyviai ir parašykite įrankio nuosavą konfigūraciją:
omniroute configure codex # taip pat: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Kiekviena komanda gerbia aktyvų nuotolinį kontekstą (`omniroute connect `), `--dry-run`
leidžia peržiūrėti tikslią aplinką/argumentus nevykdant komandos, o `--api-key-env NAME` apsaugo
slaptus duomenis nuo patekimo į jūsų shell istoriją. → [CLI integracijos](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 388 AI teikėjai — 153 kataloge pažymėti kaip nemokami
> **388 registruotas teikėjas** kanoninėse pokalbių, medijos, paieškos, vietinėse, debesijos agentų ir sistemos kolekcijose, įskaitant **153 teikėjus, turinčius `hasFree: true` aptikimo metaduomenis**. Pokalbių modelių registre yra **239 teikėjai / 3 059 skirtingos teikėjo ir modelio poros / 1 475 neapdoroti modelių ID**; atskirame nemokamų planų kataloge yra **471 eilutė pagal modelį**, **34 pasikartojantys fondai** ir **52 pasikartojantys arba be rakto visam laikui nemokami teikėjai**. Tai skirtingi vardikliai pagal paskirtį; apibrėžimai ir pagal fondus deduplikuoti skaičiavimai pateikiami [Teikėjų žinyne](docs/reference/PROVIDER_REFERENCE.md) ir [Nemokamuose planuose](docs/reference/FREE_TIERS.md).
### 🏢 Kiekviena pagrindinė laboratorija — 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š prietaisų skydelio teikėjų katalogo. 📖 [Teikėjų žinynas](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Nemokamai visam laikui — 0 $, be kortelės
OpenCode Zen DeepSeek V4, Nemotron 3 Be žetonų limito
Kilo Code Automatinis maršrutizatorius, Tencent Hy3 Nemokama visam laikui
Requesty GPT-OSS 120B, Nemotron Nemokama visam laikui
SiliconFlow DeepSeek V3.2 / R1 Nemokamas planas
Z.AI GLM GLM-4.7 / 4.5-Flash Nemokama visam laikui
Baidu ERNIE ERNIE 4.0 Nemokama visam laikui
Qoder AI Qwen3-Max, Kimi-K2 NERIBOTAI NEMOKAMAI
Pollinations GPT, Llama, Claude Rakto nereikia
Cloudflare AI 50+ modelių 10 tūkst. neuronų per dieną
### 🧩 Naujiena: OmniRoute viduje VS Code vietiniame Copilot pokalbyje
> Jokios naujos šoninės juostos, jokio naujo pokalbio UI – kiekvienas OmniRoute modelis rodomas tiesiai**Copilot pokalbių modelių rinkiklis, kurį jau naudojate** . Nuo VS kodo 1.122 teikėjo modeliai veikia be GitHub prisijungimo arba Copilot prenumeratos – agento režimas, įrankių iškvietimas ir vizija, nemokamai.
Įdiekite** [OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** plėtinį, nukreipkite jį į savo OmniRoute serverį (numatytasis nustatymas yra `localhost:20128`), tada atidarykite Copilot Chat → modelių rinkiklį →** Tvarkyti modelius…** →**OmniRoute** .
Iš redaktoriaus vidaus: atidarykite** Plėtiniai** peržiūrėti, ieškoti** "OmniRoute"** , spustelėkite** Įdiegti** – veikia vienodai abiejose parduotuvėse. Šaltinis, numeriai ir leidybos vadovėlis tiesiogiai adresu [diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [VS kodas Copilot Pokalbių vadovas](docs/guides/VSCODE-COPILOT.md) – sąranka, ką rodo rinkiklis, prietaisų skydelis skirtuke, trikčių šalinimas
### 🎩 Naujiena: OmniRouteTray – jūsų vartai, gyvenantys meniu juostoje
> `omniroute serve` yra laimingiausias, kai jis visada įjungtas.** [OmniRouteTray](https://github.com/zoispag/omniroute-tray)** paverčia ją „nustatyti ir pamiršti“ meniu juostos programa, skirta macOS: ji paleidžia serverį, palaiko jį perkraunant iš naujo, atnaujina jį vietoje ir vienu spustelėjimu suteikia jūsų tiesioginio prieigos rakto biudžetą –** nėra paliktas atidarytas terminalo langas, nėra `npm install -g omniroute` auklei.**
Sukurtas naudojant [„Tauri v2“](https://v2.tauri.app/) (Rust branduolys, kurio dydis yra apvalinimo klaidos), jis pristato savo pasirašytą „Node 24“ vykdymo laiką ir valdo programai priklausančią OmniRoute diegimą, todėl niekada nekovoja su jūsų visuotiniu `node`/`bun`. Tai** bendrina esamą `~/.omniroute/` konfigūraciją ir duomenų bazę** — vadinasi, tai tas pats OmniRoute kurį jau bėgi, tik su kepure. 🎩
Ką tai daro
Kaip
🟢 Prižiūri serverį
Sukuria omniroute serve , priima jau veikiantį egzempliorių, o ne dubliuoja jį
📊 Tiesioginis naudojimas
Teikėjo kvotų juostos, Claude session/weekly ribos su iš naujo nustatytais atgaliniais skaičiavimais, 30 dienų išlaidų paskirstymas
🔄 Automatiniai atnaujinimai vietoje
Laipsniškas diegimas, atomų keitimas, atšaukimas gedimo atveju – visada naujausiame leidime
🚀 Pradėti prisijungus
Pasirenkamas paleidimas prisijungus; tik dėklas, be doko piktogramos
🩺 Doctor & žurnalai
Diagnostika vienu paspaudimu ir serverio žurnalo prieiga
> 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)
## 🗜️ Automatiškai sutaupykite 15–95 % žetonų
### 📖 Kaip tai veikia — konvejeris, architektūra ir sutaupymo matematika
Numatytasis sudėtinis derinys vykdo `RTK → Caveman`. Kai abu veikia tą patį įrankio / konteksto turinį, sutaupymai sumuojasi:
```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 **visada apsaugomi** išsaugojimo varikliu.
> **Kodėl naudoti daug žetonų, jei užtenka kelių?** Kiekviena užklausa **skaidriai** pereina per OmniRoute glaudinimo konvejerį — klientui nereikia jokių pakeitimų. Dabar tai yra **12 komponuojamų variklių seka**, kurie vykdomi eilės tvarka ir gali būti įvairiai derinami pagal maršrutizavimo derinį — remiantis [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ų seka
Varikliai vykdomi konvejerio tvarka; kiekvieną galima nepriklausomai įjungti arba konfigūruoti pagal derinį:
#
Variklis
Ką jis daro
1
Session-Dedup
Pašalina per skirtingus pokalbio žingsnius pasikartojantį turinį (pagal turinio adresą, tarp pokalbio žingsnių)
2
CCR
Didelius blokus archyvuoja užklausos žymekliais, o jie gaunami prireikus
3
Lite
Tarpų ir paveikslėlių URL trumpinimas (mažos delsos bazinis režimas)
4
RTK
Išmanus įrankių rezultatų filtravimas, pasikartojančių duomenų šalinimas ir trumpinimas (atsižvelgia į komandas)
5
Responses Tool Output
Pirmiausia be nuostolių apdorojamas JSON ir ribojamas diagnostikos glaudinimas apvalkalo / pataisų / paieškos / kūrimo išvestims (Responses API)
Santraukų kūrimas ir laipsniškas senų pokalbio žingsnių „senėjimas“
10
LLMLingua-2
ML semantinis retinimas naudojant MobileBERT ONNX — saugus kodui, asinchroninis
11
Ultra
Heuristinis žetonų retinimas su pasirenkamu mažo modelio (SLM) lygiu
12
OmniGlyph
Eksperimentinis konteksto kodavimas kaip paveikslėlio, skirtas išmatuotam Claude Fable 5 tiesioginiame Anthropic perdavimo kanale; GPT 5.6 transformatoriai lieka uždaryti pagal saugiąją schemą, kol bus gauti teikėjo patvirtinimai. Keturi glaudinimo profiliai (agresyvusis numatytasis, subalansuotas, saugus kodui, perdavimas be pakeitimų) (agresyviausias; pasirenkamas)
Kodo blokai, URL ir struktūriniai duomenys **visada išsaugomi** bitų tikslumu. **Vieno spustelėjimo išankstiniai nustatymai** sujungia variklius:
Režimas
Sutaupymai
Geriausiai tinka
🪶 Lite
~15 %
Visada įjungtas saugus numatytasis režimas
🪨 Standard (Caveman)
~30 %
Kasdieniam programavimui
⚡ Aggressive
~50 %
Ilgiems seansams su daugybe įrankių
🔥 Ultra
~75 %
Maksimaliems sutaupymams
🧰 RTK
60–90 %
Apvalkalo / testų / kūrimo / git išvestims
🔗 Stacked (RTK → Caveman)
78–95 %
Mišrioms užklausoms ir įrankių žurnalams
**Tikras pavyzdys — Standard režimas:**
> **Prieš (69 žetonai):** _"Tikėtina priežastis, kodėl jūsų React komponentas generuojamas iš naujo, yra ta, kad kiekvieno generavimo ciklo metu kuriama nauja objekto nuoroda. Kai perduodate tiesioginį objektą kaip savybę, React paviršutiniškas palyginimas kaskart mato kitą objektą, todėl komponentas generuojamas iš naujo. Rekomenduočiau naudoti useMemo objektui įsiminti."_
>
> **Po (19 žetonų):** _"Nauja objekto nuoroda kiekvieno generavimo metu. Tiesioginė objekto savybė = nauja nuoroda = generavimas iš naujo. Apgaubkite naudodami useMemo."_
>
> **Tas pats atsakymas. 72 % mažiau žetonų. Tikslumas neprarastas.** ✅
**PT-BR pavyzdys — [Troglodita](https://github.com/leninejunior/troglodita) režimas:**
> **Anksčiau (42 žetonai):** _„Problema ta, kad komponentas iš naujo atvaizduojamas, nes kiekvieno atvaizdavimo ciklo metu sukuriama nauja objekto nuoroda. Rekomenduočiau naudoti useMemo.“_
>
> **Dabar (12 žetonų):** _„Pakartotinis atvaizdavimas: nauja nuoroda kiekviename cikle (įterptasis objektas sukuriamas iš naujo). Naudoti `useMemo`.“_
>
> **Tas pats atsakymas. ~70 % mažiau žetonų. Techninis tikslumas išlaikytas.** ✅
### 🎚️ Už variklių ribų — išvesties stiliai, adaptyvusis valdiklis ir valdymas kiekvienai užklausai
Pirmiau aprašyti 12 variklių sumažina tai, kas **patenka į vidų**. Dar trys sluoksniai formuoja **kaip**, **kada** ir kas **patenka į išvestį**:
- **🪄 Išvesties stiliai** _(išvesties ašies valdymas)_ — įterpia deterministines, talpyklai saugias atsako formavimo instrukcijas; juos galima derinti, o kiekvienam taikomas `lite` / `full` / `ultra` intensyvumas. Stilių pridėti galima vienu registro įrašu:
- **Glausta proza** — pašalinti užpildą / artikelius / atsargias formuluotes; techninę esmę išlaikyti tiksliai.
- **Mažiau kodo** — YAGNI pagal „tingaus vyresniojo programuotojo“ principą: mažiausias veikiantis pakeitimas, be neprašytos infrastruktūros.
- **Arklio uodega (tingus vyresnysis programuotojas)** — kopti YAGNI kopėčiomis, taisyti pagrindinę priežastį, pateikti mažiausią veikiantį skirtumą.
- **Turiu ADHD (veiksmas pirmiausia)** — pirmiausia nurodyti kitą veiksmą, sunumeruoti žingsnius, pateikti vieną konkretų kitą žingsnį, be įžangos.
- **Glaustas CJK (文言)** — itin glaustas klasikinės kinų kalbos stilius (priklauso nuo lokalės, taikomas tik `zh`).
- **🎯 Adaptyvusis konteksto biudžetas** _(valdiklis)_ — vietoj vienos įjungimo / išjungimo žetonų ribos brangiausi ir mažiausiai informacijos prarandantys varikliai aktyvinami tik tiek, kiek reikia, kad **tilptų į modelio konteksto langą**. Politika: `reserve-output` (numatytoji, atsižvelgianti į modelį) · `percentage` · `absolute`. Režimas: `floor` (garantuoti, kad tilps) · `replace-autotrigger` (pirmenybė teikiama jūsų aiškiam pasirinkimui) · `off` (senstelėjusi riba).
- **🎛️ Kur nusprendžiama dėl glaudinimo** _(prioritetas nuo aukščiausio iki žemiausio)_ — kiekvienos užklausos `x-omniroute-compression` antraštė › maršrutizavimo derinio perrašymas › aktyvus pavadintas profilis › adaptyvusis režimas / automatinis paleidiklis › skydelio numatytoji reikšmė › išjungta. Pritaikytas planas grąžinamas `X-OmniRoute-Compression: ; source=` atsako antraštėje.
Automatinis paleidimas pagal žetonų ribą, adaptyviojo valdiklio įjungimas, pavadinto profilio prisegimas, vienkartinis nustatymas konkrečiai užklausai arba konvejerio priskyrimas kiekvienam maršrutizavimo deriniui — pasirinkite tai, kas geriausiai atitinka darbo krūvį. Pasirenkamas neprisijungęs **vertinimo įrankių rinkinys** (`npm run eval:compression`) įvertina tikslumą ir sutaupymą pagal fiksuotą korpusą 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)
# ⚡ Greita pradžia
**1) Įdiekite ir paleiskite**
```bash
npm install -g omniroute
omniroute
```
> 💡 Matote `npm warn ERESOLVE` arba įspėjimus apie peer priklausomybes? [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 jiems suteiktas leidimas. OmniRoute `postinstall` (`node scripts/build/postinstall.mjs`) reikalingas paruošti saviesiems vykdymo failams. Diegdami globaliai suteikite leidimą įspėjime npm nurodytiems paketams. Paketų rinkiniui, apie kurį praneša OmniRoute 3.8.54:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Norėdami ateityje šį leidžiamų paketų sąrašą naudoti diegdami globaliai, sukonfigūruokite jį vieną kartą, 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 tarp leidimų gali keistis; jei npm praneša apie kitokį sąrašą, naudokite tame įspėjime nurodytus paketų pavadinimus. Leidus paketui, jo diegimo scenarijams leidžiama veikti.
> **Naudojate Gemini Web arba kitą žiniatinklio slapukais pagrįstą teikėją?** npm pakete yra
> Playwright, tačiau nėra jo Chromium dvejetainio failo. Prieš pateikdami pirmąją užklausą žiniatinklio teikėjui, žr.
> [Playwright Chromium sąrankos](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> pastabą.
Valdymo skydelis adresu `http://localhost:20128` · API 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 scenarijų → pridėkite jo API raktą arba atlikite paskyros prijungimo veiksmus. Nemokami planai gali reikalauti 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 numatytuosius nustatymus neįtraukiami į `auto`.
**3) Nukreipkite savo programavimo į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 viskas veikia**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Turėtumėte matyti išvardytus prijungtus modelius. 🎉 Štai ir viskas — pradėkite programuoti, o OmniRoute automatiškai parinks maršrutą ir prireikus persijungs į atsarginį.
Jei jūsų klientas negali siųsti pasirinktinių antraščių, OmniRoute taip pat pateikia žetonais pagrįstus suderinamumo pseudonimus:
```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 su klientais, kurie negali pridėti `Authorization: Bearer ...`. Autentifikavimas antraštėje išlieka rekomenduojamu režimu.
## 📦 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 daugiau nei 60 000 statinių testų deklaracijų 8 400+ sekamuose testų failuose
# ⭐ Pagrindiniai prisidėjusieji
> OmniRoute formuoja entuziastinga atvirojo kodo bendruomenė. Šie žmonės išskirtinai prisidėjo prie projekto, tiesiogiai paveikdami jo kokybę, stabilumą ir pasiekiamumą. **Ačiū.**
### Išoriniai prisidėjusieji pagal sujungtus pull request
Surašymas atliktas 2026-11-03 03:01:19 UTC, naudojant aktyvią release/v3.8.53 viršūnę 05bc048d6c. Puslapiuose pateikiamame GitHub GraphQL suraše yra 9 947 sujungti PR: 4 130 iš saugyklos savininko, 240 iš Dependabot, 6 iš kitų robotų / programėlių ir 5 571 išorinis PR iš 883 atskirų prisidėjusiųjų. „Pakeistos eilutės“ yra GitHub pridėjimų ir ištrynimų suma; į ją įtraukiami sugeneruoti failai, užrakinimo failai, katalogai, vertimai ir dokumentacija; tai yra pakeitimų apimtis, o ne autoriaus parašytas LOC skaičius. 53 PR nurodo didesnius nei 500 000 eilučių GitHub skirtumus (pavyzdžiui, #13399, kuriame pridėtas vienas teikėjas, nurodoma 2 347 pakeisti failai), todėl keli pirmiau pateikti bendri skaičiai yra išpūsti. Vienodos vietos reitinge nurodomos kartu.
### GitHub priskirti įsipareigojimai
Pakartotinai patikrinta 2026-11-03 02:09:16 UTC: GitHub priskiriami įsipareigojimai, kuriuos pateikė saugyklos Contributors API, skirtai numatytajai šakai release/v3.8.53. API grąžino 903 tapatybes (429 naudotojus, 2 robotus, 472 anoniminius); šioje lentelėje neįtrauktas prižiūrėtojas, robotai ir anoniminės tapatybės, taip pat išlaikytos vienodos vietos. Šis sąrašas skiriasi nuo pirmiau pateikto sulietų PR reitingo ir toliau pateikiamo Git metaduomenų surašymo.
> 🙏 Šių pagalbininkų funkcijos, klaidų taisymai ir infrastruktūros patobulinimai yra **esminė dalis** to, kas daro OmniRoute patikimą ir turtingą funkcijomis. Svarbus kiekvienas traukimo prašymas, kiekvienas testavimo atvejis ir kiekvienas i18n vertimo failas. 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.
## 👥 Daugiau nei 1 000 bendraautorių
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Audituota 2026-11-02 tiesioginės release/v3.8.53 šakos viršūnėje 1c7135e0fb (7 972 pakeitimai): 1 074 normalizuotos tikrų žmonių Git tapatybės — 759 rodomi kaip pakeitimų autoriai (įskaitant prižiūrėtoją), o 315 nurodyti tik aiškiuose Co-authored-by prierašuose. Surašant naudotas .mailmap, el. pašto adresai lyginti neatsižvelgiant į raidžių registrą, skaitmeniniai ir įprasti GitHub noreply adresai sujungti tik tada, kai juose užkoduota ta pati paskyra, atmestos 29 botų, agentų, tarnybinės ir rezervinės tapatybės, o įprasti el. pašto adresai nesujungti vien dėl sutampančių rodomų vardų. 2026-08-24 audito metu paskelbti 639; pakartotinai pritaikius šį metodą to audito bazei ac02c5b42f, gaunami 619, todėl padidėjimą lėmė nauji bendraautoriai, o ne ne tokia griežta metodika.
### Kaip prisidėti
1. Sukurkite saugyklos šaką
2. Sukurkite šaką nuo **aktyvios** `release/vX.Y.Z` viršūnės (ne nuo `main`) — žr. [Šakojimo ir leidimų modelį](docs/ops/BRANCHING_MODEL.md)
3. Sukurkite funkcijos šaką (`git checkout -b feat/amazing-feature`)
4. Įrašykite savo pakeitimus (`git commit -m 'feat: add amazing feature'`)
5. Išsiųskite pakeitimus į šaką (`git push origin feat/amazing-feature`)
6. Atidarykite „Pull Request“, kurio **base = ta `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 remiasi milžinų pečiais. Jis pradėtas kaip **[9router](https://github.com/decolua/9router)** šaka ir Go projekto **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** perkėlimas į TypeScript — o nuo tada kiekvienas toliau nurodytas posistemis buvo įkvėptas atvirojo kodo projekto, kuris tai įgyvendino pirmas. Kiekvienas iš jų suformavo konkrečią OmniRoute dalį. Tai mūsų padėka jiems visiems. 🙏
> ⭐ žvaigždučių skaičius patikrintas naudojant GitHub REST API 2026 m. lapkričio 3 d. — suteikite šiems projektams žvaigždutę. Skaičiai yra tikslus konkrečios datos momentinis vaizdas ir natūraliai keisis.
### 🧬 Kilmė ir šliuzas
AI šliuzas, kurio viešas kainų duomenų rinkinys naudojamas mūsų išlaidų sekimo sinchronizavimui, o tiekėjų normalizavimo modelis padėjo sukurti mūsų maršrutizavimą.
MIT šaltinis, pritaikytas į rinkinyje pateikiamą ChatGPT Web → Codex Responses sąsają, įskaitant naršyklės seanso, atsakymų įrėminimo, naudojimo ir žiniatinklio paieškos adapterius.
Su Claude Code suderinami transformavimo numatytieji nustatymai ir atsiskaitymo antraštės elgsena apibendrinti į OmniRoute konfigūracija grindžiamą sąsają.
Jo Grok modelių susiejimai, netikras TypeError Statsig generatorius, užklausų ir įrenginio numatytieji nustatymai bei NDJSON atsakymų procesorius buvo reikšmingai pritaikyti OmniRoute Grok Web vykdiklyje.
Pagrindinis tranzityvus kodo šaltinis, kuriuo remiasi grok2api-merged; jo modelio, antraščių, naudingosios apkrovos, Statsig ir procesoriaus realizacijos išsaugotos Grok Web kilmės grandinėje.
Pagrindinis MIT šaltinis, iš kurio perimti Grok naudingosios apkrovos ir įrenginio numatytieji nustatymai, Statsig generatorius ir result.response procesorius, perduoti per TQZHR ir grok2api-merged.
Tranzityvus šaltinis, kurį grok2api-merged nurodo kaip savo tarpinio serverių telkinio sluoksnio šaltinį; OmniRoute išsaugo šį kilmės pranešimą, tačiau nepretenduoja į tarpinio serverių telkinio perkėlimą savo ribotos apimties Grok Web vykdiklyje.
Jo slapukais autentifikuojamas Grok tarpinis serveris ir result.response.token srautinio perdavimo šablonas padėjo sukurti OmniRoute Grok Web transportą.
Naudojantis jo HTTP / naršyklės pirminio serverio dizainu buvo konsultuojamasi kuriant pradinę Grok Web realizaciją; jo tiesioginis HTTP kelias kildinamas iš GrokProxy, todėl nepriklausomas kodo perkėlimas nepriskiriamas.
### 🗜️ Konteksto ir žetonų glaudinimas — varikliai
Virusinis projektas „why use many token when few token do trick“ — jo urvinio žmogaus kalbos filosofija yra mūsų standartinio glaudinimo režimo ir daugiau nei 30 užpildų bei kondensavimo taisyklių pagrindas.
PT-BR žetonų glaudinimas — suteikia galią mūsų pt-BR kalbos paketui: pasikartojimų mažinimui ir užpildų šalinimui, pritaikytam Brazilijos portugalų kalbos gramatikai.
Jo veiksmais grindžiamas, ADHD turintiems žmonėms pritaikytas atsakymų stilius buvo pritaikytas prie glausto OmniRoute išvesties stiliaus penkiomis kalbomis.
### 🧩 Kompaktiški formatai, žetonų tyrimai ir kodą suprantantys įrankiai
Turinį suprantantis, kiekvienam failo tipui pritaikytas išvesties glaudinimas su nesėkmes atpažįstančiu atsisakymu — patvirtino mūsų paskirstymą pagal tipą ir praleidimą, kai nauda minimali.
Rust stulpelinis JSON, pagal turinį adresuojamas atkūrimas ir dublikatų šalinimas tarp pranešimų — patvirtino mūsų headroom/ccr/session-dedup variklių dizainą ir podėliui stabilų invariantą „suglaudinta forma nepriklauso nuo pozicijos“.
TypeScript kompiliatoriaus API įrankių rinkinys — įkvėpė mūsų analizatoriumi grindžiamą komentarų šalinimą, išsaugantį eilučių, šabloninius ir reguliariųjų išraiškų literalus.
Kodavimo asistento ↔ LLM srauto MITM perėmimas ir analizė padėjo apibrėžti ankstyvuosius Traffic Inspector reikalavimus. Keturi anksčiau išvesti moduliai — SSE sujungimas, pokalbių normalizavimas, paslapčių maskavimas ir antraščių sanitarizavimas — pakeisti nepriklausomomis švariojo kambario realizacijomis, pagrįstomis viešaisiais protokolų standartais. Du pagrindinio kompiuterio praleidimo paviršiai (passthrough.ts ir _internal/bypass.cjs) lieka OmniRoute vidinėmis realizacijomis, klasifikuojamomis atskirai; jie nebuvo perrašyti kaip šio pakeitimo dalis.
Skaidrus kiekvieno proceso tarpinio serverio maršrutizavimas — įkvėpė mūsų nuo strigčių apsaugotą MITM išjungimą, lizdų neveiklos skirtuosius laikmačius, procesų priskyrimą pagal /proc ir TPROXY fiksavimą.
Kruopščiai atrinktas saugiųjų numatytųjų nustatymų bibliotekų sąrašas, padedantis pasirinkti mūsų saugumo sprendimus (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Jo paskyras atpažįstantis modelių peradresavimas, vykdomųjų failų kelių tikrinimas ir plano etiketės elgsena padėjo suformuoti OmniRoute Antigravity vykdymo aplinką.
Nustatė Grok Build kvotos paviršių; vėliau OmniRoute nepriklausomai patikrino ir ištaisė aktyvųjį laidinio protokolo formatą.
## 📄 Licencija
MIT licencija – daugiau informacijos rasite [LICENSE](LICENSE).
---
**[⬆ Grįžti į viršų](#-omniroute)** · Sukurta ❤️ atvirojo kodo DI bendruomenei.
Sukūrė Diego Souza · OmniRoute v3.8.54 · Node ≥22.22.2 · MIT licencija · omniroute.online