## 💰 ~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ų suma, 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 apribojimus, prieinamumą ir sąlygas.
>
> Nemokamus planus jungti rankiniu būdu 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 **489 nemokamų planų įrašai, apimantys 35 pasikartojančių telkinių raktus**, o antraštėje rodomas žetonų skaičius apskaičiuojamas pagal **17 telkinių, kuriems paskelbtas teigiamas mėnesio biudžetas, ir penkis kiekvienam „Groq“ modeliui taikomus limitus**, pašalinant bendrų telkinių dublikatus. Kvotos, kurios suteikiamos tik patvirtinus regioninę tapatybę (šiuo metu: „ModelScope“), rodomos atskirai — +~6 mln. po regioninės tapatybės patvirtinimo — ir niekada neįtraukiamos į antraštėje pateikiamą sumą. Rezultatas visada matomas valdymo skydelyje (`/dashboard/free-tiers`).
> Animacinė tiesioginio `/dashboard/free-tiers` puslapio santrauka. Visa metodika (telkinių dublikatų šalinimas, kreditų lygiai, paslaugų teikėjų sąlygos): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Šie skaičiai kas dvi savaites iš naujo tikrinami pagal aktualų katalogą ir **gali keistis 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ą palankiausią 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 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, plėtros 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ų sąsaja nuolat auga
## 🆓 Įdiekite, prijunkite teikėją, tada nukreipkite per vieną galinį tašką
```bash
# Prijungę teikėją, nukopijuokite savo „OmniRoute“ raktą iš „Valdymo skydelis“ → „Galiniai taškai“:
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!"}]}'
```
Funkcijai `auto` reikalingas tinkamas maršrutas. Naujoje diegtyje gali nebūti tinkamų, rakto nereikalaujančių paskirties taškų, o rakto nereikalaujantis teikėjas gali atmesti trečiųjų šalių klientus. Teikėjai, pažymėti `tos: avoid`, įskaitant „OpenCode Free“ ir „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 iškart paleidžiami greitosios pradžios 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.
## 🎯 Deriniai — pagrindinė funkcija
> **Derinys** yra modelių grandinė, tarp kurių OmniRoute maršrutą parenka **automatiškai**. Jei išnaudojama kvota, sutrinka teikėjo veikimas arba išauga sąnaudos, derinys gali pereiti prie kito tinkamo ir veikiančio modelio. 🛡️
### ⚡ Nulinė konfigūracija — tiesiog naudokite `auto`
Nereikia kurti jokio derinio. Nustatykite modelį į `auto` (arba jo variantą), o OmniRoute iš jūsų prijungtų teikėjų sukurs virtualų derinį, vertinamą realiuoju laiku:
Modelio ID
Kam jis optimizuotas
auto
🎯 Subalansuotas numatytasis variantas (LKGP — lieka su paskutiniu sėkmingai veikusiu teikėju)
auto/coding
🧑💻 Kodo generavimui skirti svoriai, pirmenybę teikiantys kokybei
auto/fast
⚡ Pirmiausia — mažiausia delsa
auto/cheap
💰 Pirmiausia — mažiausia žetono kaina
auto/offline
🔋 Pirmiausia — didžiausia kvotos / užklausų dažnio limito atsarga
auto/smart
🔭 Pirmenybė kokybei + 10 % tyrinėjimo geresniems modeliams atrasti
auto/lkgp
📌 Aiškiai nustatytas prisirišimas prie paskutinio sėkmingai veikusio teikėjo
auto/chaos
🧪 Lygiagretus užklausų paskirstymas modelių grupei (po vieną iš kiekvieno teikėjo, 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 — 19 maršruto parinkimo strategijų
Visos **19** strategijų — derinkite jas kiekviename derinio žingsnyje:
#
Strategija
Ką ji daro
1
priority
Surikiuotas sąrašas, pirmenybę teikiant 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
Svertinis atsitiktinis parinkimas pagal kiekvieno tikslo svorį
4
round-robin
Tikslai cikliškai parenkami iš eilės
5
p2c
Atsitiktinis apkrovos balansavimas pasirenkant geresnį iš dviejų variantų
6
least-used
Parenkamas tikslas, kurio dabartinė apkrova yra mažiausia
📊 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.50**. Visa istorija pateikta [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — įeinantis A2A užduočių delegavimas jūsų agentų parkui, Conductor įgūdžiai Agent Card kortelėje ir valdymo skydelio skydelis su Faro tiesioginio balso pokalbio funkcija. → [A2A serveris](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptyvus užklausų priėmimas ir apsauga nuo perkrovos** — daug išteklių reikalaujančios pokalbių užklausos įtraukiamos į eilę, užuot grąžinus 503, o kiekvienam ryšiui naudojamos atominės slenkančios RPM nuomos. → [Atsparumo vadovas](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanoninė `/v1/models` tvarka** — kiekvienam teikėjui po vieną vientisą, pagal teikėją sugrupuotą bloką (deriniai pateikiami pirmiausia), išliekantį stabilų visuose katalogo šaltiniuose. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🗜️ Sustiprintas glaudinimas** — pagal numatytąsias nuostatas įjungta išskleidimo apsauga, Caveman paketai DE / FR / JA + kinų (wényán) kalboms, RTK filtrai Gradle ir .NET. → [Glaudinimas](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Sąžininga fiksuoto tarifo kaina** — prenumeratos / programavimo planų teikėjų sąnaudų analizėje rodoma **$0**; biudžeto, kvotų ir maršruto parinkimo skaičiavimai tęsiami. → [API žinynas](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share maršruto parinkimas** — bendrinamos paskyros kvota sąžiningai padalijama tarp telkinio raktų, o darbo išsaugojimo principas leidžia skolinti nenaudojamas dalis. → [Atsparumo vadovas](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI / agento sąranka viena komanda** — 13 registruotų `setup-*` komandų; `omniroute run` paleidžia 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` palaiko 10 tikslinių sistemų, interaktyvų teikėjo ir modelio parinkimą bei atskirus kiekvieno konteksto parankinius. → [CLI integracijos](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Nuotolinis režimas** — valdykite nuotolinę OmniRoute naudodami 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šruto parinkimas** — `auto/:` deriniai, **Fusion** (modelių grupė + vertintojas), užduotį įvertinantis maršruto parinkimas, kiekvienos užklausos modelio / režimo / USD biudžeto nepaisymo nuostatos. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Keičiamais moduliais pagrįstas glaudinimas** — 12 komponuojamų variklių + Compression Studios: LLMLingua-2, dviejų lygių Ultra, omniglyph, kiekvieno veiksmo tikslumo vartai, GCF v3.2, pertempimu pertvarkomas redaktorius. → [Glaudinimas](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Skaidrus MITM iššifravimas (TPROXY)** — perimkite CLI, kurios nepaiso 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, sutaupymų dėl pataikymo į podėlį antraštė, kiekvieno rakto USD išlaidų kvotos. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🧠 Jūsų valdoma atmintis** — pagal numatytąsias nuostatas išjungta, pasirenkama int8 vektorių kvantizacija + tipizuotas nykimas, kiekvienos užklausos `x-omniroute-no-memory`. → [Atmintis](docs/frameworks/MEMORY.md)
- **🛡️ Saugumas** — apsauga nuo raginimų injekcijų kiekviename LLM maršrute (red-team testų rinkinys), pasirenkama kredencialų maskavimo apsauga (abiem kryptimis paslepia nutekintus API raktus / paslaptis), nemokama DuckDuckGo žiniatinklio paieška kraštutiniam atvejui ir pasirenkami OIDC prisijungimo vartai valdymo skydeliui (prisijungimas slaptažodžiu visada išlieka pasiekiamas). → [Apsaugos priemonės](docs/security/GUARDRAILS.md)
- **🖼️ Nauji galiniai taškai** — `/v1/ocr` (Mistral OCR) ir `/v1/audio/translations` (Whisper stiliaus) papildo medijos funkcijų rinkinį. → [API žinynas](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 žinynas](docs/reference/API_REFERENCE.md)
- **🌍 Diegimas ir eksploatavimas** — atvirkštinio tarpinio serverio `basePath`, automatinis naršyklės kalbos aptikimas, įrenginių stebėjimas pagal raktą, MITM pasitikėjimo nustatymas 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š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 **352 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` derinio strategija ir Auto-Combo `cacheAffinity` koeficientas nukreipia pakartotines užklausas atgal į ryšį, kuriame laikomas podėlyje išsaugotas prefiksas, o tik skaitymui skirtas `/v1/auto-combo/{channel}/candidates` galinis taškas pateikia tiesioginį `auto/*` kanalo kandidatų telkinį. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Vietinis našumas ir infrastruktūra** — vienu spustelėjimu paleidžiama vietinė Redis, Cloudflare Workers / Deno Deploy perdavimo diegimo priemonės, Bifrost ir Mux kaip prižiūrimos įtaisytosios paslaugos. → [Įtaisytosios paslaugos](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Taip pat įtraukta** — papildinių sistema + prekyvietė, Omni/Agent/GitHub įgūdžių sistemos, Obsidian saugyklos integracija (22 MCP įrankiai), su OpenAI suderinamos Batch ir Files API, semantinis atsakymų podėlis, ž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 sąsaja, programoje 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 kūrimo aplinka ar CLI veikia naudodama nemokamus ir nebrangius modelius.
**Paleiskite bet kurį palaikomą CLI per OmniRoute viena komanda** — neįrašomi jokie konfigūracijos failai,
kiekvienam procesui atskirai perduodami prisijungimo duomenys, o 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 interaktyviai pasirinkite teikėją bei modelį ir įrašykite paties įrankio konfigūraciją:
omniroute configure codex # taip pat: claude opencode qwen aider goose gemini cline continue kilo
```
Kiekviena komanda atsižvelgia į aktyvų nuotolinį kontekstą (`omniroute connect `), `--dry-run`
parodo tikslius aplinkos kintamuosius ir argumentus nieko nevykdant, o `--api-key-env NAME` neleidžia paslaptims
patekti į jūsų komandų apvalkalo istoriją. → [CLI integracijos](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 372 DI teikėjai — 154 kataloge pažymėti kaip nemokami
> **372 registruoti teikėjai** kanoniniuose pokalbių, medijos, paieškos, vietinių, debesijos agentų ir sistemos rinkiniuose, įskaitant **154 su `hasFree: true` aptikimo metaduomenimis**. Pokalbių modelių registras apima **237 teikėjus / 3,009 skirtingas teikėjo ir modelio poras / 1,443 neapdorotus modelių ID**; atskirame nemokamų limitų kataloge yra **491 kiekvienam modeliui skirta eilutė**, **35 pasikartojantys išteklių fondai** ir **54 pasikartojantys / rakto nereikalaujantys visam laikui nemokami teikėjai**. Šie vardikliai sąmoningai skiriasi; apibrėžtys ir skaičiavimai, kuriuose pasikartojantys išteklių fondai sujungiami, 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 330+ — 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 Nėra žetonų limito
Kilo Code Automatinis maršruto parinkimas, 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 USD kreditas; būtina kortelė
OpenRouter :free modeliai +10 USD → didesnis RPM
📖 Visas mašininiu būdu nuskaitomas 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“ yra **visavertis komandų eilutės valdymo centras**, turintis **daugiau nei 80 komandų**, taip pat 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 su pasviruoju brūkšniu: /model /combo /skill /memory)
omniroute setup # pirmojo paleidimo vedlys
omniroute doctor # diagnozuoti paslaugų teikėjus, prievadus ir vietines 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 # ← pasirenka nuotolinį modelį, įrašo vietinį Codex profilį
omniroute tokens create --name ci --scope read # sukurti siauresnės aprėpties prieigos raktus kitiems kompiuteriams
omniroute contexts use default # ← grįžti prie vietinio serverio
```
Prieigos raktų aprėptys yra `read` / `write` / `admin`; procesus paleidžiantys maršrutai pasiekiami tik per vietinę grįžtamojo ryšio 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 savarankiškai valdyti visą šliuzą: maršruto parinkimą, paslaugų teikėjus, derinius, podėlį, glaudinimą ir atmintį. Toliau pateikti HTTP galiniai taškai pasiekiami adresu `http://localhost:20128`.
Sąsaja
Galinis taškas / komanda
Kam naudoti
🧰 MCP (stdio)
omniroute --mcp
Integravimui su Claude Desktop, Cursor ar bet kuriuo MCP klientu
Agentų tarpusavio ryšys, JSON-RPC 2.0 + SSE, 6 įgūdžiai
🌐 REST API
/v1/*
Suderinama su OpenAI — pokalbiai, vektoriniai įterpiniai, vaizdai, garsas, OCR
🔔 Žiniatinklio sąsajos
/api/webhooks
Siųsti užklausų / kvotų įvykius į Slack, Discord, Telegram ar bet kurį URL
🛰️ Nuotolinė CLI
omniroute connect
Valdyti nuotolinį egzempliorių naudojant ribotos aprėpties prieigos raktus
```bash
# Suteikite 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.
pino — struktūrizuoti JSON žurnalai su užklausos kontekstu
Testavimas
Node.js testų vykdyklė + Vitest — daugiau nei 39 000 statinių testų deklaracijų daugiau nei 5 100 stebimų testų failų (moduliniai, integraciniai, E2E, saugumo ir ekosistemos testai)
Platformos
Kompiuteriai (Electron) · Android (Termux) · PWA (bet kuri naršyklė)
# ⭐ Geriausi prisidėjusieji
> „OmniRoute“ formuoja aistringa atvirojo kodo bendruomenė. Šie žmonės padarė išskirtinį indėlį, kuris tiesiogiai veikia projekto kokybę, stabilumą ir pasiekiamumą. **Ačiū.**
### Išoriniai prisidėjusieji pagal sujungtus pull request'us
Užfiksuota ties aktyvios release/v3.8.50 šakos viršūne dafb4ae808, sujungimus įtraukiant iki 2026-08-24 05:26:03 UTC. Puslapiuose suskaidytoje GitHub GraphQL suvestinėje yra 5,911 sujungtų PR: 2,707 iš jų pateikė saugyklos savininkas, 179 – Dependabot, o 3,025 išorinius PR pateikė 535 skirtingi bendraautoriai. „Pakeistos eilutės“ yra GitHub pridėjimų ir ištrynimų suma, į kurią įtraukti sugeneruoti failai, užrakto failai, katalogai, vertimai ir dokumentacija; tai kaita, o ne autoriaus parašytos kodo eilutės. Sutapimai ties riba išlaikomi.
### GitHub priskirti komitai
Bob.Hou 🏅 51 GitHub priskirtas įrašas · dalijasi 10-ąja vieta
Xiangzhe 🏅 51 GitHub priskirtas įrašas · dalijasi 10-ąja vieta
Pakartotinai patikrinta 2026-08-24 06:14:31 UTC: GitHub priskirti įrašai, kuriuos saugyklos bendraautorių API pateikė numatytajai release/v3.8.50 šakai. API grąžino 525 tapatybes (415 naudotojų, 2 robotus, 108 anoniminius asmenis); šioje lentelėje neįtraukti prižiūrėtojai, robotai ir anoniminės tapatybės, o vienodos vietos išsaugotos. Ji skiriasi ir nuo aukščiau pateikto sujungtų PR reitingo, ir nuo žemiau pateikto 639 asmenų Git metaduomenų surašymo.
> 🙏 Šių bendraautorių funkcijos, klaidų pataisymai ir infrastruktūros patobulinimai yra **esminė dalis** to, kas daro OmniRoute patikimą ir funkcionalų. Svarbi kiekviena traukimo užklausa, 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 judėti pirmyn.
… ir kiti, pageidaujantys likti nevieši 💛Vieši „GitHub Sponsors“ rėmėjai pakartotinai patikrinti 2026-08-24. „GitHub“ būsena activeOnly lemia pirmiau pateiktas aktyvumo žymas; viešai paskelbti ankstesni vienkartiniai rėmėjai ir toliau yra minimi padėkoje, o privatūs rėmėjai išlieka anonimiški.💖 Tapkite rėmėju → — kiekvienas doleris padeda „OmniRoute“ išlikti nemokamam ir nepriklausomam.
## 👥 Daugiau nei 600 prisidėjusiųjų
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Auditas atliktas 2026-08-24, naudojant fiksuotą bazę ac02c5b42f, ir pakartotinai patikrintas tiesioginės release/v3.8.50 šakos viršūnėje dafb4ae808: 639 normalizuotos žmonių „Git“ tapatybės — 407 nurodyti kaip pakeitimų autoriai (įskaitant prižiūrėtoją), o 232 pateikti tik aiškiai nurodytose Co-authored-by poraštėse. Atliekant apskaitą normalizuojami „GitHub“ noreply identifikatoriai, neįtraukiamos 26 robotų, agentų, paslaugų ir vietos rezervavimo tapatybės, o įprasti el. pašto adresai nėra sujungiami vien todėl, kad sutampa jų rodomi vardai.
### Kaip prisidėti
1. Sukurkite saugyklos atšaką
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 funkcijos šaką (`git checkout -b feat/amazing-feature`)
4. Įrašykite savo pakeitimus (`git commit -m 'feat: add amazing feature'`)
5. Nusiųskite pakeitimus į šaką (`git push origin feat/amazing-feature`)
6. Atidarykite pakeitimų užklausą, kurios **bazė = 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ų pasiekimais. Jis prasidėjo kaip **[9router](https://github.com/decolua/9router)** atšaka ir Go projekto **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** perkėlimas į TypeScript, o vėliau kiekvieną toliau nurodytą posistemį įkvėpė atvirojo kodo projektas, pirmasis nutiesęs kelią. 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. rugpjūčio 24 d. — skirkite šiems projektams po žvaigždutę. Nurodyti skaičiai yra tiksli tos 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 paslaugų teikėjų normalizavimo modelis padėjo formuoti mūsų maršruto parinkimą.
MIT šaltinis, pritaikytas į projektą įtrauktam ChatGPT Web → Codex Responses tiltui, įskaitant naršyklės seanso, atsakymų kadravimo, naudojimo apskaitos ir paieškos žiniatinklyje adapterius.
Pagrindinis tranzityvusis grok2api-merged kodo šaltinis; jo modelių, antraščių, naudingųjų apkrovų, Statsig ir apdorojimo modulių realizacijos išsaugotos Grok Web kilmės grandinėje.
Pamatinis MIT šaltinis, skirtas Grok naudingosios apkrovos ir įrenginių numatytosioms nuostatoms, Statsig generatoriui ir result.response apdorojimo moduliui, perimtam per TQZHR ir grok2api-merged.
Tranzityvusis šaltinis, kurį grok2api-merged nurodo kaip savo tarpinių serverių telkinio sluoksnio šaltinį; OmniRoute išsaugo šį kilmės pranešimą, tačiau neteigia, kad jo apribotame Grok Web vykdymo modulyje yra perkeltas tarpinių serverių telkinys.
Jo slapukais autentifikuojamas Grok tarpinis serveris ir result.response.token srautinio perdavimo šablonas padėjo formuoti OmniRoute Grok Web perdavimo mechanizmą.
Kuriant pradinę Grok Web realizaciją buvo remtasi jo HTTP / naršyklės aukštesniojo lygmens paslaugos architektūra; jo tiesioginis HTTP kelias kilęs iš GrokProxy, todėl neteigiama, kad kodas buvo perkeltas nepriklausomai.
Virusinis projektas „kam naudoti daug žodžių, jei pakanka kelių“ — jo urvinio žmogaus kalbėsenos filosofija yra mūsų standartinio glaudinimo režimo ir daugiau nei 30 perteklinių žodžių šalinimo bei glaudinimo taisyklių pagrindas.
Užklausų glaudinimo tyrimai (LLMLingua / LLMLingua-2) — įkvėpė mūsų asinchroninį, kodui saugų ir gedimo atveju pradinę įvestį išsaugantį llmlingua variklį.
PT-BR žetonų glaudinimas — naudojamas mūsų pt-BR kalbos pakete: pleonazmų mažinimas ir perteklinių žodžių šalinimas, pritaikytas Brazilijos portugalų kalbos gramatikai.
Jo į veiksmus orientuotas, ADHD turintiems žmonėms pritaikytas atsakymų stilius buvo perkeltas į glaustą „OmniRoute“ išvesties stilių penkiomis kalbomis.
### 🧩 Kompaktiški formatai, žetonų tyrimai ir kodą suprantantys įrankiai
Turinį atpažįstantis kiekvienam failo tipui pritaikytas išvesties glaudinimas su klaidas įvertinančiu atsisakymu — patvirtino mūsų nukreipimą pagal tipą ir praleidimą nepasiekus minimalaus sutaupymo.
Rust stulpelinis JSON, pagal turinį adresuojamas gavimas ir pasikartojimų tarp pranešimų šalinimas — patvirtino mūsų headroom/ccr/session-dedup variklių dizainą ir podėlio stabilumą užtikrinantį invariantą „suglaudinta forma nepriklauso nuo padėties“.
TypeScript Compiler API įrankių rinkinys — įkvėpė mūsų analizatoriumi pagrįstą komentarų šalinimą, išsaugantį eilučių, šablonų ir reguliariųjų išraiškų literalus.
Programavimo asistento ↔ LLM srauto MITM perėmimas ir analizė padėjo suformuoti ankstyvuosius Traffic Inspector reikalavimus. Keturi anksčiau išvestiniai moduliai — SSE sujungimo, pokalbių normalizavimo, paslapčių maskavimo ir antraščių išvalymo — buvo pakeisti nepriklausomomis, švariosios patalpos principu ir pagal viešuosius protokolų standartus sukurtomis realizacijomis. Dvi pagrindinio kompiuterio tiesioginio perdavimo sąsajos (passthrough.ts ir _internal/bypass.cjs) tebėra atskirai klasifikuojamos vidinės OmniRoute realizacijos; jos nebuvo perrašytos atliekant šį pakeitimą.
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 atsižvelgiantis modelių susiejimas iš naujo, vykdomojo failo kelio tikrinimas ir plano žymų veikimas padėjo suformuoti OmniRoute Antigravity vykdymo aplinką.