> Rankiniu būdu derinti nemokamus planus sudėtinga — dešimtys SDK, dešimtys 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 bendras žetonų skaičius apskaičiuojamas pagal **17 telkinių, turinčių viešai paskelbtą teigiamą mėnesio biudžetą, ir penkis atskirų Groq modelių limitus**, pašalinant bendrų telkinių dublikatus. Kvotos, kurios tampa prieinamos tik patvirtinus tapatybę konkrečiame regione (šiuo metu: ModelScope), rodomos atskirai: +~6 mln. po regioninio tapatybės patvirtinimo; jos niekada neįtraukiamos į pagrindinį skaičių. Rezultatas visada matomas valdymo skydelyje (`/dashboard/free-tiers`).
> Animuota tiesioginio `/dashboard/free-tiers` puslapio santrauka. Visa metodika (telkinių dublikatų šalinimas, kreditų lygiai, teikėjų sąlygos): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Šie skaičiai kas dvi savaites pakartotinai tikrinami pagal aktualų katalogą ir **gali keistis abiem kryptimis** — teikėjui nutraukus nemokamą planą skaičius sumažėja, o atsiradus naujam — padidėja. Skelbiame tai, ką iš tikrųjų apskaičiuoja katalogas, o ne suapvalintą optimistiškiausią 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 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, informacija apie teikėjus, veiksmų planas ir pagalba → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Pasaulinė grupė](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brazilija](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portalas](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Tinklų sąsaja toliau auga
## 🆓 Veikia iškart įdiegus – jokių raktų, jokios konfigūracijos
```bash
# Naujas diegimas, jokių kredencialų – `auto` jau veikia:
curl http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
Pageidaujate konkretaus nemokamo galinio serverio? Iškvieskite `oc/…` (OpenCode Free) tiesiogiai. Tada pereikite prie `auto` ir leiskite OmniRoute pasirinkti.📦 Nukopijuokite ir įklijuokite greitos pradžios scenarijus, skirtus **Python, Node.js, PHP ir cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Pažadas
# 🤔 Kodėl OmniRoute?
## 🤝 Remiami mūsų atvirojo kodo draugai
> **Norite prisijungti kaip atvirojo kodo draugas?** Tai yra įmonės, kurios remia atvirąjį kodą ir padeda OmniRoute veikti – ir mes viešai sakome, kur keliauja kiekvienas jų duotas žetonas. Susisiekite: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Dėkojame Kimi (Moonshot AI), mūsų įkūrėjui atvirojo kodo draugui, už šio projekto palaikymą! Kimi yra AI laboratorija, kurianti atvirojo svorio K2 ir K3 modelių šeimas – Kimi K3 siūlo 1M žetonų konteksto langą, natūralų matymą ir pažangaus lygio kodavimą už dalį uždarų modelių kainos, ir veikia iš karto su Claude Code, Codex ir visais kodavimo įrankiais, kuriuos aptarnauja OmniRoute.
Ką palaiko Kimi parama: Kimi API kreditai palaiko OmniRoute AI patvirtintą išleidimo procesą – sujungimo patvirtinimo etapą, kurį atlieka Kimi K3, peržiūrintį kiekvieną „pull request“ prieš jį išleidžiant – plius kasdienį funkcijų kūrimą. Pirmos klasės Kimi palaikymas veikia abiem būdais: tiesioginiu Kimi API (kimi-k3) ir Kimi Code kodavimo planu (OAuth ir API raktas). OmniRoute taip pat yra pirmasis Brazilijos atvirojo kodo projektas Kimi palaikymo programoje. Gaukite Kimi API raktą su 15% papildomų kreditų →
Pigesnis išvados darymas cheaperinference.com
Dėkojame Cheaper Inference, OmniRoute atvirojo kodo draugui, už šio projekto palaikymą! Cheaper Inference yra kainų reitingavimo vartai, kurie perparduoda 42 pažangiausius modelius – Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok ir MiniMax – už vieno OpenAI suderinamo galinio taško, nukreipdami kiekvieną užklausą į pigiausią tinkamą teikėją, niekada neapmokestindami daugiau nei modelio kūrėjo nustatyta kaina.
Pirmos klasės palaikymas OmniRoute: Pokalbių užbaigimai, natūralus /v1/responses galinis taškas, vizija, įrankių iškvietimas ir 3 vaizdo 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 finansuoja projektą be jokių papildomų išlaidų jums. 🎟️ Partnerių akcija — nemokami registracijos kuponai iš teikėjų, kurių neremiame (spauskite, kad išskleistumėte)Šiame skyriuje pateikiami tik persiuntimo/kuponų kodai. Remiamos partnerystės yra aukščiau esančiame skyriuje 🤝 Remiami mūsų atvirojo kodo draugai. OmniRoute neturi rėmimo ar partnerystės su čia išvardytais teikėjais – tai yra vieši kuponai, kuriuos gali naudoti bet kas.
AgentRouter agentrouter.org
AgentRouter — partnerių registracija · $100 nemokamų kreditų užsiregistravus (nemokamas serveris, tikėtina didesnė delsa – geriausiai tinka testavimui, ne gamybai). Pirmos klasės palaikymas OmniRoute nuo v3.8.50: pokalbių užbaigimai, Anthropic suderinamas duomenų formatas ir OpenAI suderinamas kelias. Galimi modeliai: claude-opus-4-8, claude-opus-5, gpt-5.6-sol ir kiti. Pasiimkite savo $100 →
⚠️ Partnerių nuoroda – OmniRoute neturi rėmimo ar partnerystės su šiuo teikėju.
Žinote kitą teikėją, turintį dosnų nemokamos registracijos kuponą, kuris būtų naudingas OmniRoute vartotojams? Atidarykite problemą ir mes jį čia pridėsime.
## 🎯 Kombinacijos — pagrindinė funkcija
> **Kombinacija** yra modelių grandinė, tarp kurių OmniRoute maršrutą parenka **automatiškai**. Jei išnaudojama kvota, sutrinka teikėjo veikimas arba išauga išlaidos, kombinacija gali pereiti prie kito tinkamo ir veikiančio modelio. 🛡️
### ⚡ Nereikia jokios konfigūracijos — tiesiog naudokite `auto`
Nereikia kurti kombinacijos. Nustatykite modelį į `auto` (arba jo variantą), ir OmniRoute iš prijungtų teikėjų sukurs virtualią kombinaciją, vertinamą realiuoju laiku:
Modelio ID
Kam optimizuojama
auto
🎯 Subalansuota numatytoji parinktis (LKGP — lieka prie paskutinio sėkmingai naudoto teikėjo)
auto/coding
🧑💻 Kodo generavimo svoriai, pirmenybę teikiantys kokybei
auto/fast
⚡ Pirmiausia — mažiausia delsa
auto/cheap
💰 Pirmiausia — mažiausia vieno žetono kaina
auto/offline
🔋 Pirmiausia — didžiausias kvotos / užklausų dažnio limito rezervas
auto/smart
🔭 Pirmenybė kokybei + 10 % bandymų geresniems modeliams atrasti
auto/lkgp
📌 Aiškus prisirišimas prie paskutinio žinomo gero teikėjo
📊 Visa metodika ir išsami informacija apie funkcijas, lyginant 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 yra atvirai prižiūrimas. Jei jis padeda sutaupyti laiko ar pinigų, štai kaip galite padėti jam išlikti nepriklausomam — rinkitės jums tinkamiausią būdą. Rėmimas niekada nedaro įtakos maršruto parinkimo prioritetui; jis suteikia matomumą, o ne aukštesnę vietą.
**🇧🇷 PIX** — akimirksniu, be mokesčių (Brazilija)
Raktas (atsitiktinis): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix nukopijuokite ir įklijuokite:
```
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ą monetą 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 projekto npm install/postinstall metu gali būti sugeneruotas vietinis .env failas. Šis failas sąmoningai ignoruojamas naudojant .gitignore (žr. .gitignore) ir jo niekada negalima įtraukti į 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ų valdymo rekomendacijas rasite faile docs/DEVELOPER-ENVIRONMENT.md.
## 📡 „OmniRoute Radar“
Pagrindinis nemokamo plano rodiklis išlieka **~1.62B žetonų per mėnesį** pagal pirmiau pateiktą dokumentuotą katalogą, iš kurio pašalinti telkinių dubliavimai. Laikini paslaugų teikėjų registracijos kreditai gali atskirai padidinti pirmojo mėnesio kiekį iki **~2.22B**. „Radar“ yra pasirenkama, pasirašyta katalogo perdanga, skirta žmonėms, kurie tarp „OmniRoute“ leidimų nori naujesnės informacijos apie nemokamų modelių prieinamumą; bendruomenės katalogas ir visos esamos nemokamos funkcijos išlieka nemokami.
Rėmėjai gali gauti tiesiogiai atnaujinamą katalogą ir papildomas paslaugų teikėjų galimybes. Atskira, kintama jo viršutinė riba yra **daugiausia maždaug 3B žetonų per mėnesį**, priklausomai nuo paslaugų teikėjų prieinamumo. Ši viršutinė riba nėra garantuojama: paslaugų teikėjai gali bet kada keisti kvotas, tinkamumo reikalavimus, modelius ar regionus.
„Radar“ naudojamas tik pasirinktinai ir siunčia tik GET užklausas. „OmniRoute“ klientas neįkelia užklausų tekstų, srauto duomenų, paslaugų teikėjų konfigūracijos, naudojimo telemetrijos ar vietinės pranešimų atmetimo būsenos. Apie tinkamumo reikalavimus ir dabartinį katalogą sužinokite adresu **[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** — gaunamų A2A užduočių delegavimas jūsų agentų parkui, „Conductor“ gebėjimai agento kortelėje ir valdymo skydelio skiltis su „Faro“ tiesioginiu balso pokalbiu paspaudus mygtuką. → [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 taikomos atominės slenkančios RPM nuomos. → [Atsparumo vadovas](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanoninė `/v1/models` tvarka** — kiekvienam teikėjui skiriamas vienas vientisas pagal teikėjus sugrupuotas blokas (deriniai pateikiami pirmiausia), išliekantis stabilus visuose katalogo šaltiniuose. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🗜️ Sustiprintas glaudinimas** — pagal numatytuosius nustatymus įjungta išskleidimo apsauga, „Caveman“ paketai DE / FR / JA + kinų (wényán) kalboms, RTK filtrai, skirti „Gradle“ ir .NET. → [Glaudinimas](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Sąžiningai pateikiamos fiksuoto tarifo sąnaudos** — prenumeratos / programavimo planų teikėjų sąnaudų analizėje rodoma **$0**; biudžeto, kvotų ir maršruto parinkimo įverčiai skaičiuojami toliau. → [API žinynas](docs/reference/API_REFERENCE.md)
- **⚖️ Maršruto parinkimas pagal kvotų dalis** — bendrinamos paskyros kvota sąžiningai padalijama telkinyje esantiems raktams, o nenaudojamos dalys paskolinamos, kad pajėgumai neliktų neišnaudoti. → [Atsparumo vadovas](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 CLI / agentų 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 parinkiklį bei kiekvienam kontekstui skirtus parankinius. → [CLI integracijos](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Nuotolinis režimas** — valdykite nuotolinį „OmniRoute“ naudodami ribotos apimties prieigos raktus (`connect` / `contexts` / `tokens`) ir `antigravity` OAuth pagalbinę priemonę, skirtą VPS diegimams. → [Nuotolinis režimas](docs/guides/REMOTE-MODE.md)
- **🧭 Išmanesnis automatinis maršruto parinkimas** — `auto/:` deriniai, **Fusion** (modelių grupė + vertintojas), į užduotį atsižvelgiantis maršruto parinkimas, kiekvienos užklausos modelio / režimo / USD biudžeto perrašos. → [Automatiniai deriniai](docs/routing/AUTO-COMBO.md)
- **🗜️ Modulinis glaudinimas** — 12 tarpusavyje derinamų variklių ir „Compression Studios“: „LLMLingua-2“, dviejų lygių „Ultra“, `omniglyph`, kiekvieno žingsnio tikslumo patikra, GCF v3.2, pertvarkymo velkant redaktorius. → [Glaudinimas](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Skaidrus MITM iššifravimas (TPROXY)** — perimkite CLI, ignoruojančias tarpinio serverio aplinkos kintamuosius, 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, talpyklos HIT sutaupymo antraštė, kiekvienam raktui taikomos išlaidų USD kvotos. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🧠 Jūsų valdoma atmintis** — pagal numatytuosius nustatymus išjungta, pasirinktinai įjungiama int8 vektorių kvantizacija ir tipizuotas nykimas, kiekvienai užklausai skirtas `x-omniroute-no-memory`. → [Atmintis](docs/frameworks/MEMORY.md)
- **🛡️ Saugumas** — apsauga nuo raginimų injekcijų visuose LLM maršrutuose (raudonosios komandos testų rinkinys), pasirinktinai įjungiama prisijungimo duomenų maskavimo apsauga (abiem kryptimis užmaskuoja nutekintus API raktus / slaptus duomenis), nemokama paskutinės išeities „DuckDuckGo“ paieška žiniatinklyje ir pasirenkamas OIDC prisijungimo barjeras valdymo skydeliui (prisijungimas slaptažodžiu visada lieka prieinamas). → [Apsaugos priemonės](docs/security/GUARDRAILS.md)
- **🖼️ Nauji galiniai taškai** — `/v1/ocr` („Mistral OCR“) ir `/v1/audio/translations` („Whisper“ stiliaus) papildo medijos API galimybes. → [API žinynas](docs/reference/API_REFERENCE.md)
- **🎨 Vaizdų / vaizdo įrašų / garso generavimas** — viena API medijai: „xAI Grok Imagine“ ir „Novita AI“ vaizdo įrašai, „ComfyUI“, „Magnific“, „Adobe Firefly“, „Segmind“ ir 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 patikimumo 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` derinių strategija ir automatinių derinių `cacheAffinity` veiksnys pakartotines užklausas nukreipia į ryšį, kuriame saugomas talpyklos prefiksas, o tik skaitymui skirtas `/v1/auto-combo/{channel}/candidates` galinis taškas atskleidžia tiesiogiai atnaujinamą `auto/*` kanalo kandidatų telkinį. → [Automatiniai deriniai](docs/routing/AUTO-COMBO.md)
- **⚡ Vietinis našumas ir infrastruktūra** — vienu spustelėjimu įdiegiamas vietinis „Redis“, „Cloudflare Workers“ / „Deno Deploy“ perdavimo serverių diegimo priemonės, „Bifrost“ ir „Mux“ kaip prižiūrimos įtaisytosios paslaugos. → [Įtaisytosios paslaugos](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Taip pat įtraukta** — papildinių sistema ir prekyvietė, „Omni“ / agentų / „GitHub“ gebėjimų sistemos, „Obsidian“ saugyklos integracija (22 MCP įrankiai), su „OpenAI“ suderinamos „Batch“ ir „Files“ API, semantinė atsakymų talpykla, žaidybinimas su lyderių lentelėmis, ACP agentų aptikimas (15 integruotų agentų), suplanuotas žurnalų eksportas į „BigQuery“, `auto/chaos` gedimų imitavimas, „Telegram“ roboto tiltas, programoje integruota versijų tvarkytuvė ir nemokamų teikėjų „LMArena-ELO“ reitingai. → [Dokumentacija](docs/README.md)
## 🤖 Suderinamos CLI ir programavimo agentai
> Viena konfigūracija — `http://localhost:20128/v1` — ir **kiekviena** DI IDE ar CLI veikia naudodama nemokamus ir nebrangius modelius.
**Paleiskite bet kurią palaikomą CLI per OmniRoute viena komanda** — konfigūracijos failai neįrašomi,
prisijungimo duomenys įterpiami kiekvienam procesui atskirai, 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ą ir modelį bei įrašykite paties įrankio konfigūraciją:
omniroute configure codex # taip pat: claude opencode qwen aider goose gemini cline continue kilo
```
Kiekviena komanda naudoja aktyvų nuotolinį kontekstą (`omniroute connect `), `--dry-run`
leidžia peržiūrėti tikslius aplinkos kintamuosius ir argumentus nieko nevykdant, o `--api-key-env NAME` neleidžia
paslaptims patekti į jūsų apvalkalo istoriją. → [CLI integracijos](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 357 DI teikėjai — 152 kataloge pažymėti kaip nemokami
> **357 užregistruoti teikėjai** kanoniniuose pokalbių, medijos, paieškos, vietinių, debesijos agentų ir sistemos rinkiniuose, iš kurių **152 turi `hasFree: true` aptikimo metaduomenis**. Pokalbių modelių registre yra **229 teikėjai / 2 554 unikalios teikėjo ir modelio poros / 1 283 neapdoroti modelių ID**; atskirame nemokamų limitų kataloge yra **491 modeliui skirta eilutė**, **35 periodiškai atnaujinami fondai** ir **54 periodiškai atnaujinami arba rakto nereikalaujantys visam laikui nemokami teikėjai**. Šie vardikliai skiriasi sąmoningai; apibrėžtys ir skaičiavimai, kuriuose fondų dublikatai pašalinti, pateikti [Teikėjų žinyne](docs/reference/PROVIDER_REFERENCE.md) ir [Nemokamuose planuose](docs/reference/FREE_TIERS.md).
### 🏢 Visos pagrindinės laboratorijos — per vieną galinį tašką
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…ir dar daugiau nei 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 Be ž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 Daugiau nei 50 modelių 10 tūkst. neuronų per dieną
NVIDIA NIM GLM, MiniMax ~40 RPM nemokamai
Cerebras GLM 4.7, GPT-OSS 1 mln. žetonų per dieną
OpenRouter :free modeliai +$10 → didesnis RPM
📖 Visas kompiuterio skaitomas katalogas → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Kur veikia „OmniRoute“ — bet kur
> Ta pati programa, jūsų įrenginys, jūsų taisyklės. Nuo visuotinio diegimo per npm iki **jūsų telefono** naudojant „Termux“.
Platforma
Diegimas
Svarbiausios ypatybės
📦 npm (visuotinis)
npm install -g omniroute
Viena komanda, bet kuri OS
🐳 Docker
docker run … diegosouzapw/omniroute
Kelių architektūrų: AMD64 + ARM64
🖥️ Darbalaukis (Electron)
npm run electron:build
Savasis langas ir sistemos dėklas — Windows / macOS / Linux
💪 ARM
savasis arm64
Raspberry Pi, ARM serveriai, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Veikia jūsų telefone visą parą, nereikia „root“ teisių
📲 PWA
„Pridėti prie pradžios ekrano“
Viso ekrano režimas, veikia neprisijungus, galima įdiegti iš naršyklės
🧩 OpenCode papildinys
@omniroute/opencode-provider
Savoji „OpenCode“ integracija
🤖 VS Code Copilot Chat
įdiekite OmniCopilot plėtinį
Visi „OmniRoute“ modeliai savajame „Copilot Chat“ pasirinkimo sąraše — stabilioje ir „Insiders“ versijose
> Jokios naujos šoninės juostos, jokios naujos pokalbių sąsajos — visi „OmniRoute“ pateikiami modeliai rodomi tiesiog
> **jūsų jau naudojamame „Copilot Chat“ modelių pasirinkimo sąraše**. Nuo VS Code 1.122 teikėjų modeliai veikia
> neprisijungus prie „GitHub“ ir be „Copilot“ prenumeratos — agento režimas, įrankių iškvietimas ir vaizdų apdorojimas,
> nemokamai.
Įdiekite **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** plėtinį, nukreipkite jį
į savo „OmniRoute“ serverį (numatytoji reikšmė — `localhost:20128`), tada atverkite „Copilot Chat“ → modelių pasirinkimo sąrašą
→ **Tvarkyti modelius…** → **OmniRoute**.
> Be serverio, „OmniRoute“ yra **visavertis komandų eilutės valdymo centras**, turintis **daugiau nei 80 komandų**, taip pat atviruosius agentų protokolus, todėl DI agentas gali jį valdyti **savarankiškai**.
### ⌨️ Tikra CLI (ne vien `start`)
```bash
omniroute # paleisti tinklų sietuvą ir valdymo skydelį (20128 prievadas)
omniroute chat # interaktyvus TUI pokalbių klientas (komandos su pasviruoju brūkšniu: /model /combo /skill /memory)
omniroute setup # vedlys, padedantis atlikti pradinę sąranką
omniroute doctor # diagnozuoti teikėjus, prievadus ir savąsias priklausomybes
```
### 🛰️ Nuotolinis režimas — CLI paleiskite č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 list # ← 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 kompiuteriams
omniroute contexts use default # ← grįžti prie vietinio serverio
```
Prieigos raktų aprėptys yra `read` / `write` / `admin`; procesus paleidžiantys maršrutai lieka pasiekiami tik per atgalinio 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**, **saityno įvykių pranešimus** arba **nuotolinę CLI** — bet kuris pajėgus agentas (ar jūsų pačių kodas) gaus viso tinklų sietuvo valdymo galimybes: maršrutizavimo, teikėjų, derinių, podėlio, glaudinimo ir atminties — visa tai galės valdyti savarankiškai. Toliau nurodyti HTTP galiniai taškai pasiekiami adresu `http://localhost:20128`.
Sąsaja
Galinis taškas / komanda
Kam skirta
🧰 MCP (stdio)
omniroute --mcp
Prijungti prie Claude Desktop, Cursor ar bet kurio MCP kliento
Ryšys tarp agentų, JSON-RPC 2.0 + SSE, 6 gebėjimai
🌐 REST API
/v1/*
Suderinama su OpenAI — pokalbiai, įterpiniai, vaizdai, garsas, OCR
🔔 Saityno įvykių pranešimai
/api/webhooks
Siųsti užklausų / kvotų įvykius į Slack, Discord, Telegram arba bet kurį URL
🛰️ Nuotolinė CLI
omniroute connect
Valdyti nuotolinį egzempliorių naudojant ribotos aprėpties prieigos raktus
```bash
# Suteikti Claude Code visą „OmniRoute“ įrankių rinkinį per MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [MCP serveris](docs/frameworks/MCP-SERVER.md) · [A2A serveris](docs/frameworks/A2A-SERVER.md) · [Agentų protokolai](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Sutaupykite 15–95 % tokenų — automatiškai
### 📖 Kaip tai veikia — konvejeris, architektūra ir sutaupymo skaičiavimas
Numatytasis sudėtinis derinys vykdo `RTK → Caveman`. Kai abu varikliai apdoroja tą pačią įrankio ar konteksto naudingąją apkrovą, sutaupymas dauginasi:
```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 tokenų, kai pakanka kelių?** Kiekviena užklausa pereina per OmniRoute glaudinimo konvejerį **skaidriai** — kliento keisti nereikia. Dabar tai yra **12 komponuojamų variklių rinkinys**, kuris vykdomas nustatyta tvarka ir kurio komponentus galima derinti kiekviename maršruto parinkimo derinyje — 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ų rinkinys
Varikliai vykdomi konvejerio tvarka; kiekvieną jų galima atskirai įjungti, išjungti ir konfigūruoti kiekvienam deriniui:
#
Variklis
Ką jis daro
1
Session-Dedup
Pašalina tarp sąveikos etapų pasikartojantį turinį (pagal turinio adresavimą, tarp etapų)
2
CCR
Archyvuoja didelius blokus už gavimo žymeklių, o prireikus juos gauna
3
Lite
Pašalina perteklinius tarpus ir vaizdų URL (mažos delsos bazinis variantas)
4
RTK
Išmaniai filtruoja, deduplikuoja ir trumpina įrankių rezultatus (atsižvelgdamas į komandą)
5
Responses Tool Output
Pirmiausia nenuostolingas JSON ir ribotas diagnostinis shell/patch/search/build išvesčių glaudinimas (Responses API)
Apibendrina ir laipsniškai sendina senus sąveikos etapus
10
LLMLingua-2
ML semantinis retinimas naudojant MobileBERT ONNX — saugus kodui, asinchroninis
11
Ultra
Heuristinis tokenų retinimas su pasirinktine mažo modelio (SLM) pakopa
12
OmniGlyph
Eksperimentinis konteksto kaip vaizdo kodavimas, skirtas išmatuotam Claude Fable 5 tiesioginiame Anthropic ryšyje; GPT 5.6 transformatoriai lieka saugiai išjungti, kol laukiama tiekėjo patvirtinimų. Keturi glaudinimo profiliai (numatytasis agresyvus, subalansuotas, saugus kodavimui, praleidžiantis 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 %
Saugus numatytasis režimas, kurį galima visada laikyti įjungtą
🪨 Standard (Caveman)
~30 %
Kasdieniam programavimui
⚡ Aggressive
~50 %
Ilgoms sesijoms, kuriose intensyviai naudojami įrankiai
🔥 Ultra
~75 %
Didžiausiam sutaupymui
🧰 RTK
60–90 %
Shell/test/build/git išvesčiai
🔗 Sudėtinis (RTK → Caveman)
78–95 %
Mišrioms užklausoms ir įrankių žurnalams
**Tikras pavyzdys — Standard režimas:**
> **Prieš (69 tokenai):** _„Tikėtina, kad jūsų React komponentas atvaizduojamas iš naujo todėl, kad per kiekvieną atvaizdavimo ciklą sukuriate naują objekto nuorodą. Kai perduodate įterptinį objektą kaip prop, React paviršinis palyginimas kiekvieną kartą jį laiko kitu objektu, todėl suaktyvinamas pakartotinis atvaizdavimas. Rekomenduočiau naudoti useMemo objektui įsiminti.“_
>
> **Po (19 tokenų):** _„Kiekvieną kartą atvaizduojant sukuriama nauja objekto nuoroda. Įterptinis objekto prop = nauja nuoroda = pakartotinis atvaizdavimas. Naudokite useMemo.“_
>
> **Tas pats atsakymas. 72 % mažiau tokenų. Jokio tikslumo praradimo.** ✅
**PT-BR pavyzdys — [Troglodita](https://github.com/leninejunior/troglodita) režimas:**
> **Prieš (42 tokenai):** _„Problema ta, kad komponentas atvaizduojamas iš naujo, nes per kiekvieną atvaizdavimo ciklą sukuriama nauja objekto nuoroda. Rekomenduočiau naudoti useMemo.“_
>
> **Po (12 tokenų):** _„Pakartotinis atvaizdavimas: nauja nuoroda kiekviename cikle (įterptinis objektas sukuriamas iš naujo). Naudokite `useMemo`.“_
>
> **Tas pats atsakymas. ~70 % mažiau tokenų. Techninis tikslumas nepakito.** ✅
### 🎚️ Daugiau nei varikliai — išvesties stiliai, adaptyvus reguliatorius ir kiekvienos užklausos valdymas
12 pirmiau nurodytų variklių sumažina tai, kas patenka **į vidų**. Dar trys sluoksniai nustato, **kaip**, **kada** ir kas pateikiama **išorėn**:
- **🪄 Išvesties stiliai** _(išvesties ašies valdymas)_ — įterpia deterministines, podėliui saugias atsakymo formavimo instrukcijas; stilius galima derinti, kiekvienam pasirenkant `lite` / `full` / `ultra` intensyvumą. Stiliui pridėti pakanka vienos registro eilutės:
- **Glausta proza** — pašalinami užpildai, artikeliai ir abejonės; techninis turinys išlaikomas tikslus.
- **Mažiau kodo** — „tingaus vyresniojo programuotojo“ YAGNI principas: mažiausias veikiantis pakeitimas, jokios neprašytos papildomos struktūros.
- **Ponytail (tingus vyresnysis programuotojas)** — kopkite YAGNI laipteliais, pašalinkite pagrindinę priežastį, pateikite mažiausią veikiančią pataisą.
- **Turiu ADHD (pirmiausia veiksmas)** — pradėkite nuo kito veiksmo, sunumeruokite veiksmus, pateikite vieną konkretų kitą žingsnį, be įžangos.
- **Glaustas CJK (文言)** — itin glaustas klasikinės kinų kalbos stilius (pagal lokalę apribotas iki `zh`).
- **🎯 Adaptyvus konteksto biudžetas** _(reguliatorius)_ — užuot naudojus vieną įjungimo ar išjungimo tokenų slenkstį, pigiausi ir mažiausiai nuostolingi varikliai stiprinami tik tiek, kiek reikia, kad turinys **tilptų į modelio konteksto langą**. Strategija: `reserve-output` (numatytoji, atsižvelgianti į modelį) · `percentage` · `absolute`. Režimas: `floor` (garantuoti, kad tilps) · `replace-autotrigger` (jūsų aiškus pasirinkimas turi pirmenybę) · `off` (senasis slenkstis).
- **🎛️ Kur priimamas sprendimas dėl glaudinimo** _(pirmenybė nuo aukščiausios iki žemiausios)_ — kiekvienos užklausos `x-omniroute-compression` antraštė › maršruto parinkimo derinio perrašymas › aktyvus įvardytasis profilis › adaptyvus arba automatinis suaktyvinimas › skydelio numatytoji nuostata › išjungta. Pritaikytas planas grąžinamas `X-OmniRoute-Compression: ; source=` atsakymo antraštėje.
Nustatykite automatinį suaktyvinimą pagal tokenų slenkstį, įjunkite adaptyvų reguliatorių, prisekite įvardytąjį profilį, nustatykite vienkartinę parinktį konkrečiai užklausai arba priskirkite konvejerį kiekvienam maršruto parinkimo deriniui — rinkitės tai, kas geriausiai atitinka darbo krūvį. Pasirenkama autonominė **vertinimo sistema** (`npm run eval:compression`) prieš paskelbiant pakeitimą įvertina fiksuoto tekstyno tikslumo ir sutaupymo santykį.
📖 [`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 peer-dep įspėjimus? [Jie nepavojingi](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
Valdymo skydelis pasiekiamas adresu `http://localhost:20128` · API pasiekiama adresu `http://localhost:20128/v1`.
**2) Prijunkite NEMOKAMĄ tiekėją (registruotis nereikia)**
Valdymo skydelis → **Tiekėjai** → prijunkite **Kiro AI** (nemokamas Claude, ~50 kreditų per mėnesį vienai paskyrai) arba **OpenCode Free** (autentifikuotis nereikia) → atlikta.
**3) Nukreipkite savo programavimo įrankį**
```txt
Base URL: http://localhost:20128/v1
API Key: [nukopijuokite iš Valdymo skydelis → Galiniai taškai]
Model: auto (išmanusis maršruto parinkimas be konfigūracijos — arba bet kuris tiekėjas / modelis)
```
**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 persijungs į atsarginį variantą.
Jei jūsų klientas negali siųsti pasirinktinių antraščių, OmniRoute taip pat pateikia su tokenu susietus suderinamumo alternatyviuosius adresus:
```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
```
Juos naudokite tik klientams, kurie negali pridėti `Authorization: Bearer ...`. Autentifikavimas naudojant antraštę išlieka pageidaujamu režimu.
## 📦 Daugiau diegimo būdų — Docker, šaltinio 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ą** stabilų SemVer leidimą. Jis neseka git `main` šakos. Naudodami GitOps, prisekite `:X.Y.Z`. Žr. [Docker leidimų kanalai](docs/guides/DOCKER_GUIDE.md#release-channels). Atvaizde nustatyta fiksuota **`OMNIROUTE_MEMORY_MB=1024`** reikšmė. Jos pakanka valdymo skydeliui ir lengvam pokalbiui. **Programavimo agentams** (`POST /v1/responses` iš Claude Code, Codex, Grok, …) reikia gerokai didesnės V8 krūvos, kitaip, persidengus dviem ilgiems kontekstams, procesas patiria `FATAL ERROR` ties ~12 GiB riba. Konteineriui skirkite daugiau atminties nei krūvai (vietiniai buferiai yra už V8 ribų):
| Darbo krūvis | Krūva (`-e OMNIROUTE_MEMORY_MB`) | Konteineris (`--memory`) |
| ------------------------------------------------ | ------------------------------------ | ------------------------ |
| Valdymo skydelis / lengvas pokalbis | `1024` (numatytoji atvaizdo reikšmė) | ≥2 g |
| Vienas programavimo agentas | `8192` | ≥10 g |
| Dvi lygiagrečios 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 atmintis](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šleistoms pataisoms testuoti ir
> **nėra palaikomos gamybinėje aplinkoje**. Žr.
> [Docker leidimų kanalai](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 naudoja `better-sqlite3` arba `sql.js` kaip atsarginį variantą.
- **Automatinis Webpack paketų kūrimo įrankio 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 vietinėmis V8 sąsajomis. Gamybiniai komponavimai (`bun run build`) tiksliai vadovaujasi `OMNIROUTE_USE_TURBOPACK`, kaip ir Node aplinkoje: pagal numatytąją parinktį naudojamas Turbopack, o `OMNIROUTE_USE_TURBOPACK=0` nurodo komponuoti naudojant Webpack (`Dockerfile.bun` pateikia jį kaip `--build-arg`).
- **Specialus Bun Dockerfile**: kelių etapų `Dockerfile.bun`, skirtas vietiniams Bun gamybiniams diegimams (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Įdiekite ir paleiskite naudodami Bun
bun install
bun run dev
```
**🛠️ Iš šaltinio 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 prijungiamą duomenų katalogą
mkdir -p data
# 2. Tik Linux ir vietiniam bešakniam Podman (niekada ne nuotoliniam Podman Machine klientui):
podman unshare chown 1000:1000 ./data
# 3. Nustatykite vykdymo aplinkos nuorodą, sukomponuokite 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 gairėmis](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Podman vadovas](contrib/podman/README.md) — Compose komponavimas, Podman Machine ir
Linux/systemd Quadlet sąranka.
**⚡ Spartesnis / mažiau išteklių naudojantis diegimas (praleidžiant vietinį komponavimą)**
Vietinis SQLite variklis (`better-sqlite3`) yra **pasirenkamoji** priklausomybė, todėl visuotinis
diegimas niekada neužstringa dėl kompiliavimo iš šaltinio kodo: kai jūsų platformai ar Node versijai
tinka iš anksto sukompiliuotas dvejetainis failas, naudojamas jis, o kitu atveju skaidriai pereinama
prie grynojo JS variklio (`node:sqlite` Node 22+ aplinkoje, kitu atveju — pridėtojo `sql.js` WASM) — komponavimo įrankių nereikia.
Norėdami visiškai praleisti po įdiegimo atliekamą vietinį paruošimą (CI, aplinkose be grafinės sąsajos ar lėtuose įrenginiuose):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 taip pat jį praleidžia
```
Sparčiausiam diegimui rinkitės **pnpm** (pagal turinį adresuojama saugykla ir standžiosios nuorodos — žr. pirmiau).
Norėdami naudoti begrafinę vykdymo aplinką be valdymo skydelio, pasirinkite Docker `base` profilį (pirmiau) arba
[Termux vadovą](docs/guides/TERMUX_GUIDE.md). CLI ir žiniatinklio valdymo skydelį aptarnauja tas pats
procesas per vieną prievadą, todėl šiuo metu atskiro tik CLI skirto paketo nėra.
# ⭐ Aktyviausi prisidėjusieji
> „OmniRoute“ kuria atsidavusi atvirojo kodo bendruomenė. Šie žmonės išskirtinai prisidėjo ir tiesiogiai paveikė projekto kokybę, stabilumą bei pasiekiamumą. **Ačiū.**
### Išoriniai prisidėjusieji pagal sujungtas ištraukimo užklausas
Duomenys užfiksuoti ties aktyvios release/v3.8.50 šakos viršūne dafb4ae808, įtraukiant sujungimus iki 2026-08-24 05:26:03 UTC. Puslapiais pateikiamas „GitHub GraphQL“ surašymas apima 5 911 sujungtų PR: 2 707 pateikė saugyklos savininkas, 179 – „Dependabot“, o 3 025 išorines PR pateikė 535 skirtingi prisidėjusieji. „Pakeista eilučių“ yra „GitHub“ pridėtų ir pašalintų eilučių suma, apimanti sugeneruotus failus, priklausomybių užrakinimo failus, katalogus, vertimus ir dokumentaciją; tai pakeitimų apimtis, o ne autoriaus parašytų kodo eilučių skaičius. Vienodą rezultatą ties atrankos riba pasiekę įrašai palikti.
### „GitHub“ priskirti įvykdyti pakeitimai
Bob.Hou 🏅 51 GitHub priskiriamas pakeitimas · dalijasi 10 vietą
Xiangzhe 🏅 51 GitHub priskiriamas pakeitimas · dalijasi 10 vietą
Pakartotinai patikrinta 2026-08-24 06:14:31 UTC: saugyklos bendraautorių API pateikti GitHub priskiriami pakeitimai numatytojoje release/v3.8.50 šakoje. API grąžino 525 tapatybes (415 naudotojų, 2 robotus, 108 anoniminius dalyvius); šioje lentelėje neįtrauktas prižiūrėtojas, robotai ir anoniminės tapatybės, o vienodos vietos išsaugotos. Šis sąrašas skiriasi tiek nuo aukščiau pateikto sujungtų PR reitingo, tiek nuo žemiau pateikto 639 asmenų Git metaduomenų surašymo.
> 🙏 Šių bendraautorių sukurtos funkcijos, klaidų pataisymai ir infrastruktūros patobulinimai yra **esminė dalis** to, kas daro OmniRoute patikimą ir funkcionalų. Kiekviena pakeitimų užklausa, kiekvienas testavimo atvejis ir kiekvienas i18n vertimo failas yra svarbūs. Atvirąjį kodą kuria tokie žmonės kaip jie.
---
## 💖 Rėmėjai
Nuoširdžiai dėkojame žmonėms, kurie finansuoja „OmniRoute“ iš savo kišenės — kiekvienas įnašas padeda projektui išlikti nemokamam, nepriklausomam ir judėti pirmyn.
longtao 💛 Anksčiau vienkartinę paramą suteikęs rėmėjas
… ir kiti, pageidaujantys likti nežinomi 💛Vieši „GitHub Sponsors“ rėmėjai pakartotinai patikrinti 2026-08-24. Anksčiau pateiktas aktyvumo žymas nustato „GitHub“ būsena activeOnly; anksčiau paviešintiems vienkartiniams rėmėjams ir toliau dėkojama, 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 įsipareigojimų autoriai (įskaitant prižiūrėtoją), o 232 nurodyti tik aiškiose Co-authored-by pabaigos eilutėse. Atliekant apskaitą normalizuojamos „GitHub“ noreply paskyros, neįtraukiamos 26 robotų, agentų, paslaugų ir vietaženklių tapatybės, o įprasti el. pašto adresai nesujungiami vien todėl, kad sutampa jų rodomi vardai.
### Kaip prisidėti
1. Sukurkite saugyklos kopiją
2. Sukurkite šaką nuo **aktyvios** `release/vX.Y.Z` šakos viršūnės (ne nuo `main`) — žr. [Šakų ir laidų modelį](docs/ops/BRANCHING_MODEL.md)
3. Sukurkite savo funkcijos šaką (`git checkout -b feat/amazing-feature`)
4. Patvirtinkite 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 laidą — npm publish bus įvykdyta 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. Projektas 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 nuo tada kiekvieną toliau nurodytą posistemę įkvėpė atvirojo kodo projektas, pirmasis įgyvendinęs atitinkamą idėją. Kiekvienas jų prisidėjo prie konkrečios OmniRoute dalies. Taip jiems visiems dėkojame. 🙏
> ⭐ žvaigždučių skaičius patikrintas naudojant GitHub REST API 2026 m. rugpjūčio 24 d. — suteikite šiems projektams po žvaigždutę. Skaičiai yra tiksli konkrečios datos momentinė kopija ir laikui bėgant natūraliai keisis.
### 🧬 Kilmė ir šliuzas
DI šliuzas, kurio viešas kainų duomenų rinkinys naudojamas mūsų išlaidų stebėjimo sinchronizavimui, o paslaugų teikėjų normalizavimo modelis padėjo suformuoti mūsų maršrutizavimą.
MIT šaltinio kodas, pritaikytas į projektą įtrauktam ChatGPT Web → Codex Responses tiltui, įskaitant naršyklės seanso, atsakymų kadravimo, naudojimo apskaitos ir žiniatinklio paieškos adapterius.
Pagrindinis netiesioginis grok2api-merged kodo šaltinis; jo modelių, antraščių, naudingųjų duomenų, Statsig ir apdorojimo modulių realizacijos išsaugotos Grok Web kilmės grandinėje.
Pirminis MIT šaltinis, skirtas Grok naudingųjų duomenų ir įrenginių numatytosioms nuostatoms, Statsig generatoriui bei result.response apdorojimo moduliui, perduotam per TQZHR ir grok2api-merged.
Netiesioginis šaltinis, kurį grok2api-merged nurodo kaip savo tarpinių serverių telkinio sluoksnio šaltinį; OmniRoute išsaugo šią kilmės nuorodą, tačiau neteigia, kad į ribotos apimties Grok Web vykdymo modulį buvo perkeltas tarpinių serverių telkinys.
Jo slapukais autentifikuojamas Grok tarpinis serveris ir result.response.token srautinio perdavimo šablonas padėjo suformuoti OmniRoute Grok Web perdavimo sluoksnį.
Kuriant pradinę Grok Web realizaciją remtasi jo HTTP / naršyklės aukštesniojo lygio serverio architektūra; jo tiesioginis HTTP kelias kilęs iš GrokProxy, todėl neteigiama, kad kodas buvo perkeltas savarankiškai.
Virusiniu tapęs projektas „kam naudoti daug žodžių, kai pakanka kelių“ — jo urvinio žmogaus kalbos filosofija užtikrina mūsų standartinio glaudinimo režimo ir daugiau nei 30 perteklinių žodžių šalinimo bei sutraukimo taisyklių veikimą.
Raginimų glaudinimo tyrimai (LLMLingua / LLMLingua-2) — įkvėpė mūsų asinchroninį, kodui saugų ir sutrikus glaudinimui pradinę išvestį grąžinantį llmlingua variklį.
PT-BR prieigos raktų glaudinimas — užtikrina mūsų pt-BR kalbos paketo veikimą: pleonazmų mažinimą ir perteklinių žodžių šalinimą, pritaikytą Brazilijos portugalų kalbos gramatikai.
Virusiniu tapęs „tingaus vyresniojo programuotojo“ YAGNI kodavimo įgūdis — įkvėpė mūsų mažiau kodo išvesties stilių: orientavimą į mažiausią veikiantį pakeitimą, sumažinantį _sugeneruoto_ kodo kiekį (išvesties ašies atitikmenį glaustai Caveman prozai).
Jo į veiksmą orientuotas, ADHD turintiems žmonėms pritaikytas atsakymų stilius buvo pritaikytas glaustam OmniRoute išvesties stiliui penkiomis kalbomis.
### 🧩 Kompaktiški formatai, prieigos raktų tyrimai ir kodą išmanantys įrankiai
Turinį ir failų tipus atpažįstantis išvesties glaudinimas, atsisakantis glaudinti nesėkmės atveju — patvirtino mūsų paskirstymo pagal tipą ir praleidimo nepasiekus minimalaus sutaupymo principus.
Rust stulpelinis JSON, turiniu adresuojamas gavimas ir pasikartojimų šalinimas tarp pranešimų — patvirtino mūsų headroom / ccr / session-dedup variklių architektūrą ir podėlio stabilumo invariantą „suglaudinto pavidalo reikšmė nepriklauso nuo jo padėties“.
TypeScript Compiler API įrankių rinkinys — įkvėpė mūsų analizatoriumi pagrįstą komentarų šalinimą, išsaugantį eilučių, šablonų ir reguliariųjų reiškinių literalus.
Kodavimo asistento ↔ LLM srauto MITM perėmimas ir analizė padėjo suformuoti ankstyvuosius Traffic Inspector reikalavimus. Keturi anksčiau išvestiniai moduliai — SSE sujungimas, pokalbių normalizavimas, slaptų duomenų maskavimas ir antraščių valymas — pakeisti nepriklausomomis švariojo kambario realizacijomis, pagrįstomis viešais protokolų standartais. Dvi pagrindinio kompiuterio tiesioginio perdavimo sąsajos (passthrough.ts ir _internal/bypass.cjs) tebėra atskirai klasifikuojamos vidinės OmniRoute realizacijos; atliekant šį pakeitimą jos nebuvo perrašytos.
Skaidrusis kiekvieno proceso tarpinio serverio maršrutizavimas — įkvėpė mūsų gedimams atsparų MITM išjungimą, lizdų neveiklumo skirtąjį laiką, /proc procesų priskyrimą ir TPROXY perėmimą.
### 📚 Modelių duomenys, stebimumas ir naudotojo sąsaja
Atrinktas pagal numatytąsias nuostatas saugių bibliotekų sąrašas, kuriuo vadovaujamės priimdami saugumo sprendimus (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Jo paskyras atpažįstantis modelių persiejimas, vykdomųjų failų kelių tikrinimas ir planų žymų elgsena padėjo formuoti OmniRoute Antigravity vykdymo aplinką.