## 💰 ~1,62 mlrd. tokena / mjesec kroz besplatne pakete trećih strana
> **Dovedite vlastite račune kod provajdera.** Ovo je procijenjeni zbir kroz zasebno prihvatljive besplatne pakete trećih strana, a ne dodjela tokena od OmniRoute-a. Registrujte se, pribavite akreditive gdje je potrebno i povežite provajdere koje možete koristiti; svaki provajder kontroliše svoje limite, dostupnost i uslove.
>
> Ručno slaganje besplatnih paketa je mukotrpno — desetine SDK-ova, desetine ograničenja brzine i nikakva predstava o tome koliko zapravo imate. OmniRoute katalogizuje **467 unosa besplatnih paketa kroz 34 ključa ponavljajućih pool-ova** i izračunava naslovnu brojku tokena iz **17 pool-ova sa objavljenim pozitivnim mjesečnim budžetom plus pet Groq ograničenja po modelu**, deduplicirano po zajedničkom pool-u. Kvote koje se otvaraju tek nakon regionalne provjere identiteta (danas: ModelScope) prikazane su odvojeno, +~6M iza regionalne verifikacije identiteta, i nikada se ne sabiraju u naslovnu brojku. Rezultat ostaje vidljiv na kontrolnoj tabli (`/dashboard/free-tiers`).
> Animirani sažetak žive stranice `/dashboard/free-tiers`. Kompletna metodologija (deduplikacija pool-ova, nivoi kredita, uslovi provajdera): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Ove brojke se ponovo revidiraju svake dvije sedmice u odnosu na živi katalog i **kreću se u oba smjera** — provajder ukine besplatni paket i broj padne; novi se pojavi i broj poraste. Objavljujemo ono što katalog zaista izračuna, nikada zaokružen najbolji scenario.
⭐ Označite repo zvjezdicom ako vam je OMNIROUTE pomogao da uštedite novac i olakšate rad.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Pridružite se zajednici
**👋 Pratite održavaoca — prvi saznajte o novim provajderima, izdanjima i savjetima:**
[](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)
**Pitanja, savjeti o provajderima, plan razvoja i podrška → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Gateway nastavlja rasti
| | v3.8.50 | **v3.8.51** | `v3.8.53+` |
| ---------------------------------------- | :-------------------: | :---------: | :-------------------: |
| 🌐 Pružatelji | 352 | **358** | 375 |
| 🧠 Jedinstveni ID-ovi modela za razgovor | 1320 | **1374** | 1475 |
| 🖼️ Most modaliteta | 🆕 vid + zvuk + video | ✓ | ✓ |
| 📡 Besplatni Radar katalog | 🆕 po izboru | ✓ | ✓ |
| ⚖️ Raspoređivanje prema kvoti | 🆕 Quota-Share | ✓ | ✓ |
| 📊 Telemetrija kvota | 🆕 uživo | ✓ | ✓ |
| 🧰 Bezglavi način rada | — | — | 🆕 `serve --headless` |
| 🛤️ Infrastruktura LTS grane | — | — | 🆕 kanali izdanja |
| 🔎 API za otkrivanje modela | — | — | 🆕 `/v1/models/query` |
**→ [Plan razvoja](ROADMAP.md) — prateći granu do `v3.9.0 LTS`**
## 🆓 Instalirajte, povežite pružatelja usluga, a zatim usmjeravajte putem jedne krajnje tačke
```bash
# Nakon povezivanja pružatelja usluga, kopirajte svoj OmniRoute ključ iz Kontrolna ploča → Krajnje tačke:
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!"}]}'
```
Za `auto` je potrebna podržana ruta. Svježa instalacija možda nema nijedno podržano odredište bez ključa, a pružatelj usluga bez ključa može odbiti klijente trećih strana. Pružatelji usluga označeni sa `tos: avoid`, uključujući Kiro, podrazumijevano su isključeni iz automatskog usmjeravanja; povezivanje računa ne mijenja tu postavku. Prije odabira pružatelja usluga pogledajte [Vodič za besplatne nivoe](docs/getting-started/FREE-TIERS-GUIDE.md).📦 Skripte za brzi početak koje možete kopirati i zalijepiti za **Python, Node.js, PHP i cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Obećanje
# 🤔 Zašto OmniRoute?
## 🤝 Uz podršku naših prijatelja otvorenog koda
> **Želite li nam se pridružiti kao prijatelj otvorenog koda?** Ovo su kompanije koje podržavaju otvoreni kod i pomažu da OmniRoute nastavi napredovati — a mi javno navodimo gdje odlazi svaki token koji nam daju. Javite se na: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Hvala kompaniji Kimi (Moonshot AI), našem osnivačkom prijatelju otvorenog koda, na podršci ovom projektu! Kimi je AI laboratorija koja stoji iza porodica modela s otvorenim težinama K2 i K3 — Kimi K3 pruža kontekstni prozor od 1M tokena, nativnu podršku za vid i programiranje na najvišem nivou po djeliću cijene zatvorenih modela te odmah radi s alatima Claude Code, Codex i svim alatima za programiranje koje OmniRoute podržava.
Šta omogućava podrška kompanije Kimi: Kimi API krediti pokreću OmniRouteov proces izdanja potvrđen pomoću AI-ja — fazu provjere spajanja koju pokreće Kimi K3, a koja pregleda svaki zahtjev za povlačenje prije objave — kao i svakodnevni razvoj funkcionalnosti. Prvorazredna podrška za Kimi dostupna je putem oba kanala: direktnog Kimi API-ja (kimi-k3) i Kimi Code plana za programiranje (OAuth i API ključ). OmniRoute je također prvi brazilski projekat otvorenog koda u programu podrške kompanije Kimi. Nabavite Kimi API ključ uz 15% dodatnih kredita →
Cheaper Inference cheaperinference.com
Hvala kompaniji Cheaper Inference, OmniRouteovom prijatelju otvorenog koda, na podršci ovom projektu! Cheaper Inference je pristupnik rangiran prema troškovima koji preprodaje 42 vrhunska modela — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok i MiniMax — putem jedne krajnje tačke kompatibilne s OpenAI-jem, usmjeravajući svaki zahtjev prema najjeftinijem odgovarajućem pružaocu usluga, a da pritom nikada ne naplaćuje više od cijene koju je odredio proizvođač modela.
Prvorazredna podrška u OmniRouteu: Chat Completions, nativna krajnja tačka /v1/responses, vid, pozivanje alata i 3 modela za slike (grok-imagine, nano-banana-pro, nano-banana-2, dostupni kao cheaperinference/<model>). Nabavite API ključ →
Linkovi označeni s aff=omniroute partnerski su linkovi. Oni finansiraju projekat bez dodatnih troškova za vas. 🎟️ Promocije partnera — besplatni kuponi za registraciju od pružalaca usluga koje ne sponzorišemo (kliknite za proširenje)Ovaj odjeljak namijenjen je isključivo kodovima za preporuke/kupone. Sponzorisana partnerstva nalaze se u gornjem odjeljku 🤝 Uz podršku naših prijatelja otvorenog koda. OmniRoute nema sponzorski ni partnerski odnos s ovdje navedenim pružaocima usluga — ovo su javni kuponi koje svako može koristiti.
AgentRouter agentrouter.org
AgentRouter — partnerska registracija · $100 besplatnih kredita nakon registracije (besplatan server, očekujte veće kašnjenje — najbolje za testiranje, ne za produkciju). Prvorazredna podrška u OmniRouteu od verzije v3.8.50: Chat Completions, format komunikacije kompatibilan s Anthropicem i putanja kompatibilna s OpenAI-jem. Dostupni modeli uključuju claude-opus-4-8, claude-opus-5, gpt-5.6-sol i druge. Preuzmite svojih $100 →
⚠️ Partnerski link — OmniRoute nema sponzorski ni partnerski odnos s ovim pružaocem usluga.
Znate li za drugog pružaoca usluga s velikodušnim besplatnim kuponom za registraciju koji koristi korisnicima OmniRoutea? Otvorite prijavu problema i dodat ćemo ga ovdje.
## 🎯 Kombinacije — Vodeća funkcija
> **Kombinacija** je lanac modela kroz koje OmniRoute usmjerava **automatski**. Ako se kvota potroši, pružalac usluge zakaže ili troškovi naglo porastu, kombinacija može preći na sljedeći odgovarajući model koji ispravno radi. 🛡️
### ⚡ Bez konfiguracije — samo koristite `auto`
Nije potrebno kreirati kombinaciju. Postavite svoj model na `auto` (ili neku varijantu) i OmniRoute će izgraditi virtuelnu kombinaciju od vaših povezanih pružalaca usluga, ocijenjenu u stvarnom vremenu:
🧪 Paralelno slanje panelu modela (po jedan za svakog pružaoca usluge, zadano 5), uz vraćanje jednog odgovora; jedan uzvodni poziv po modelu panela, bez ubrizgavanja grešaka
##
### 🔀 Ili napravite vlastitu — 20 strategija usmjeravanja
Svih **20** strategija — kombinirajte ih po želji za svaki korak kombinacije:
#
Strategija
Šta radi
1
priority
Uređena lista s prvim odredištem — iscrpite svako prije prelaska na sljedeće 🥇
2
fill-first
Potpuno iskoristite kvotu svakog odredišta prije prelaska na sljedeće
3
weighted
Ponderirani nasumični odabir prema ponderu svakog odredišta
4
round-robin
Kružno prolazi kroz odredišta redom
5
p2c
Nasumično balansiranje opterećenja metodom izbora između dvije opcije
6
least-used
Odabire odredište s najmanjim trenutnim opterećenjem
7
random
Ravnomjeran nasumični odabir (bez duplikata)
8
strict-random
Nasumični odabir bez uklanjanja ponavljanja 🎲
9
cost-optimized
Minimizira cijenu u $ po zahtjevu na osnovu aktuelnih cijena iz kataloga 💸
10
headroom
Odabire odredište s najvećom preostalom kvotom
11
quota-weighted
Preskače iscrpljene račune, a zatim bira proporcionalno preostaloj kvoti ÷ trenutnom aktivnom opterećenju — postojeći razgovori ostaju prikvačeni ⚖️
12
reset-window
Daje prednost odredištu čiji se period kvote najranije obnavlja
13
reset-aware
Rangira prema vremenu obnove kvote — najprije kratki periodi 📊
14
context-relay
Prosljeđuje kontekst između odredišta za duge razgovore 🧠
15
context-optimized
Odabire opciju koja najbolje odgovara trenutnoj veličini konteksta
16
cache-optimized
Prikvačuje svaki ponovo upotrebljivi prefiks upita za isti račun — maksimizira pogotke u predmemoriji upita 🎯
17
lkgp
Posljednja poznata pouzdana putanja — prikvačuje za posljednjeg uspješnog pružaoca usluge, a zatim prelazi na rezervna pravila
18
auto
Ocjenjivanje u stvarnom vremenu prema 16 faktora za svaku vezu 🤖
19
fusion
Šalje upit panelu modela, a sudija sintetizira jedan odgovor 🧬
20
pipeline
Povezuje korake u lanac — izlaz svakog odredišta prosljeđuje se sljedećem 🔗
Auto-Combo mehanizam ocjenjuje svakog kandidata na osnovu **16 faktora** (stanje, kvota, trošak, latencija, prikladnost za zadatak, kvalitet, dostupnost sesije…) — pogledajte [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Otpornost je ugrađena (3 nezavisna sloja)
📖 [Auto-Combo mehanizam](docs/routing/AUTO-COMBO.md) · [Vodič za otpornost](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Po čemu se OmniRoute izdvaja
📊 Potpuna metodologija i detalji po funkcionalnostima u poređenju sa 9router, OpenRouter, CLIProxyAPI i LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Podržite OmniRoute
OmniRoute je licenciran MIT licencom i održava se javno. Ako vam štedi vrijeme ili novac, evo kako možete pomoći da ostane nezavisan — odaberite ono što vam odgovara. Sponzorstvo nikada ne utječe na prioritet usmjeravanja; njime se kupuje vidljivost, a ne rangiranje.
**🇧🇷 PIX** — trenutno, bez naknada (Brazil)
Ključ (nasumični): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix za kopiranje i lijepljenje:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Kriptovalute — BTC · ETH · USDT-TRC20 · USDC-Solana (kliknite za proširenje)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Svaku valutu šaljite samo putem prikazane mreže — slanje putem pogrešne mreže može dovesti do gubitka sredstava.
🐛 Pronašli ste grešku ili imate povratne informacije? Otvorite [diskusiju](https://github.com/diegosouzapw/OmniRoute/discussions).
Napomene za programere: Projekat može generisati lokalnu datoteku .env tokom npm instalacije/postinstalacije radi praktičnosti programera. Ova datoteka se namjerno ignoriše putem .gitignore (pogledajte .gitignore) i nikada se ne smije predati u repozitorij — ako je slučajno predate, promijenite sve otkrivene tajne i uklonite datoteku iz historije. Smjernice za upravljanje lokalnim datotekama okruženja i tajnama potražite u dokumentu docs/DEVELOPER-ENVIRONMENT.md.
## 📡 OmniRoute Radar
Glavna brojka za besplatni nivo ostaje **~1,62 mlrd. tokena/mjesečno** iz gore navedenog dokumentovanog kataloga,
iz kojeg su uklonjeni duplikati među zajedničkim kvotama. Privremeni krediti pri registraciji kod pružalaca usluga mogu zasebno povećati prvi
mjesec na **~2,22 mlrd.** Radar je opcionalni, potpisani sloj kataloga za korisnike koji žele ažurniju
dostupnost besplatnih modela između OmniRoute izdanja; katalog zajednice i svaka postojeća besplatna
funkcija ostaju besplatni.
Podržavaoci mogu dobiti aktivni katalog i dodatne mogućnosti kod pružalaca usluga. Njegova zasebna,
promjenjiva gornja granica iznosi **najviše približno 3 mlrd. tokena/mjesečno**, zavisno od dostupnosti pružalaca usluga.
Ta gornja granica nije zagarantovana: pružaoci usluga mogu u bilo kojem trenutku promijeniti kvote, uslove ispunjavanja, modele ili regije.
Radar se koristi samo uz izričit pristanak i podržava isključivo GET zahtjeve. OmniRoute klijent ne prenosi upite, saobraćaj, konfiguraciju pružalaca
usluga, telemetriju korištenja niti lokalno stanje odbacivanja obavještenja. Saznajte više o uslovima ispunjavanja i
trenutnom katalogu na **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Šta je novo
> Nedavni istaknuti detalji od **v3.8.20 → v3.8.53**. Kompletna historija u [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ `quota-weighted` rutiranje** — 20. combo strategija preskače iscrpljene račune, zatim bira među ostalima srazmjerno preostaloj kvoti ÷ trenutnom opterećenju, zadržavajući postojeće razgovore fiksiranim. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Bezglavi režim** — `omniroute serve --headless` (ili `OMNIROUTE_HEADLESS=1`) pokreće samo `/v1/*` proxy engine, s isključenim dashboardom i podsistemima samo za dashboard. → [Headless Mode](docs/guides/HEADLESS.md)
- **🔎 Otkrivanje modela** — `/v1/models` filtrira po mogućnostima, kontekstu, vrsti i tekstu, a `POST /v1/models/query` vraća kratku determinističku užu listu s istom vidljivošću po ključu. → [API Reference](docs/reference/API_REFERENCE.md)
- **🔑 Kontrola rutiranja po ključu** — fiksirajte API ključ na jedan model ili combo pomoću `forcedModel`, i atomski dodajte ili uklonite modele i comboe za ključ (`/api/keys/{id}/access`). → [API Reference](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Finije PII kontrole** — odabir po vrsti, do 20 validiranih prilagođenih obrazaca maskiranja i brojači detekcije po vrsti; samo maskiranje ostaje opt-in. → [Guardrails](docs/security/GUARDRAILS.md)
- **🌍 67 jezika** — dashboard, dokumentacijski mirrori i CLI, s `npm run i18n:add-locale` koji dodaje jezik svuda jednom komandom. → [i18n Guide](docs/guides/I18N.md)
- **🎛️ OmniConductor** — dolazna A2A delegacija na vašu flotu agenata, Conductor vještine na Agent Card, i dashboard panel sa Faro push-to-talk glasovnim chatom. → [A2A Server](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptivno prihvatanje i zaštita od preopterećenja** — zahtjevi za teškim chatom se stavljaju u red umjesto da vraćaju 503, s atomskim RPM rolling lease-ovima po konekciji. → [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanonsko uređenje `/v1/models`** — jedan neprekinuti blok grupisan po provajderu za svakog provajdera (comboi fiksirani prvi), stabilno kroz svaki izvor kataloga. → [API Reference](docs/reference/API_REFERENCE.md)
- **🗜️ Jačanje kompresije** — podrazumijevano uključena zaštita od inflacije, Caveman paketi za DE / FR / JA + kineski (wényán), RTK filteri za Gradle i .NET. → [Compression](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Iskreni trošak fiksne stope** — provajderi pretplata / coding planova prikazuju **$0** u analitici troškova; budžet, kvota i rutiranje nastavljaju da procjenjuju. → [API Reference](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share rutiranje** — pravedno podijelite kvotu dijeljenog računa po ključevima u bazenu, work-conserving tako da se neaktivni dijelovi posuđuju. → [Resilience Guide](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Postavljanje CLI/agenta jednom komandom** — 15 registrovanih `setup-*` komandi; `omniroute run` pokreće 7 CLI-jeva (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` podržava 11 ciljeva s interaktivnim biračem provajdera+modela i omiljenim stavkama po kontekstu. → [CLI Integrations](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Daljinski režim** — upravljajte daljinskim OmniRoute-om s ograničenim tokenima (`connect` / `contexts` / `tokens`) + `antigravity` OAuth pomoćnik za VPS instalacije. → [Remote Mode](docs/guides/REMOTE-MODE.md)
- **🧭 Pametnije automatsko rutiranje** — `auto/:` comboi, **Fusion** (model panel + sudija), rutiranje svjesno zadatka, po zahtjevu nadjačavanja modela / režima / USD budžeta. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Priključiva kompresija** — 12 kompozabilnih engine-ova + Compression Studios: LLMLingua-2, dvoslojni Ultra, omniglyph, fidelity gate po koraku, GCF v3.2, editor za prevlačenje i promjenu reda. → [Compression](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparentno MITM dešifrovanje (TPROXY)** — hvatanje CLI-jeva koji ignorišu proxy env varijable, s CA po SNI-ju + instalaterom trust store-a. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Telemetrija troškova svuda** — `X-OmniRoute-*` zaglavlja troškova/korištenja na svakom endpointu, zaglavlje uštede kod cache-HIT-a, kvote potrošnje u USD po ključu. → [API Reference](docs/reference/API_REFERENCE.md)
- **🧠 Memorija koju kontrolišete** — isključena po defaultu, opt-in int8 vektorska kvantizacija + tipizirano opadanje, `x-omniroute-no-memory` po zahtjevu. → [Memory](docs/frameworks/MEMORY.md)
- **🛡️ Sigurnost** — zaštita od prompt-injection na svakoj LLM ruti (red-team suite), opt-in guardrail za maskiranje kredencijala (rediguje procurele API ključeve/sekretе u oba smjera), besplatna DuckDuckGo web pretraga kao krajnja opcija, i opcionalna OIDC prijava za dashboard (prijava lozinkom uvijek ostaje dostupna). → [Guardrails](docs/security/GUARDRAILS.md)
- **🖼️ Novi endpointi** — `/v1/ocr` (Mistral OCR) i `/v1/audio/translations` (Whisper-style) zaokružuju medijsku površinu. → [API Reference](docs/reference/API_REFERENCE.md)
- **🎨 Generisanje slika / videa / zvuka** — jedan API za medije: xAI Grok Imagine i Novita AI video, ComfyUI, Magnific, Adobe Firefly, Segmind, i provajderi govora kao što je ElevenLabs. → [API Reference](docs/reference/API_REFERENCE.md)
- **🌍 Implementacija i operacije** — reverse-proxy `basePath`, automatska detekcija jezika preglednika, praćenje uređaja po ključu, root-less MITM trust, zh-TW lokalizacija. → [Environment](docs/reference/ENVIRONMENT.md)
- **🤝 Više provajdera i agenata** — cloud agenti (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) s browser + OAuth prijavom, Ollama kao prvoklasna kartica, Claude Opus 5 i Sonnet 5, Kimi službeno partnerstvo (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… i osvježen **katalog od 375 provajdera**. → [Providers](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Transparentnost rutiranja** — svaki odgovor nosi `X-OmniRoute-Decision` zaglavlje koje navodi strategiju/provajdera/latenciju koji su ga poslužili, nova `cache-optimized` combo strategija + Auto-Combo `cacheAffinity` faktor vraćaju ponovljene zahtjeve nazad na konekciju koja drži keširani prefiks, a read-only endpoint `/v1/auto-combo/{channel}/candidates` izlaže trenutni bazen kandidata `auto/*` kanala. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Lokalne performanse i infrastruktura** — lokalni Redis jednim klikom, alati za postavljanje Cloudflare Workers / Deno Deploy relay-a, Bifrost i Mux kao nadzirane ugrađene usluge. → [Ugrađene usluge](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Također u paketu** — okvir za plugine + marketplace, Omni/Agent/GitHub okviri za vještine, integracija Obsidian vault-a (22 MCP alata), OpenAI-kompatibilni Batch & Files API-ji, semantički keš odgovora, gamifikacija s rang listama, otkrivanje ACP agenata (15 ugrađenih agenata), zakazani izvoz logova u BigQuery, `auto/chaos` paralelno razgranavanje na više modela, most za Telegram bot, menadžer verzija unutar aplikacije i LMArena-ELO rangiranja besplatnih provajdera. → [Dokumentacija](docs/README.md)
## 🤖 Kompatibilni CLI alati i agenti za programiranje
> Jedna konfiguracija — `http://localhost:20128/v1` — i **svaki** AI IDE ili CLI radi na besplatnim i povoljnim modelima.
+ također radi sa · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · bilo kojim alatom kompatibilnim s OpenAI-jem
📖 Postavljanje za svaki alat za svih 37 alata (27 CLI Code alata + 10 CLI agenata) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 OpenCode dodatak → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Pokrenite bilo koji podržani CLI putem OmniRoutea jednom naredbom** — bez zapisivanja konfiguracijskih datoteka,
uz vjerodajnice umetnute zasebno za svaki proces i privremeno izolirano početno okruženje za Qwen/Gemini:
```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"
# Ili interaktivno odaberite pružatelja usluge i model te zapišite vlastitu konfiguraciju alata:
omniroute configure codex # također: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Svaka naredba poštuje aktivni udaljeni kontekst (`omniroute connect `), `--dry-run`
prikazuje tačno okruženje/argumente bez izvršavanja, a `--api-key-env NAME` čuva tajne izvan
historije vaše ljuske. → [CLI integracije](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 375 AI provajdera — 153 označenih kao besplatno u katalogu
> **375 registrovanih provajdera** u kanonskim kolekcijama chat, medija, pretrage, lokalnih, cloud-agent i sistemskih provajdera, uključujući **153 koji nose `hasFree: true` metapodatke za otkrivanje**. Registar chat modela pokriva **239 provajdera / 3,059 različitih parova provajder-model / 1,475 sirovih ID-jeva modela**; odvojeni katalog besplatnih budžeta ima **467 redova po modelu**, **34 ponavljajuća pula** i **51 ponavljajući/bezključni provajder besplatan zauvijek**. Ovi imenioci se razlikuju namjerno; definicije i izračuni sa deduplikacijom pulova nalaze se u [Provider Reference](docs/reference/PROVIDER_REFERENCE.md) i [Free Tiers](docs/reference/FREE_TIERS.md).
### 🏢 Svaka velika laboratorija — kroz jedan endpoint
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…i još 350+ — svaka ikona se uživo učitava iz kataloga provajdera na kontrolnoj tabli. 📖 [Provider Reference](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Besplatno zauvijek — $0, bez kartice
OpenCode Zen DeepSeek V4, Nemotron 3 Bez ograničenja broja tokena
Kilo Code Automatski ruter, Tencent Hy3 Zauvijek besplatno
### 🧩 Novo: OmniRoute unutar izvornog VS Code Copilot Chata
> Bez nove bočne trake i bez novog interfejsa za razgovor — svaki model koji OmniRoute pruža pojavljuje se direktno u
> **biraču modela Copilot Chata koji već koristite**. Od verzije VS Code 1.122, modeli pružatelja usluga rade
> bez prijave na GitHub ili pretplate na Copilot — agentski način rada, pozivanje alata i vizuelne mogućnosti,
> besplatno.
Instalirajte proširenje **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, usmjerite ga
na svoj OmniRoute server (zadana vrijednost je `localhost:20128`), zatim otvorite Copilot Chat → birač modela
→ **Upravljanje modelima…** → **OmniRoute**.
Unutar uređivača: otvorite prikaz **Proširenja**, potražite **„OmniRoute”**, kliknite **Instaliraj**
— radi na isti način u obje trgovine. Izvorni kod, prijave problema i vodič za objavljivanje nalaze se na
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Vodič za VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — postavljanje, šta birač prikazuje, kontrolna tabla u kartici, rješavanje problema
### 🎩 Novo: OmniRouteTray — vaš pristupnik koji živi u traci menija
> `omniroute serve` najbolje radi kada je uvijek uključen. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> to pretvara u macOS aplikaciju u traci menija koju jednom postavite i zaboravite: pokreće server, održava ga aktivnim
> nakon ponovnih pokretanja, ažurira ga na mjestu i omogućava pristup trenutnom budžetu tokena jednim klikom — **bez
> otvorenog prozora terminala i bez potrebe da nadgledate `npm install -g omniroute`.**
Izgrađen pomoću [Tauri v2](https://v2.tauri.app/) (Rust jezgra zanemarive veličine), isporučuje se
s vlastitim potpisanim Node 24 izvršnim okruženjem i upravlja instalacijom OmniRoutea u vlasništvu aplikacije, tako da nikada nije u sukobu s vašim
globalnim `node`/`bun`. **Dijeli vašu postojeću konfiguraciju i bazu podataka u `~/.omniroute/`** — tako da je to
isti OmniRoute koji već koristite, samo sa šeširom. 🎩
Šta radi
Kako
🟢 Nadzire server
Pokreće omniroute serve i preuzima već pokrenutu instancu umjesto da je duplicira
📊 Pregled korištenja uživo
Trake kvota pružatelja usluga, ograničenja Claude sesije/sedmice s odbrojavanjem do poništavanja, pregled troškova za 30 dana
🔄 Automatski se ažurira na mjestu
Postepena instalacija, atomska zamjena, vraćanje prethodne verzije u slučaju greške — uvijek na najnovijem izdanju
🚀 Pokretanje pri prijavi
Opcionalno pokretanje pri prijavi; samo u traci menija, bez ikone na docku
🩺 Dijagnostika i zapisnici
Dijagnostika jednim klikom i pristup zapisnicima servera
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Preferirate preuzimanje? Preuzmite najnoviji .dmg iz odjeljka
Izdanja. Izvorni kod, prijave problema i dokumentacija za izgradnju
dostupni su na zoispag/omniroute-tray.
💛 Projekt zajednice koji održava @zoispag — nije zvanično OmniRoute izdanje.
> Pored servera, OmniRoute je **potpuna komandna konzola** sa **više od 80 komandi**, kao i otvorenim protokolima za agente, tako da AI agent može njime upravljati **samostalno**.
### ⌨️ Pravi CLI (ne samo `start`)
```bash
omniroute # pokreni pristupnik + kontrolnu ploču (port 20128)
omniroute chat # interaktivni TUI klijent za razgovor (komande: /model /combo /skill /memory)
omniroute setup # vođeni čarobnjak za prvo pokretanje
omniroute doctor # dijagnosticiraj pružaoce usluga, portove i izvorne zavisnosti
```
### 🛰️ Udaljeni način rada — pokrenite CLI ovdje, a OmniRoute na VPS-u
OmniRoute je na serveru? Upravljajte njime sa svog laptopa koristeći **isti CLI**. Prijavite se jednom
pomoću pristupnog tokena ograničenog opsega; svaka komanda će se zatim izvršavati na udaljenom serveru.
```bash
omniroute connect 192.168.0.15 # lozinka → token ograničenog opsega, sačuvan kao kontekst
omniroute models # ← izvršava se na UDALJENOM serveru
omniroute configure codex # ← bira udaljeni model, zapisuje lokalni Codex profil
omniroute tokens create --name ci --scope read # kreiraj tokene užeg opsega za druge uređaje
omniroute contexts use default # ← prebaci se nazad na lokalni server
```
Tokeni imaju opseg `read` / `write` / `admin`; rute koje pokreću procese ostaju dostupne samo putem povratne petlje.
📖 [Udaljeni način rada](docs/guides/REMOTE-MODE.md)
### 🤝 Povežite agenta — i on sam upravlja OmniRouteom
Izložite OmniRoute putem **MCP-a**, **A2A-a**, **REST API-ja**, **webhookova** ili **udaljenog CLI-ja** — svaki sposoban agent (ili vaš vlastiti kod) dobija pristup cijelom pristupniku: usmjeravanju, pružaocima usluga, kombinacijama, predmemoriji, kompresiji i memoriji — potpuno samostalno. HTTP krajnje tačke ispod dostupne su putem `http://localhost:20128`.
Interfejs
Krajnja tačka / komanda
Koristite za
🧰 MCP (stdio)
omniroute --mcp
Povezivanje s Claude Desktopom, Cursorom ili bilo kojim MCP klijentom
Komunikacija između agenata, JSON-RPC 2.0 + SSE, 6 vještina
🌐 REST API
/v1/*
Kompatibilan s OpenAI-jem — razgovor, ugrađivanja, slike, zvuk, OCR
🔔 Webhookovi
/api/webhooks
Šaljite događaje zahtjeva / kvota na Slack, Discord, Telegram ili bilo koji URL
🛰️ Udaljeni CLI
omniroute connect
Upravljajte udaljenom instancom pomoću pristupnih tokena ograničenog opsega
```bash
# Omogućite Claude Codeu potpuni OmniRoute skup alata putem MCP-a:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [MCP server](docs/frameworks/MCP-SERVER.md) · [A2A server](docs/frameworks/A2A-SERVER.md) · [Protokoli za agente](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Uštedite 15–95% tokena — automatski
### 📖 Kako funkcioniše — pipeline, arhitektura i matematika uštede
Podrazumijevana složena kombinacija pokreće `RTK → Caveman`. Kada oba djeluju na isti tool/context payload, uštede se sabiraju:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Kodni blokovi, URL-ovi, JSON i strukturirani podaci su **uvijek zaštićeni** pomoću engine-a za očuvanje.
> **Zašto koristiti mnogo tokena kada mali broj tokena radi posao?** Svaki zahtjev prolazi kroz OmniRoute kompresijski pipeline **transparentno** — bez izmjena na klijentu. To je sada **skup od 12 kompozabilnih engine-a** koji se izvršavaju po redu i kombinuju po routing kombinaciji — nadograđujući ideje iz [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) i [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Stack od 12 engine-a
Engine-i se izvršavaju po redoslijedu pipeline-a; svaki se može nezavisno uključiti/isključiti i konfigurisati po kombinaciji:
#
Engine
Šta radi
1
Session-Dedup
Uklanja sadržaj koji se ponavlja kroz turnove (content-addressed, cross-turn)
2
CCR
Arhivira velike blokove iza retrieve markera, dohvaća se na zahtjev
3
Lite
Trimming whitespace + image-URL (lagana osnova za latenciju)
4
RTK
Pametno filtriranje tool-rezultata, dedup i skraćivanje (svjesno komandi)
Lossless tabelarna kompakcija JSON nizova (~30%) putem vendored GCF codec-a
7
Relevance
Ekstraktivno bodovanje rečenica u odnosu na posljednji korisnički upit
8
Caveman
Rule-based kompresija proze (~65–75% na izlazu)
9
Aggressive
Sažimanje + progresivno starenje starih turnova
10
LLMLingua-2
ML semantičko obrezivanje putem MobileBERT ONNX — sigurno za kod, async
11
Ultra
Heurističko obrezivanje tokena uz opcionalni sloj malog modela (SLM)
12
OmniGlyph
Eksperimentalno kodiranje konteksta kao slike za izmjereni Claude Fable 5 na direktnom Anthropic wire-u; GPT 5.6 transformeri ostaju fail-closed do potvrda od provajdera. Četiri kompresijska profila (aggressive default, balanced, coding-safe, passthrough) (najagresivnije; opt-in)
Kodni blokovi, URL-ovi i strukturirani podaci su **uvijek očuvani** byte-perfect. **Preseti jednim klikom** kombinuju engine-e:
Režim
Ušteda
Najbolje za
🪶 Lite
~15%
Uvijek uključen siguran default
🪨 Standard (Caveman)
~30%
Svakodnevno kodiranje
⚡ Aggressive
~50%
Duge sesije sa puno tool poziva
🔥 Ultra
~75%
Maksimalna ušteda
🧰 RTK
60–90%
Shell/test/build/git izlaz
🔗 Stacked (RTK → Caveman)
78–95%
Mješoviti promptovi + tool logovi
**Stvarni primjer — Standard režim:**
> **Prije (69 tokena):** _"Razlog zašto se vaša React komponenta ponovo renderuje je vjerovatno taj što stvarate novu referencu objekta u svakom ciklusu renderovanja. Kada proslijedite inline objekat kao prop, React-ovo plitko poređenje ga vidi kao drugačiji objekat svaki put, što pokreće ponovno renderovanje. Preporučio bih korištenje useMemo za memoizaciju objekta."_
>
> **Poslije (19 tokena):** _"Nova object ref svaki render. Inline object prop = nova ref = re-render. Umotaj u useMemo."_
>
> **Isti odgovor. 72% manje tokena. Nula gubitka tačnosti.** ✅
**PT-BR primjer — [Troglodita](https://github.com/leninejunior/troglodita) režim:**
> **Prije (42 tokena):** _"Problem je što se komponenta ponovo renderuje jer se nova referenca objekta kreira u svakom ciklusu renderovanja. Preporučio bih korištenje useMemo."_
>
> **Poslije (12 tokena):** _"Ponovno renderovanje: nova referenca svaki ciklus (inline objekat se ponovo kreira). Koristiti `useMemo`."_
>
> **Isti odgovor. ~70% manje tokena. Tehnička preciznost netaknuta.** ✅
### 🎚️ Iza pogona — stilovi izlaza, adaptivni točkić i kontrola po zahtjevu
Gore navedenih 12 pogona smanjuje ono što **ulazi**. Još tri sloja oblikuju **kako**, **kada** i šta **izlazi**:
- **🪄 Stilovi izlaza** _(usmjeravanje na osi izlaza)_ — ubacuju determinističke, cache-safe instrukcije za oblikovanje odgovora; mogu se kombinovati, svaki na intenzitetu `lite` / `full` / `ultra`. Dodavanje stila je unos od jedne linije u registar:
- **Sažeta proza** — izbacite ispunu / članove / ograđivanje; zadržite tehničku suštinu tačnom.
- **Manje koda** — "lijeni senior dev" YAGNI: najmanja promjena koja radi, bez nezahtijevane skele.
- **Ponytail (lijeni senior dev)** — penjite se YAGNI ljestvicom, popravite osnovni uzrok, najmanji diff koji radi.
- **Imam ADHD (akcija prvo)** — sljedeća akcija je na čelu, koraci numerisani, jedan konkretan sljedeći korak, bez uvoda.
- **Sažeti CJK (文言)** — ultra-sažeti stil klasičnog kineskog (ograničeno na locale `zh`).
- **🎯 Adaptivni budžet konteksta** _(točkić)_ — umjesto jednog uključi/isključi token praga, eskalirajte najjeftinije, najbezgubitnije pogone samo koliko je potrebno da se **uklopi u modelov kontekstni prozor**. Politika: `reserve-output` (podrazumijevano, svjesno modela) · `percentage` · `absolute`. Režim: `floor` (garantuje uklapanje) · `replace-autotrigger` (vaš eksplicitni izbor pobjeđuje) · `off` (naslijeđeni prag).
- **🎛️ Gdje se odlučuje o kompresiji** _(prioritet, visok → nizak)_ — zaglavlje `x-omniroute-compression` po zahtjevu › nadjačavanje routing-kombinacije › aktivni imenovani profil › adaptivno / automatsko pokretanje › zadano u panelu › isključeno. Primijenjeni plan se vraća u zaglavlju odgovora `X-OmniRoute-Compression: ; source=`.
Automatsko pokretanje po token pragu, uključite adaptivni točkić, prikvačite imenovani profil, postavite jednokratno po zahtjevu ili dodijelite pipeline po routing-kombinaciji — šta god odgovara radnom opterećenju. Opcionalni offline **eval harness** (`npm run eval:compression`) ocjenjuje vjernost vs. uštede na prikvačenom korpusu prije nego što promovirate promjenu.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Brzi početak
**1) Instalirajte i pokrenite**
```bash
npm install -g omniroute
omniroute
```
> 💡 Vidite `npm warn ERESOLVE` ili upozorenja o peer zavisnostima? [Bezopasna su](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Koristite npm 11 ili noviji?** npm može blokirati lifecycle skripte paketa osim ako nisu dozvoljene. OmniRouteov `postinstall` (`node scripts/build/postinstall.mjs`) je neophodan za pripremu njegovih izvornih runtime datoteka. Dozvolite pakete navedene u npm upozorenju pri globalnoj instalaciji. Za skup paketa koji prijavljuje OmniRoute 3.8.53:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Da ponovo koristite ovu listu dozvola za buduće globalne instalacije, konfigurišite je jednom, a zatim instalirajte normalno:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Lista zavisnosti se može mijenjati između izdanja; ako npm prijavi drugačiju listu, koristite imena paketa iz tog upozorenja. Dozvoljavanje paketa omogućava pokretanje njegovih instalacijskih skripti.
> **Koristite Gemini Web ili drugog web-cookie provajdera?** npm paket uključuje Playwright, ali ne i njegov Chromium binarni fajl. Pogledajte napomenu o [Playwright Chromium postavci](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium) prije prvog zahtjeva ka web provajderu.
Dashboard na `http://localhost:20128` · API na `http://localhost:20128/v1`.
**2) Povežite podobnog provajdera koristeći vlastiti račun**
Dashboard → **Providers** → odaberite provajdera čiji trenutni uslovi i kvota odgovaraju vašem slučaju upotrebe → dodajte njegov API ključ ili završite tok povezivanja računa. Besplatni nivoi mogu zahtijevati registraciju, odobrenje ili način plaćanja. Pogledajte [Vodič kroz besplatne nivoe](docs/getting-started/FREE-TIERS-GUIDE.md); dostupnost bez ključa nije zagarantovana, a provajderi označeni sa `tos: avoid` su podrazumijevano isključeni iz `auto`.
**3) Usmjerite svoj alat za kodiranje**
```txt
Base URL: http://localhost:20128/v1
API Key: [kopirajte sa Dashboard → Endpoints]
Model: auto (usmjerava među podobnim vezama — ili odaberite provider/model)
```
**4) Provjerite da radi**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Trebali biste vidjeti svoje povezane modele na listi. 🎉 To je sve — počnite kodirati, a OmniRoute automatski usmjerava i pravi fallback za vas.
Ako vaš klijent ne može slati prilagođena zaglavlja, OmniRoute također izlaže tokenizovane aliasе za kompatibilnost:
```txt
OpenAI katalog: http://localhost:20128/vscode/YOUR_KEY/
OpenAI modeli: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI chat: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI odgovori: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama chat: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama tagovi: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Koristite ih samo za klijente koji ne mogu priložiti `Authorization: Bearer ...`. Autentifikacija putem zaglavlja ostaje preferirani način.
## 📦 Više načina instalacije — Docker, izvorni kod, 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` prati najvišu **objavljenu** stabilnu SemVer verziju. Ne prati git `main`. Fiksirajte `:X.Y.Z` za GitOps. Pogledajte [Docker kanale izdanja](docs/guides/DOCKER_GUIDE.md#release-channels). Slika postavlja **`OMNIROUTE_MEMORY_MB=1024`**. To je dovoljno za kontrolnu ploču i lagani razgovor. **Agenti za programiranje** (`POST /v1/responses` iz Claude Codea, Codexa, Groka, …) zahtijevaju znatno veću V8 gomilu ili će proces prijaviti `FATAL ERROR` na približno 12 GiB pri dva preklapajuća duga konteksta. Dodijelite kontejneru više memorije od veličine gomile (izvorni međuspremnici nalaze se izvan V8):
| Radno opterećenje | Gomila (`-e OMNIROUTE_MEMORY_MB`) | Kontejner (`--memory`) |
| ------------------------------------ | --------------------------------- | ---------------------- |
| Kontrolna ploča / lagani razgovor | `1024` (zadana vrijednost slike) | ≥2 g |
| Jedan agent za programiranje | `8192` | ≥10 g |
| Dva istovremena duga `/v1/responses` | `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
```
Kompletna tabela: [Docker vodič — RAM za vrijeme izvođenja](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Docker kanal za predizdanja:** `diegosouzapw/omniroute:next` i
> `diegosouzapw/omniroute:next-web` prate trenutnu zadanu `release/v*`
> granu. Ove promjenjive oznake namijenjene su samo za testiranje neobjavljenih ispravki i
> **nisu podržane za produkciju**. Pogledajte
> [Docker kanale izdanja](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Standardni `bun install` i globalna instalacija (`bun install -g omniroute`) podržani su putem otkrivanja Bun izvršnog okruženja:
- **Ugrađeni `bun:sqlite`**: OmniRoute koristi Bunov ugrađeni upravljački program `bun:sqlite` kada se izvršava u Bunu, uz rezervni prelazak na `better-sqlite3` u Node.js-u ili na `sql.js`.
- **Automatski odabir Webpack alata za objedinjavanje u razvojnom okruženju**: Razvoj (`bun run dev`) automatski otkriva Bun i onemogućava Turbopack u korist Webpacka kako bi spriječio nekompatibilnosti izvornih V8 povezivanja. Produkcijske izgradnje (`bun run build`) tačno slijede `OMNIROUTE_USE_TURBOPACK`, kao i na Nodeu: Turbopack je zadan, a `OMNIROUTE_USE_TURBOPACK=0` omogućava izgradnju pomoću Webpacka (`Dockerfile.bun` ga izlaže kao `--build-arg`).
- **Namjenski Bun Dockerfile**: Višefazni `Dockerfile.bun` za izvorne Bun produkcijske implementacije (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Instalirajte i pokrenite pomoću Buna
bun install
bun run dev
```
**🛠️ Iz izvornog koda**
```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
# Korištenje Nix flakesa
nix develop
npm run dev
# Ili korištenje devboxa
devbox run npm run dev
```
📖 [Docker vodič](docs/guides/DOCKER_GUIDE.md) — Compose profili, Caddy HTTPS, Cloudflare tuneli.
**🦭 Podman**
```bash
# 1. Pripremite direktorij podataka montiran povezivanjem
mkdir -p data
# 2. Samo Linux + lokalni rootless Podman (nikada udaljeni klijent za Podman Machine):
podman unshare chown 1000:1000 ./data
# 3. Postavite naznaku izvršnog okruženja, izgradite lokalnu Compose sliku i pokrenite
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
Na macOS-u ili Windowsu Podman koristi udaljeni Podman Machine: preskočite `podman unshare` i
slijedite [upute za direktorij podataka specifične za topologiju](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Podman vodič](contrib/podman/README.md) — Compose izgradnje, Podman Machine i
postavljanje Linux/systemd Quadleta.
**⚡ Brža / jednostavnija instalacija (preskočite izvornu izgradnju)**
Izvorni SQLite mehanizam (`better-sqlite3`) **neobavezna** je zavisnost, pa globalna
instalacija nikada ne čeka kompiliranje iz izvornog koda: koristi unaprijed izgrađenu binarnu datoteku kada ona odgovara
vašoj platformi/Nodeu, a u suprotnom neprimjetno prelazi na čisti JS mehanizam
(`node:sqlite` na Nodeu 22+, inače na uključeni `sql.js` WASM) — nisu potrebni alati za izgradnju.
Da biste u potpunosti preskočili **izvorno zagrijavanje** nakon instalacije (CI, sistemi bez grafičkog sučelja ili spori računari).
Napomena: ovime se preskače samo korak zagrijavanja izvornog SQLitea (`scripts/postinstall.mjs`);
skripta za kopiranje/popravku binarne datoteke (`scripts/build/postinstall.mjs`) i dalje se normalno izvršava:
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 ga također preskače
```
Za najbrže instalacije koristite **pnpm** (spremište adresirano sadržajem + tvrde veze — pogledajte iznad).
Za izvršno okruženje bez kontrolne ploče i grafičkog sučelja koristite Docker profil `base` (iznad) ili
[Termux vodič](docs/guides/TERMUX_GUIDE.md). CLI i web-kontrolnu ploču poslužuje
isti proces na jednom portu, pa trenutno ne postoji zaseban paket samo za CLI.
Strategija pokrivenosti testovima za 56,000+ statičkih testnih deklaracija u 7,800+ praćenih testnih datoteka
# ⭐ Najveći doprinosioci
> OmniRoute oblikuje strastvena open-source zajednica. Ovi pojedinci dali su izuzetne doprinose koji direktno utiču na kvalitet, stabilnost i doseg projekta. **Hvala vam.**
### Vanjski doprinosioci po broju spojenih pull requestova
Popis sačinjen 2026-10-18 15:09:09 UTC sa aktivnim vrhom release/v3.8.52 na 656f01cb43. Paginirani GitHub GraphQL popis sadrži 9,191 spojenih PR-ova: 3,834 od vlasnika repozitorija, 229 od Dependabota, 6 od drugih botova/aplikacija i 5,122 vanjska PR-a od 835 različitih doprinosioca. “Promijenjeni redovi” su GitHub dodavanja + brisanja i uključuju generisane datoteke, lockfile datoteke, kataloge, prijevode i dokumentaciju; to je obim izmjena, a ne broj linija koda koje je autor napisao. 49 PR-ova prijavljuje GitHub diffove iznad 500,000 redova (na primjer #13399, dodavanje jednog provajdera, navodi 2,347 promijenjenih datoteka), što povećava nekoliko gornjih ukupnih vrijednosti. Izjednačeni rezultati rangiraju se zajedno.
### Commitovi pripisani GitHubu
Ponovno provjereno 2026-10-18 14:44:45 UTC: commitovi pripisani GitHubu koje prijavljuje API za saradnike repozitorija za zadanu granu release/v3.8.52. API je vratio 849 identiteta (429 korisnika, 2 bota, 418 anonimnih); ova tabela isključuje održavaoca, botove i anonimne identitete i zadržava izjednačenja na rang listi. Razlikuje se i od gore navedenog rangiranja spojenih PR-ova i od popisa na osnovu Git metapodataka ispod.
> 🙏 Značajke, ispravke grešaka i poboljšanja infrastrukture ovih saradnika su **ključni dio** onoga što OmniRoute čini pouzdanim i bogatim funkcijama. Svaki pull request, svaki test slučaj i svaka datoteka i18n prijevoda su važni. Otvoreni kod grade ljudi poput njih.
---
## 💖 Sponzori
Od srca hvala ljudima koji finansiraju OmniRoute iz vlastitog džepa — svaki doprinos pomaže da projekat ostane besplatan, nezavisan i da nastavi napredovati.
… i ostali koji žele ostati privatni 💛Javni GitHub sponzori ponovo su provjereni 2026-10-18 putem GitHub Sponsors GraphQL API-ja: 11 javnih sponzorstava (6 aktivnih, 5 ranijih) od ukupno 14. GitHubov status isActive određuje gornje oznake aktivnih sponzora; ranijim javnim jednokratnim podržavaocima i dalje se zahvaljujemo, dok privatni sponzori ostaju anonimni. Donacije putem servisa Ko-fi, Buy Me a Coffee, Liberapay, PIX i kriptovaluta nisu navedene jer za njih ne postoji javni zapis o sponzoru.💖 Postanite sponzor → — svaki dolar pomaže da OmniRoute ostane besplatan i nezavisan.
## 👥 900+ saradnika
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Revidirano 2026-10-18 na aktuelnom vrhu grane release/v3.8.52, ad160ab2d1 (6.826 commitova): 993 normalizirana ljudska Git identiteta — 707 se pojavljuje kao autor commita (uključujući održavaoca), a 286 samo u eksplicitnim Co-authored-by završnim oznakama. Popis primjenjuje .mailmap, poredi adrese e-pošte bez obzira na velika i mala slova, spaja numeričke i obične GitHub noreply adrese samo kada kodiraju isti nadimak, isključuje 26 identiteta botova/agenata/servisa/rezerviranih oznaka i ne spaja obične adrese e-pošte samo zato što im se podudaraju prikazana imena. Revizija od 2026-08-24 objavila je broj 639; ponovna primjena ove metode na osnovu te revizije, ac02c5b42f, daje 619, tako da povećanje potiče od novih saradnika, a ne od blaže metode.
### Kako doprinijeti
1. Napravite fork repozitorija
2. Napravite granu od **aktivnog** vrha `release/vX.Y.Z` (ne od `main`) — pogledajte [Model grananja i izdanja](docs/ops/BRANCHING_MODEL.md)
3. Kreirajte svoju granu funkcionalnosti (`git checkout -b feat/amazing-feature`)
4. Commitujte svoje izmjene (`git commit -m 'feat: add amazing feature'`)
5. Pošaljite izmjene na granu (`git push origin feat/amazing-feature`)
6. Otvorite Pull Request sa **base = ta grana `release/vX.Y.Z`**
Za detaljne smjernice pogledajte [CONTRIBUTING.md](CONTRIBUTING.md).
### Objavljivanje nove verzije
```bash
# Kreirajte izdanje — npm publish se izvršava automatski
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Zvjezdice
## 🌍 StarMapper
## 🙏 Zahvale
OmniRoute stoji na ramenima divova. Nastao je kao fork projekta **[9router](https://github.com/decolua/9router)** i TypeScript port Go projekta **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — a odatle je svaki podsistem naveden u nastavku inspirisan projektom otvorenog koda koji je prvi riješio taj problem. Svaki od njih oblikovao je konkretan dio OmniRoutea. Ovo je naša zahvala svima njima. 🙏
> ⭐ broj zvjezdica provjeren je putem GitHub REST API-ja 18. oktobra 2026. — podržite ove projekte zvjezdicom. Brojevi predstavljaju precizan snimak stanja na navedeni datum i prirodno će se mijenjati.
### 🧬 Porijeklo i pristupnik
AI pristupnik čiji javni skup podataka o cijenama pokreće našu sinhronizaciju praćenja troškova i čiji je model normalizacije pružalaca usluga uticao na naše usmjeravanje.
MIT izvorni kod prilagođen u ugrađeni most ChatGPT Web → Codex Responses, uključujući adaptere za sesije preglednika, uokviravanje odgovora, korištenje i web-pretragu.
Zadane vrijednosti transformacije kompatibilne s Claude Codeom i ponašanje zaglavlja za naplatu generalizovani su u OmniRouteov most vođen konfiguracijom.
Njegova mapiranja Grok modela, Statsig generator koji oponaša TypeError, zadane vrijednosti zahtjeva i uređaja te NDJSON procesor odgovora značajno su prilagođeni za OmniRouteov Grok Web izvršitelj.
Glavni posredni izvor koda iza projekta grok2api-merged; njegove implementacije modela, zaglavlja, korisnog sadržaja, Statsiga i procesora sačuvane su u porijeklu Grok Weba.
Temeljni MIT izvorni kod za Grok korisni sadržaj i zadane vrijednosti uređaja, Statsig generator i result.response procesor prenesen putem projekata TQZHR i grok2api-merged.
Posredni izvor kojem grok2api-merged pripisuje zasluge za svoj sloj skupa proxyja; OmniRoute zadržava tu napomenu o porijeklu, ali ne tvrdi da je portovao skup proxyja u svoj ograničeni Grok Web izvršitelj.
Izvorna implementacija Grok Weba koristila je njegov dizajn uzvodne HTTP/pregledničke komunikacije; njegova direktna HTTP putanja izvedena je iz GrokProxyja, pa se ne tvrdi da je izvršen nezavisan port koda.
Viralni projekt „zašto koristiti mnogo tokena kada malo tokena radi posao“ — njegova filozofija pećinskog govora pokreće naš standardni način kompresije i više od 30 pravila za uklanjanje suvišnih riječi i sažimanje.
Istraživanje kompresije upita (LLMLingua / LLMLingua-2) — inspirisalo je naš asinhroni, za kod siguran llmlingua pogon koji u slučaju greške nastavlja bez kompresije.
Viralna vještina YAGNI-programiranja „lijenog starijeg programera“ — inspirisala je naš less-code stil izlaza: usmjeravanje prema najmanjoj funkcionalnoj izmjeni koje smanjuje _generisani_ kod (pandana Cavemanovoj sažetoj prozi na osi izlaza).
Kompresija izlaza svjesna sadržaja i prilagođena svakoj vrsti datoteke, uz odustajanje u slučaju greške — potvrdila je naše usmjeravanje prema vrsti i preskakanje kada je dobitak ispod minimuma.
Kolonarni JSON u Rustu + dohvaćanje adresirano sadržajem + deduplikacija između poruka — potvrdili su dizajn naših pogona headroom/ccr/session-dedup i invarijantu stabilnu za predmemoriju „komprimirani oblik je nezavisan od položaja“.
Komplet alata za TypeScript Compiler API — inspirisao je naše uklanjanje komentara zasnovano na parseru, koje zadržava literale stringova, predložaka i regularnih izraza.
MITM presretanje/analiza saobraćaja između asistenta za programiranje ↔ LLM-a utjecali su na rane zahtjeve za Traffic Inspector. Četiri ranije izvedena modula — spajanje SSE-a, normalizacija razgovora, maskiranje tajni i saniranje zaglavlja — zamijenjena su nezavisnim implementacijama čistog dizajna zasnovanim na javnim standardima protokola. Dvije površine za izravni prolaz hosta (passthrough.ts i _internal/bypass.cjs) ostaju interne implementacije OmniRoutea koje su zasebno klasificirane; nisu ponovo napisane u sklopu te zamjene.
Transparentno proxy usmjeravanje po procesu — inspirisalo je naše rušenje MITM-a otporno na padove, vremenska ograničenja neaktivnosti socketa, pripisivanje procesa putem /proc i TPROXY hvatanje.
### 📚 Podaci o modelima, opservabilnost i korisničko sučelje
Kurirana lista biblioteka koje su sigurne prema zadanim postavkama i usmjeravaju naše sigurnosne izbore (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Njegovo ponovno mapiranje modela prilagođeno računu, provjera putanje izvršne datoteke i ponašanje oznaka plana utjecali su na Antigravity izvršno okruženje OmniRoutea.