> Masakit sa ulo ang mano-manong pagsasama-sama ng mga libreng tier — dose-dosenang SDK, dose-dosenang limitasyon sa rate, at walang malinaw na ideya kung gaano karami talaga ang mayroon ka. Itinatala ng OmniRoute ang **452 entry ng libreng tier sa 34 na umuulit na pool key** at kinakalkula ang kabuuang bilang ng token mula sa **16 na pool na may inilathalang positibong buwanang badyet at limang Groq cap kada modelo**, na inaalis ang pagdodoble batay sa pinagsasaluhang pool. Ang mga quota na mabubuksan lamang pagkatapos ng panrehiyong pagpapatunay ng pagkakakilanlan (sa ngayon: ModelScope) ay ipinapakita nang hiwalay, +~6M sa likod ng panrehiyong pagpapatunay ng pagkakakilanlan, at hindi kailanman isinasama sa pangunahing kabuuan. Nananatiling nakikita ang resulta sa dashboard (`/dashboard/free-tiers`).
> Animadong buod ng aktuwal na pahinang `/dashboard/free-tiers`. Kumpletong metodolohiya (pag-aalis ng pagdodoble ng pool, mga tier ng credit, mga tuntunin ng provider): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Muling sinusuri ang mga bilang na ito kada dalawang linggo batay sa aktuwal na catalog at **gumagalaw sa parehong direksyon** — kapag itinigil ng isang provider ang libreng tier, bababa ang bilang; kapag may bagong dumating, tataas ito. Inilalathala namin kung ano talaga ang kinakalkula ng catalog, at hindi kailanman ang pinakamainam na sitwasyong ni-round up.
⭐ Lagyan ng star ang repo kung nakatulong ang OMNIROUTE na makatipid ka at mapadali ang iyong trabaho.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Sumali sa komunidad
**👋 I-follow ang tagapagpanatili — ikaw ang unang makaalam tungkol sa mga bagong provider, release, at tip:**
[](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)
**Mga tanong, tip tungkol sa provider, roadmap, at suporta → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Pandaigdig](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)**
## 📈 Patuloy na Lumalaki ang Gateway
| | v3.8.49 | **v3.8.50** | `v3.8.51+` |
| ------------------------------------------------ | :-----: | :-----------------------: | :----------------------: |
| 🌐 Mga Provider | 290 | **352** | mas marami pang nakapila |
| 🧠 Mga natatanging chat model ID | 1185 | **1312** | — |
| 🖼️ Tulay ng Modalidad | — | 🆕 bisyon + audio + video | — |
| 📡 Libreng katalogo ng Radar | — | 🆕 kusang pagsali | — |
| ⚖️ Pag-iiskedyul na isinasaalang-alang ang quota | — | 🆕 Quota-Share | — |
| 📊 Telemetriya ng quota | — | 🆕 live | — |
**→ [Roadmap](ROADMAP.md) — tumatahak sa landas patungo sa `v3.9.0 LTS`**
## 🧩 Magagamit
[](https://www.npmjs.com/package/omniroute)

[](https://hub.docker.com/r/diegosouzapw/omniroute)
[](LICENSE)


## 🆓 Gumagana agad sa sandaling i-install mo ito — walang key, walang config
```bash
# Bagong install, walang credential — gumagana na ang `auto`:
curl http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
Mas gusto ang isang partikular na libreng backend? Direktang tawagin ang `oc/…` (OpenCode Free). Pagkatapos, lumipat sa `auto` at hayaang OmniRoute ang pumili.📦 Mga quickstart script na maaaring i-copy-paste para sa **Python, Node.js, PHP, at cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Ang Pangako
# 🤔 Bakit OmniRoute?
## 🤝 Sinusuportahan ng aming mga Kaibigang Open Source
> **Gusto mo bang sumali bilang Kaibigang Open Source?** Ito ang mga kumpanyang sumusuporta sa open source at tumutulong upang patuloy na umusad ang OmniRoute — at hayagan naming sinasabi kung saan napupunta ang bawat token na ibinibigay nila sa amin. Makipag-ugnayan: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Salamat sa Kimi (Moonshot AI), ang aming nagtatag na Kaibigang Open Source, sa pagsuporta sa proyektong ito! Ang Kimi ang AI lab sa likod ng mga open-weight na pamilya ng modelong K2 at K3 — naghahatid ang Kimi K3 ng 1M-token na context window, native vision, at frontier-level na coding sa maliit na bahagi lamang ng presyo ng mga closed model, at agad itong gumagana sa Claude Code, Codex, at bawat coding tool na sinusuportahan ng OmniRoute.
Ang pinapagana ng suporta ng Kimi: Pinapagana ng mga API credit ng Kimi ang release pipeline ng OmniRoute na bina-validate ng AI — ang yugtong merge validation powered by Kimi K3 na nagsusuri sa bawat pull request bago ito ilabas — pati na rin ang pang-araw-araw na pagbuo ng mga feature. Inihahatid ang first-class na suporta para sa Kimi sa parehong paraan: ang direktang Kimi API (kimi-k3) at ang Kimi Code coding plan (OAuth at API key). Ang OmniRoute din ang unang Brazilian na open-source na proyekto sa programa ng suporta ng Kimi. Kumuha ng Kimi API key na may 15% dagdag na credit →
Cheaper Inference cheaperinference.com
Salamat sa Cheaper Inference, isang Kaibigang Open Source ng OmniRoute, sa pagsuporta sa proyektong ito! Ang Cheaper Inference ay isang gateway na niraranggo ayon sa gastos at muling nagbebenta ng 42 frontier model — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok, at MiniMax — sa likod ng iisang endpoint na compatible sa OpenAI, na nagru-route sa bawat request patungo sa pinakamurang kwalipikadong provider nang hindi kailanman naniningil nang higit sa listahang presyo ng gumawa ng modelo.
First-class na suporta sa OmniRoute: Chat Completions, ang native na /v1/responses endpoint, vision, tool calling, at 3 image model (grok-imagine, nano-banana-pro, nano-banana-2, na maa-access bilang cheaperinference/<model>). Kumuha ng API key →
Ang mga link na may tag na aff=omniroute ay mga partner link. Tumutulong ang mga ito na pondohan ang proyekto nang walang karagdagang gastos sa iyo. 🎟️ Promosyon ng mga Affiliate — mga libreng signup coupon mula sa mga provider na hindi namin ini-sponsor (i-click upang palawakin)Ang seksiyong ito ay para lamang sa mga referral/coupon code. Ang mga naka-sponsor na partnership ay nasa 🤝 Sinusuportahan ng aming mga Kaibigang Open Source sa itaas. Walang sponsorship o partnership ang OmniRoute sa mga provider na nakalista rito — mga pampublikong coupon ang mga ito na maaaring gamitin ng sinuman.
AgentRouter agentrouter.org
AgentRouter — affiliate signup · $100 na libreng credit sa pag-sign up (libreng server, asahan ang mas mataas na latency — pinakamainam para sa testing, hindi para sa production). May first-class na suporta sa OmniRoute mula pa noong v3.8.50: Chat Completions, ang wire format na compatible sa Anthropic, at ang path na compatible sa OpenAI. Kabilang sa mga available na modelo ang claude-opus-4-8, claude-opus-5, gpt-5.6-sol, at marami pa. Kunin ang iyong $100 →
⚠️ Affiliate link — walang sponsorship o partnership ang OmniRoute sa provider na ito.
May alam ka bang ibang provider na may malaking libreng signup coupon na kapaki-pakinabang sa mga gumagamit ng OmniRoute? Magbukas ng issue at idaragdag namin ito rito.
## 🎯 Mga Combo — Ang Pangunahing Tampok
> Ang **combo** ay isang hanay ng mga model na **awtomatikong** dinaraanan ng OmniRoute. Kapag naubos ang quota, pumalya ang isang provider, o biglang tumaas ang mga gastos, maaaring lumipat ang combo sa susunod na kwalipikado at maayos na model. 🛡️
### ⚡ Walang configuration — gamitin lang ang `auto`
Walang combo na kailangang gawin. Itakda ang iyong model sa `auto` (o isang variant) at bubuo ang OmniRoute ng virtual na combo mula sa iyong mga nakakonektang provider, na sinusuri nang live:
Model ID
Kung para saan ito nag-o-optimize
auto
🎯 Balanseng default (LKGP — nananatili sa huli mong maayos na provider)
auto/coding
🧑💻 Mga weight na inuuna ang kalidad para sa pagbuo ng code
auto/fast
⚡ Pinakamababang latency muna
auto/cheap
💰 Pinakamura bawat token muna
auto/offline
🔋 Pinakamalaking natitirang quota / headroom sa rate limit muna
auto/smart
🔭 Inuuna ang kalidad + 10% paggalugad upang tumuklas ng mas mahuhusay na model
auto/lkgp
📌 Tahasang pananatili sa huling provider na napatunayang maayos
auto/chaos
🧪 Mga weight sa pag-inject ng fault para sa pagsubok ng katatagan (chaos engineering)
##
### 🔀 O gumawa ng sarili mo — 19 na estratehiya sa pag-route
Lahat ng **19** na estratehiya — paghalu-haluin at pagtugmain sa bawat hakbang ng combo:
#
Estratehiya
Ano ang ginagawa nito
1
priority
Nakaayos na listahang inuuna ang unang target — ubusin ang bawat isa bago ang susunod 🥇
2
fill-first
Ubusin muna nang buo ang quota ng bawat target bago lumipat
3
weighted
Random na pagpili batay sa weight ng bawat target
4
round-robin
Paikut-ikot na dumaan sa mga target ayon sa pagkakasunod-sunod
5
p2c
Random na pagbabalanse ng load gamit ang power-of-two-choices
6
least-used
Piliin ang target na may pinakamababang kasalukuyang load
7
random
Pantay-pantay na random na pagpili (inaalis ang mga duplikado)
8
strict-random
Random na pagpili nang hindi inaalis ang mga pag-uulit 🎲
9
cost-optimized
Bawasan ang $ bawat request gamit ang live na pagpepresyo sa catalog 💸
10
headroom
Piliin ang target na may pinakamaraming natitirang quota
11
reset-window
Unahin ang target na pinakamalapit nang mag-reset ang quota window
12
reset-aware
Ayusin ayon sa oras ng pag-reset ng quota — maiikling window muna 📊
13
context-relay
Ipasa ang context sa iba't ibang target para sa mahahabang pag-uusap 🧠
14
context-optimized
Piliin ang pinakaangkop para sa kasalukuyang laki ng context
15
cache-optimized
Italaga ang bawat magagamit-muling prompt prefix sa parehong account — i-maximize ang mga prompt-cache hit 🎯
16
lkgp
Last-Known-Good Path — nananatili sa huling matagumpay na provider, saka bumabalik sa mga panuntunan kung kailangan
17
auto
Live na pagsusuri gamit ang 16 na salik sa lahat ng koneksyon 🤖
18
fusion
Ipadala sa isang panel ng mga model + isang tagahatol ang magsasama-sama upang makabuo ng iisang sagot 🧬
19
pipeline
Pagkadenahin ang mga hakbang — ang output ng bawat target ang ipapasok sa susunod 🔗
Sinusuri ng Auto-Combo engine ang bawat kandidato batay sa **16 na salik** (kalagayan, quota, gastos, latency, pagiging angkop sa gawain, kalidad, availability ng session…) — tingnan ang [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Built-in ang katatagan (3 magkakahiwalay na layer)
📖 [Auto-Combo Engine](docs/routing/AUTO-COMBO.md) · [Gabay sa Katatagan](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Ano ang Nagpapabukod-tangi sa OmniRoute
📊 Kumpletong metodolohiya at detalye ng bawat feature kumpara sa 9router, OpenRouter, CLIProxyAPI at LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Suportahan ang OmniRoute
Ang OmniRoute ay may lisensyang MIT at hayagang pinapanatili. Kung nakakatipid ito ng oras o pera para sa iyo, narito kung paano mo ito matutulungang manatiling malaya — piliin ang naaangkop sa iyo. Hindi kailanman naaapektuhan ng sponsorship ang priyoridad sa routing; visibility ang binibili nito, hindi ranggo.
**🇧🇷 PIX** — agad-agad, walang bayarin (Brazil)
Key (random): `5d865059-bc44-483a-962d-43ceb80126eb`
Kopyahin-at-i-paste na Pix:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Crypto — BTC · ETH · USDT-TRC20 · USDC-Solana (i-click para palawakin)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Ipadala lamang ang bawat coin sa ipinapakitang network — maaaring mawala ang mga pondo kapag ipinadala sa maling network.
🐛 Nakakita ng bug o may feedback? Magbukas ng [Talakayan](https://github.com/diegosouzapw/OmniRoute/discussions).
Mga tala para sa developer: Maaaring bumuo ang proyekto ng lokal na .env file habang isinasagawa ang npm install/postinstall para sa kaginhawaan ng developer. Sadyang binabalewala ang file na ito sa pamamagitan ng .gitignore (tingnan ang .gitignore) at hindi ito kailanman dapat i-commit — kung aksidenteng na-commit, palitan ang anumang nalantad na secret at alisin ang file mula sa history. Tingnan ang docs/DEVELOPER-ENVIRONMENT.md para sa gabay sa pamamahala ng mga lokal na environment file at secret.
## 📡 OmniRoute Radar
Ang pangunahing tampok ng libreng tier ay nananatiling **~1.47B token/buwan** mula sa nakadokumento at
na-deduplicate ayon sa pool na catalog sa itaas. Ang mga pansamantalang credit sa pag-sign up sa provider ay maaari ding hiwalay na magtaas sa unang
buwan sa **~2.07B**. Ang Radar ay isang opsyonal at nilagdaang catalog overlay para sa mga taong nais ng mas napapanahong
availability ng mga libreng modelo sa pagitan ng mga release ng OmniRoute; nananatiling libre ang catalog ng komunidad at lahat ng kasalukuyang libreng
feature.
Maaaring matanggap ng mga supporter ang live na catalog at mga karagdagang oportunidad mula sa provider. Ang hiwalay at
nababagong maximum nito ay **humigit-kumulang 3B token/buwan sa pinakamarami**, depende sa availability ng provider.
Hindi garantiya ang maximum na iyon: maaaring baguhin ng mga provider ang mga quota, pagiging kwalipikado, mga modelo, o mga rehiyon anumang
oras.
Opt-in at GET-only ang Radar. Hindi nag-a-upload ang OmniRoute client ng mga prompt, trapiko, configuration ng provider,
telemetry ng paggamit, o lokal na status ng pag-dismiss ng anunsyo. Alamin ang tungkol sa pagiging kwalipikado at
kasalukuyang catalog sa **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Ano ang Bago
> Mga kamakailang tampok mula **v3.8.20 → v3.8.50**. Ang buong kasaysayan ay nasa [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — papasok na delegasyong A2A sa iyong fleet ng mga agent, mga skill ng Conductor sa Agent Card, at isang dashboard panel na may Faro push-to-talk voice chat. → [A2A Server](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptive na pagtanggap at proteksiyon laban sa overload** — ipinipila ang mabibigat na kahilingan sa chat sa halip na magbalik ng 503, gamit ang mga atomic RPM rolling lease sa bawat koneksiyon. → [Gabay sa Resilience](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanonikal na pagkakasunod-sunod ng `/v1/models`** — isang magkakadikit na block na nakapangkat ayon sa provider para sa bawat provider (naka-pin muna ang mga combo), na hindi nagbabago sa lahat ng pinagmulan ng catalog. → [Sanggunian ng API](docs/reference/API_REFERENCE.md)
- **🗜️ Pagpapatatag ng compression** — naka-on bilang default na inflation guard, mga Caveman pack para sa DE / FR / JA + Chinese (wényán), at mga RTK filter para sa Gradle at .NET. → [Compression](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Tapat na flat-rate na gastos** — lumalabas bilang **$0** sa cost analytics ang mga provider ng subscription / coding plan; patuloy na nagtatantiya ang budget, quota, at routing. → [Sanggunian ng API](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share routing** — patas na hinahati ang quota ng isang shared account sa mga pooled key, at work-conserving ito upang maipahiram ang mga hindi ginagamit na bahagi. → [Gabay sa Resilience](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Isang-command na pag-setup ng CLI/agent** — 13 nakarehistrong `setup-*` command; inilulunsad ng `omniroute run` ang 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); sinusuportahan ng `omniroute configure` ang 10 target na may interactive na provider+model picker at mga paborito sa bawat konteksto. → [Mga Integrasyon ng CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Remote mode** — kontrolin ang isang remote na OmniRoute gamit ang mga scoped token (`connect` / `contexts` / `tokens`) + isang `antigravity` OAuth helper para sa mga pag-install sa VPS. → [Remote Mode](docs/guides/REMOTE-MODE.md)
- **🧭 Mas matalinong auto-routing** — mga combo na `auto/:`, **Fusion** (model panel + judge), routing na isinasaalang-alang ang gawain, at mga override sa bawat kahilingan para sa model / mode / USD budget. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Pluggable na compression** — 12 composable engine + Compression Studios: LLMLingua-2, two-tier Ultra, omniglyph, fidelity gate sa bawat hakbang, GCF v3.2, at drag-reorder editor. → [Compression](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Transparent na MITM decrypt (TPROXY)** — i-capture ang mga CLI na binabalewala ang mga proxy env var, gamit ang CA sa bawat SNI + trust-store installer. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Cost telemetry saanman** — mga header ng gastos/paggamit na `X-OmniRoute-*` sa bawat endpoint, header ng matitipid mula sa cache-HIT, at mga USD spending quota sa bawat key. → [Sanggunian ng API](docs/reference/API_REFERENCE.md)
- **🧠 Memory na kontrolado mo** — naka-off bilang default, opt-in na int8 vector quantization + typed decay, at `x-omniroute-no-memory` sa bawat kahilingan. → [Memory](docs/frameworks/MEMORY.md)
- **🛡️ Seguridad** — prompt-injection guard sa bawat LLM route (red-team suite), opt-in na credential-masking guardrail (nire-redact ang mga tumagas na API key/secret sa parehong direksiyon), libreng DuckDuckGo web search bilang huling opsiyon, at opsiyonal na OIDC login gate para sa dashboard (palaging nananatiling available ang password login). → [Mga Guardrail](docs/security/GUARDRAILS.md)
- **🖼️ Mga bagong endpoint** — kinukumpleto ng `/v1/ocr` (Mistral OCR) at `/v1/audio/translations` (Whisper-style) ang saklaw ng media. → [Sanggunian ng API](docs/reference/API_REFERENCE.md)
- **🎨 Pagbuo ng image / video / audio** — iisang API para sa media: xAI Grok Imagine at Novita AI video, ComfyUI, Magnific, Adobe Firefly, Segmind, at mga speech provider gaya ng ElevenLabs. → [Sanggunian ng API](docs/reference/API_REFERENCE.md)
- **🌍 Deployment at operasyon** — reverse-proxy `basePath`, awtomatikong pagtukoy sa wika ng browser, pagsubaybay sa device sa bawat key, root-less na MITM trust, at zh-TW localization. → [Environment](docs/reference/ENVIRONMENT.md)
- **🤝 Higit pang provider at agent** — mga cloud agent (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) na may browser + OAuth login, first-class na card para sa Ollama, Claude Opus 5 at Sonnet 5, opisyal na pakikipagsosyo sa Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… at isang ni-refresh na **catalog ng 352 provider**. → [Mga Provider](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Transparency sa routing** — bawat tugon ay may header na `X-OmniRoute-Decision` na tumutukoy sa strategy/provider/latency na nagsilbi rito, isang bagong `cache-optimized` combo strategy + Auto-Combo `cacheAffinity` factor ang muling nagru-route ng mga nauulit na kahilingan pabalik sa koneksiyong may hawak ng naka-cache na prefix, at inilalantad ng read-only na endpoint na `/v1/auto-combo/{channel}/candidates` ang live candidate pool ng isang `auto/*` channel. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Lokal na performance at imprastraktura** — one-click na lokal na Redis, mga relay deployer para sa Cloudflare Workers / Deno Deploy, at Bifrost at Mux bilang mga pinangangasiwaang embedded service. → [Mga Embedded Service](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Kasama rin** — plugin framework + marketplace, mga framework ng Omni/Agent/GitHub skills, integrasyon sa Obsidian vault (22 MCP tool), OpenAI-compatible na Batch at Files API, semantic response cache, gamification na may mga leaderboard, ACP agent discovery (15 built-in na agent), nakaiskedyul na pag-export ng log sa BigQuery, `auto/chaos` fault injection, isang Telegram bot bridge, isang in-app na version manager, at mga ranking ng libreng provider mula sa LMArena-ELO. → [Mga Dokumento](docs/README.md)
## 🤖 Mga Compatible na CLI at Coding Agent
> Isang config — `http://localhost:20128/v1` — at **bawat** AI IDE o CLI ay gumagana sa libre at murang mga modelo.
+ gumagana rin sa · Kiro · Command Code · Antigravity · Windsurf · AMP · anumang tool na compatible sa OpenAI
📖 Setup para sa bawat tool para sa lahat ng 36 na tool (26 CLI Code + 10 CLI Agent) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 Plugin ng OpenCode → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Ilunsad ang anumang sinusuportahang CLI sa pamamagitan ng OmniRoute gamit ang isang command** — walang isinusulat na mga config file,
ini-inject ang mga credential sa bawat proseso, at binibigyan ang Qwen/Gemini ng pansamantalang nakahiwalay na home:
```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"
# O pumili ng provider+model nang interaktibo at isulat ang sariling config ng tool:
omniroute configure codex # gayundin: claude opencode qwen aider goose gemini cline continue kilo
```
Sinusunod ng bawat command ang aktibong remote context (`omniroute connect `), ipinapakita ng `--dry-run`
ang eksaktong env/args nang hindi isinasagawa ang mga ito, at pinapanatili ng `--api-key-env NAME` ang mga secret
sa labas ng history ng iyong shell. → [Mga Integrasyon ng CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 352 AI Provider — 152 Minarkahan sa Katalogo bilang Libre
> **352 nakarehistrong provider** sa mga kanonikal na koleksiyon ng chat, media, search, local, cloud-agent, at system, kabilang ang **152 na may `hasFree: true` na metadata para sa pagtuklas**. Saklaw ng registry ng modelo ng chat ang **229 provider / 2,554 natatanging pares ng provider-model / 1,283 raw na model ID**; ang hiwalay na katalogo ng libreng badyet ay may **443 row bawat modelo**, **34 umuulit na pool**, at **53 umuulit/walang-key na libreng-forever na provider**. Sadyang magkakaiba ang mga denominator na ito; makikita ang mga depinisyon at kalkulasyong inalisan ng mga duplikadong pool sa [Sanggunian ng Provider](docs/reference/PROVIDER_REFERENCE.md) at [Mga Libreng Tier](docs/reference/FREE_TIERS.md).
### 🏢 Bawat pangunahing laboratoryo — sa pamamagitan ng iisang endpoint
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…at 330+ pa — live na kinukuha ang bawat icon mula sa katalogo ng provider ng dashboard. 📖 [Sanggunian ng Provider](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Libre Magpakailanman — $0, walang card
OpenCode Zen DeepSeek V4, Nemotron 3 Walang limitasyon sa token
Kilo Code Awtomatikong router, Tencent Hy3 Libre magpakailanman
Qoder AI Qwen3-Max, Kimi-K2 Walang limitasyon at LIBRE
Pollinations GPT, Llama, Claude Hindi kailangan ng key
Cloudflare AI 50+ modelo 10K neuron/araw
NVIDIA NIM GLM, MiniMax ~40 RPM nang libre
Cerebras GLM 4.7, GPT-OSS 1M token/araw
OpenRouter mga modelong :free +$10 → mas mataas na RPM
📖 Buong katalogong nababasa ng makina → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Saan Gumagana ang OmniRoute — Kahit Saan
> Parehong app, sarili mong makina, sarili mong mga tuntunin. Mula sa global na pag-install gamit ang npm hanggang sa **iyong telepono** sa pamamagitan ng Termux.
Platform
Pag-install
Mga Tampok
📦 npm (global)
npm install -g omniroute
Isang command, anumang OS
🐳 Docker
docker run … diegosouzapw/omniroute
Multi-arch na AMD64 + ARM64
🖥️ Desktop (Electron)
npm run electron:build
Native na window + system tray — Windows / macOS / Linux
🎩 Menu-bar (OmniRouteTray)
brew install --cask zoispag/tap/omniroute-tray
Sinusubaybayan at awtomatikong ina-update ang server — macOS
💪 ARM
native na arm64
Raspberry Pi, mga ARM server, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Gumagana sa iyong telepono, 24/7, walang root
📲 PWA
"Idagdag sa Home Screen"
Fullscreen, offline, maaaring i-install mula sa browser
🧩 OpenCode plugin
@omniroute/opencode-provider
Native na integrasyon sa OpenCode
🤖 VS Code Copilot Chat
i-install ang OmniCopilot extension
Lahat ng modelo ng OmniRoute sa native na Copilot Chat picker — stable at Insiders
### 🧩 Bago: OmniRoute sa loob ng native na Copilot Chat ng VS Code
> Walang bagong sidebar, walang bagong chat UI — bawat modelong inihahatid ng OmniRoute ay lalabas mismo sa
> **Copilot Chat model picker na ginagamit mo na**. Mula sa VS Code 1.122, gumagana ang mga provider model
> nang hindi kailangang mag-sign in sa GitHub o magkaroon ng Copilot subscription — agent mode, tool calling, at vision,
> nang libre.
I-install ang **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)** extension, ituro ito
sa iyong OmniRoute server (default ang `localhost:20128`), pagkatapos ay buksan ang Copilot Chat → model picker
→ **Pamahalaan ang Mga Modelo…** → **OmniRoute**.
Mula sa loob ng editor: buksan ang **Extensions** view, hanapin ang **"OmniRoute"**, at i-click ang **Install**
— pareho ang paraan ng paggana sa dalawang store. Matatagpuan ang source, mga issue, at runbook sa pag-publish sa
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Gabay sa VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — pag-setup, kung ano ang ipinapakita ng picker, dashboard-sa-isang-tab, pag-troubleshoot
### 🎩 Bago: OmniRouteTray — ang iyong gateway na nasa menu bar
> Pinakamahusay na gumagana ang `omniroute serve` kapag palagi itong naka-on. Ginagawang set-and-forget na menu-bar app para sa macOS ng **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> ang setup na iyon: sinisimulan nito ang server, pinananatili itong gumagana
> sa bawat pag-reboot, ina-update ito nang hindi inililipat, at inilalagay ang iyong kasalukuyang token budget isang click lang ang layo — **walang
> terminal window na kailangang manatiling bukas, walang `npm install -g omniroute` na kailangang bantayan.**
Binuo gamit ang [Tauri v2](https://v2.tauri.app/) (isang Rust core na napakaliit), kasama rito
ang sarili nitong signed na Node 24 runtime at pinamamahalaan nito ang pag-install ng OmniRoute na pag-aari ng app, kaya hindi ito kailanman sumasalungat sa iyong
global na `node`/`bun`. **Ibinabahagi nito ang kasalukuyan mong `~/.omniroute/` config at database** — kaya ito rin ang
OmniRoute na ginagamit mo na, ngunit may suot lamang na sombrero. 🎩
Ano ang ginagawa nito
Paano
🟢 Sinusubaybayan ang server
Inilulunsad ang omniroute serve at ginagamit ang tumatakbo nang instance sa halip na gumawa ng duplicate nito
📊 Aktuwal na paggamit sa isang tingin
Mga quota bar ng provider, mga limitasyon ng Claude session/lingguhan na may countdown bago mag-reset, at 30-araw na breakdown ng gastos
🔄 Awtomatikong nag-a-update nang hindi inililipat
Staged na pag-install, atomic swap, rollback kapag nabigo — palaging nasa pinakabagong release
🚀 Simulan sa pag-login
Opsyonal na paglunsad sa pag-login; tray lamang, walang dock icon
🩺 Doctor at mga log
Isang-click na diagnostics at access sa mga server log
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Mas gusto mong mag-download? Kunin ang pinakabagong .dmg mula sa
Mga Release. Ang source, mga issue, at dokumentasyon sa build ay
makikita sa zoispag/omniroute-tray.
💛 Isang proyektong pangkomunidad ni @zoispag — hindi isang opisyal na release ng OmniRoute.
> Bukod sa server, ang OmniRoute ay isang **kumpletong command-line cockpit** na may **80+ command**, kasama ang mga bukas na protocol para sa agent upang mapatakbo ito ng isang AI agent **nang mag-isa**.
### ⌨️ Isang tunay na CLI (hindi lang `start`)
```bash
omniroute # ihatid ang gateway + dashboard (port 20128)
omniroute chat # interaktibong TUI chat client (slash: /model /combo /skill /memory)
omniroute setup # may-gabay na wizard para sa unang pagpapatakbo
omniroute doctor # suriin ang mga provider, port, at native dependency
```
### 🛰️ Remote mode — patakbuhin ang CLI dito, at ang OmniRoute sa isang VPS
Nasa server ang OmniRoute? Kontrolin ito mula sa iyong laptop gamit ang **parehong CLI**. Mag-log in nang isang beses
gamit ang isang access token na may saklaw; pagkatapos nito, ang bawat command ay nakatuon na sa remote.
```bash
omniroute connect 192.168.0.15 # password → token na may saklaw, sine-save bilang isang context
omniroute models list # ← tumatakbo laban sa REMOTE server
omniroute configure codex # ← pumipili ng remote na model, nagsusulat ng lokal na Codex profile
omniroute tokens create --name ci --scope read # gumawa ng mga token na mas makitid ang saklaw para sa ibang makina
omniroute contexts use default # ← bumalik sa lokal na server
```
Ang mga token ay may saklaw na `read` / `write` / `admin`; nananatiling loopback-only ang mga route na nagpapasimula ng proseso.
📖 [Remote Mode](docs/guides/REMOTE-MODE.md)
### 🤝 Ikonekta ang isang agent — at kokontrolin nito ang OmniRoute mismo
Ilantad ang OmniRoute sa pamamagitan ng **MCP**, **A2A**, isang **REST API**, **mga webhook**, o isang **remote CLI** — makukuha ng anumang may-kakayahang agent (o ng sarili mong code) ang mga susi sa buong gateway: routing, mga provider, combo, cache, compression, memory — nang awtonomo. Inihahatid ang mga HTTP endpoint sa ibaba sa ilalim ng `http://localhost:20128`.
Interface
Endpoint / command
Gamitin ito para sa
🧰 MCP (stdio)
omniroute --mcp
Ikonekta sa Claude Desktop, Cursor, o anumang MCP client
Compatible sa OpenAI — chat, embedding, larawan, audio, OCR
🔔 Mga Webhook
/api/webhooks
I-push ang mga event ng kahilingan / quota sa Slack, Discord, Telegram, o anumang URL
🛰️ Remote CLI
omniroute connect
Kontrolin ang isang remote instance gamit ang mga access token na may saklaw
```bash
# Ibigay sa Claude Code ang kumpletong toolset ng OmniRoute sa pamamagitan ng MCP:
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) · [Mga Protocol ng Agent](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Makatipid ng 15–95% na Token — Awtomatiko
### 📖 Paano ito gumagana — pipeline, arkitektura at pagkukuwenta ng matitipid
Pinapatakbo ng default na stacked combo ang `RTK → Caveman`. Kapag parehong inilapat ang mga ito sa iisang tool/context payload, naiipon ang matitipid:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Ang mga code block, URL, JSON at structured data ay **palaging pinoprotektahan** ng preservation engine.
> **Bakit gagamit ng maraming token kung sapat na ang kaunti?** Ang bawat kahilingan ay dumaraan sa compression pipeline ng OmniRoute nang **transparent** — walang kailangang baguhin sa client. Isa na itong **stack ng 12 composable engine** na tumatakbo nang sunod-sunod at maaaring paghalu-haluin para sa bawat routing combo — batay sa mga ideya mula sa [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua), at [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Ang stack ng 12 engine
Tumatakbo ang mga engine ayon sa pagkakasunod-sunod ng pipeline; maaaring i-toggle at i-configure nang hiwalay ang bawat isa para sa bawat combo:
#
Engine
Ano ang ginagawa nito
1
Session-Dedup
Inaalis ang content na nauulit sa magkakasunod na turn (content-addressed, cross-turn)
2
CCR
Ina-archive ang malalaking block sa likod ng mga retrieve marker, na kinukuha kapag kinakailangan
3
Lite
Pagbabawas ng whitespace + image URL (magaan sa latency na baseline)
4
RTK
Matalinong pag-filter, dedup at truncation ng mga resulta ng tool (command-aware)
5
Responses Tool Output
Lossless-first na JSON + limitadong diagnostic compression para sa mga output ng shell/patch/search/build (Responses API)
6
Headroom
Lossless na tabular compaction ng mga JSON array (~30%) sa pamamagitan ng bundled na GCF codec
7
Relevance
Extractive na pagmamarka ng mga pangungusap batay sa huling query ng user
8
Caveman
Rule-based na compression ng prosa (~65–75% sa output)
9
Aggressive
Pagbubuod + progresibong pag-age ng mga lumang turn
10
LLMLingua-2
ML semantic pruning sa pamamagitan ng MobileBERT ONNX — ligtas para sa code, async
11
Ultra
Heuristic na token pruning na may opsyonal na small-model (SLM) tier
12
OmniGlyph
Eksperimental na context-as-image encoding para sa nasukat na Claude Fable 5 sa direktang Anthropic wire; nananatiling fail-closed ang mga GPT 5.6 transformer habang hinihintay ang mga receipt ng provider. Apat na compression profile (aggressive na default, balanced, coding-safe, passthrough) (pinaka-aggressive; opt-in)
Ang mga code block, URL at structured data ay **palaging pinapanatili** nang byte-perfect. Pinagsasama ng mga **one-click preset** ang mga engine:
Mode
Matitipid
Pinakamainam para sa
🪶 Lite
~15%
Laging naka-on at ligtas na default
🪨 Standard (Caveman)
~30%
Pang-araw-araw na coding
⚡ Aggressive
~50%
Mahahabang session na maraming paggamit ng tool
🔥 Ultra
~75%
Pinakamalaking matitipid
🧰 RTK
60–90%
Output ng shell/test/build/git
🔗 Stacked (RTK → Caveman)
78–95%
Pinagsamang mga prompt + log ng tool
**Tunay na halimbawa — Standard mode:**
> **Bago (69 token):** _"Ang malamang na dahilan kung bakit muling nagre-render ang iyong React component ay dahil gumagawa ka ng bagong object reference sa bawat render cycle. Kapag nagpasa ka ng inline object bilang prop, itinuturing ito ng shallow comparison ng React bilang ibang object sa bawat pagkakataon, kaya nagti-trigger ito ng re-render. Inirerekomenda kong gamitin ang useMemo upang i-memoize ang object."_
>
> **Pagkatapos (19 token):** _"Bagong object ref sa bawat render. Inline object prop = bagong ref = re-render. I-wrap sa useMemo."_
>
> **Parehong sagot. 72% mas kaunting token. Walang nabawas sa katumpakan.** ✅
**Halimbawa sa PT-BR — [Troglodita](https://github.com/leninejunior/troglodita) mode:**
> **Bago (42 token):** _"Ang problema ay muling nagre-render ang component dahil gumagawa ng bagong object reference sa bawat render cycle. Iminumungkahi kong gamitin ang useMemo."_
>
> **Pagkatapos (12 token):** _"Muling pag-render: bagong ref bawat cycle (muling ginagawa ang inline object). Gamitin ang `useMemo`."_
>
> **Parehong sagot. ~70% mas kaunting token. Buo ang teknikal na katumpakan.** ✅
### 🎚️ Higit pa sa mga engine — mga istilo ng output, ang adaptive dial, at kontrol sa bawat request
Pinapaliit ng 12 engine sa itaas ang pumapasok. Tatlo pang layer ang humuhubog sa **paano**, **kailan**, at kung ano ang **lumalabas**:
- **🪄 Mga Istilo ng Output** _(pagkontrol sa output axis)_ — nag-i-inject ng mga deterministiko at cache-safe na tagubilin para hubugin ang tugon; maaaring pagsama-samahin, bawat isa ay may `lite` / `full` / `ultra` na intensity. Isang linyang registry entry lang ang kailangan upang magdagdag ng istilo:
- **Maikling prosa** — alisin ang paligoy-ligoy / mga pantukoy / pag-aatubili; panatilihing eksakto ang teknikal na nilalaman.
- **Mas kaunting code** — "tamad na senior dev" na YAGNI: pinakamaliit na gumaganang pagbabago, walang hindi hiniling na scaffolding.
- **Ponytail (tamad na senior dev)** — umakyat sa YAGNI ladder, ayusin ang ugat ng problema, pinakamaliit na gumaganang diff.
- **May ADHD ako (aksyon muna)** — unahin ang susunod na aksyon, lagyan ng numero ang mga hakbang, isang konkretong susunod na hakbang, walang pambungad.
- **Maikling CJK (文言)** — napakaikling istilo ng klasikong Chinese (nililimitahan ayon sa locale na `zh`).
- **🎯 Adaptive na context budget** _(ang dial)_ — sa halip na iisang on/off na threshold ng token, pataasin lamang ang paggamit sa pinakamura at pinakakaunting-loss na mga engine hanggang sa kinakailangang antas upang **magkasya sa context window ng modelo**. Patakaran: `reserve-output` (default, isinasaalang-alang ang modelo) · `percentage` · `absolute`. Mode: `floor` (ginagarantiyang magkakasya) · `replace-autotrigger` (nangingibabaw ang tahasan mong pinili) · `off` (lumang threshold).
- **🎛️ Kung saan pinagpapasyahan ang compression** _(pagkakasunod ng priyoridad, mataas → mababa)_ — per-request na `x-omniroute-compression` header › override ng routing combo › aktibong pinangalanang profile › adaptive / auto-trigger › default ng panel › off. Ibinabalik ang inilapat na plano sa `X-OmniRoute-Compression: ; source=` response header.
Mag-auto-trigger ayon sa threshold ng token, i-on ang adaptive dial, i-pin ang isang pinangalanang profile, magtakda ng minsanang opsyon sa bawat request, o magtalaga ng pipeline sa bawat routing combo — alinman ang akma sa workload. Sinusukat ng opt-in at offline na **eval harness** (`npm run eval:compression`) ang fidelity kumpara sa matitipid gamit ang naka-pin na corpus bago mo i-promote ang pagbabago.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Mabilisang Pagsisimula
**1) I-install at patakbuhin**
```bash
npm install -g omniroute
omniroute
```
> 💡 Nakikita ang `npm warn ERESOLVE` o mga babala sa peer dependency? [Hindi nakapipinsala ang mga iyon](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
Dashboard sa `http://localhost:20128` · API sa `http://localhost:20128/v1`.
**2) Kumonekta sa isang LIBRENG provider (walang signup)**
Dashboard → **Mga Provider** → ikonekta ang **Kiro AI** (libreng Claude, ~50 credit/buwan bawat account) o **OpenCode Free** (walang auth) → tapos na.
**3) Ituro rito ang iyong coding tool**
```txt
Base URL: http://localhost:20128/v1
API Key: [kopyahin mula sa Dashboard → Endpoints]
Model: auto (matalinong routing na walang configuration — o anumang provider/model)
```
**4) Tiyaking gumagana ito**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Dapat mong makita sa listahan ang mga nakakonekta mong modelo. 🎉 Iyon lang — magsimula nang mag-code, at awtomatikong magru-route at magfa-fallback ang OmniRoute para sa iyo.
Kung hindi makapagpadala ng mga custom header ang iyong client, nagbibigay din ang OmniRoute ng mga tokenized compatibility alias:
```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
```
Gamitin lamang ang mga ito para sa mga client na hindi makapag-attach ng `Authorization: Bearer ...`. Ang header auth pa rin ang mas mainam na mode.
## 📦 Higit pang paraan ng pag-install — Docker, source, 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
```
Sinusundan ng `:latest` ang pinakamataas na **na-publish** na stable na SemVer. Hindi nito sinusubaybayan ang git `main`. I-pin ang `:X.Y.Z` para sa GitOps. Tingnan ang [Mga Channel ng Release ng Docker](docs/guides/DOCKER_GUIDE.md#release-channels). Naka-pin sa image ang **`OMNIROUTE_MEMORY_MB=1024`**. Sapat iyon para sa dashboard at magaan na chat. Nangangailangan ang mga **coding agent** (`POST /v1/responses` mula sa Claude Code, Codex, Grok, …) ng mas malaking V8 heap, kung hindi ay magkakaroon ng `FATAL ERROR` ang proseso sa ~12 GiB kapag may dalawang magkapatong na mahabang context. Maglaan sa container ng higit sa laki ng heap (nasa labas ng V8 ang mga native buffer):
| Workload | Heap (`-e OMNIROUTE_MEMORY_MB`) | Container (`--memory`) |
| ------------------------------------------ | ------------------------------- | ---------------------- |
| Dashboard / magaan na chat | `1024` (default ng image) | ≥2 g |
| Isang coding agent | `8192` | ≥10 g |
| Dalawang sabay na mahabang `/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
```
Buong talahanayan: [Gabay sa Docker — runtime RAM](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Pre-release na channel ng Docker:** Sinusundan ng `diegosouzapw/omniroute:next` at
> `diegosouzapw/omniroute:next-web` ang kasalukuyang default na branch na `release/v*`.
> Ang mga nababagong tag na ito ay inilaan lamang para sa pagsubok ng mga hindi pa
> nailalabas na pag-aayos at **hindi sinusuportahan para sa production**. Tingnan ang
> [Mga Channel ng Release ng Docker](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Sinusuportahan ang karaniwang `bun install` at global na pag-install (`bun install -g omniroute`) sa pamamagitan ng pagtukoy sa Bun runtime:
- **Built-in na `bun:sqlite`**: Ginagamit ng OmniRoute ang built-in na `bun:sqlite` driver ng Bun kapag tumatakbo sa Bun, at bumabalik sa `better-sqlite3` sa Node.js o `sql.js`.
- **Awtomatikong pagpili ng Webpack bundler sa dev**: Awtomatikong tinutukoy ng development (`bun run dev`) ang Bun at dini-disable ang Turbopack pabor sa Webpack upang maiwasan ang mga incompatibility sa native V8 binding. Eksaktong sinusunod ng mga production build (`bun run build`) ang `OMNIROUTE_USE_TURBOPACK` gaya sa Node: Turbopack bilang default, `OMNIROUTE_USE_TURBOPACK=0` upang mag-build gamit ang Webpack (inilalantad ito ng `Dockerfile.bun` bilang `--build-arg`).
- **Nakalaang Bun Dockerfile**: Multi-stage na `Dockerfile.bun` para sa mga native na Bun production deployment (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Mag-install at patakbuhin gamit ang Bun
bun install
bun run dev
```
**🛠️ Mula sa source**
```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
# Gamit ang mga Nix flake
nix develop
npm run dev
# O gamit ang devbox
devbox run npm run dev
```
📖 [Gabay sa Docker](docs/guides/DOCKER_GUIDE.md) — Mga Compose profile, Caddy HTTPS, mga Cloudflare tunnel.
**🦭 Podman**
```bash
# 1. Ihanda ang bind-mounted na data directory
mkdir -p data
# 2. Para lamang sa Linux + lokal na rootless Podman (huwag kailanman sa remote na Podman Machine client):
podman unshare chown 1000:1000 ./data
# 3. Itakda ang runtime hint, buuin ang lokal na Compose image, at simulan
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
Sa macOS o Windows, gumagamit ang Podman ng remote na Podman Machine: laktawan ang `podman unshare` at
sundin ang [gabay sa data directory na partikular sa topology](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Gabay sa Podman](contrib/podman/README.md) — Mga Compose build, Podman Machine, at
pag-setup ng Linux/systemd Quadlet.
**⚡ Mas mabilis / mas magaan na pag-install (laktawan ang native build)**
Ang native na SQLite engine (`better-sqlite3`) ay isang **opsyonal** na dependency, kaya ang global na
pag-install ay hindi kailanman mahahadlangan ng pag-compile mula sa source: gumagamit ito ng prebuilt binary kapag may tumutugma
sa iyong platform/Node, at kung wala ay awtomatikong bumabalik sa isang pure-JS engine
(`node:sqlite` sa Node 22+, o kung hindi ay ang kasamang `sql.js` WASM) — walang kinakailangang build tool.
Upang ganap na laktawan ang native warm-up pagkatapos ng pag-install (CI, headless, o mababagal na machine):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # Nilalaktawan din ito ng CI=1
```
Para sa pinakamabilis na pag-install, piliin ang **pnpm** (content-addressed store + mga hard link — tingnan sa itaas).
Para sa headless runtime na walang dashboard, gamitin ang Docker `base` profile (sa itaas) o ang
[gabay sa Termux](docs/guides/TERMUX_GUIDE.md). Inihahatid ng iisang proseso sa iisang port ang CLI at web dashboard,
kaya walang hiwalay na CLI-only package sa kasalukuyan.
# 🎬 Aktuwal na Paggamit sa OmniRoute
## 📹 Mga Gabay sa Video
Snapshot ng dashboard noong 2026-08-24 · Hilaw na katalogo: YT 809 | TT 137 | IG 124 · Pagiging bago (mga araw): YT 1 | TT 21 | IG 22
pino — mga nakaayos na JSON log na may konteksto ng request
Pagsusuri
Node.js test runner + Vitest — 39,000+ static na deklarasyon ng test sa 5,100+ sinusubaybayang test file (unit, integration, E2E, seguridad, ecosystem)
Estratehiya sa test coverage para sa 39,000+ static na deklarasyon ng test sa 5,100+ sinusubaybayang test file
# ⭐ Mga Nangungunang Contributor
> Ang OmniRoute ay hinuhubog ng isang masigasig na open-source na komunidad. Ang mga indibidwal na ito ay gumawa ng mga pambihirang kontribusyong direktang nakaaapekto sa kalidad, katatagan, at abot ng proyekto. **Maraming salamat.**
### Mga external contributor ayon sa mga na-merge na pull request
Itinigil ang datos sa kasalukuyang dulo ng release/v3.8.50 na dafb4ae808, kasama ang mga merge hanggang 2026-08-24 05:26:03 UTC. Ang naka-page na census ng GitHub GraphQL ay naglalaman ng 5,911 na na-merge na PR: 2,707 mula sa may-ari ng repository, 179 mula sa Dependabot, at 3,025 external na PR mula sa 535 magkakaibang contributor. Ang “Mga binagong linya” ay ang mga idinagdag at tinanggal sa GitHub at kabilang dito ang mga nabuong file, lockfile, catalog, pagsasalin, at dokumentasyon; ito ay churn, hindi LOC na isinulat. Pinanatili ang mga tabla sa cutoff.
### Mga commit na iniugnay ng GitHub
Bob.Hou 🏅 51 commit na iniuugnay ng GitHub · tabla sa #10
Xiangzhe 🏅 51 commit na iniuugnay ng GitHub · tabla sa #10
Muling sinuri noong 2026-08-24 06:14:31 UTC: mga commit na iniuugnay ng GitHub na iniulat ng Contributors API ng repository para sa default na branch na release/v3.8.50. Nagbalik ang API ng 525 pagkakakilanlan (415 user, 2 bot, 108 anonymous); hindi kasama sa talahanayang ito ang maintainer, mga bot, at mga anonymous na pagkakakilanlan, at pinananatili nito ang mga tabla sa ranggo. Naiiba ito kapwa sa ranggo ng mga na-merge na PR sa itaas at sa census ng Git metadata ng 639 katao sa ibaba.
> 🙏 Ang mga feature, pag-aayos ng bug, at pagpapahusay sa imprastraktura ng mga contributor na ito ay isang **mahalagang bahagi** ng dahilan kung bakit maaasahan at sagana sa feature ang OmniRoute. Mahalaga ang bawat pull request, bawat test case, at bawat file ng salin para sa i18n. Ang open source ay binubuo ng mga taong tulad nila.
---
## 💖 Mga Sponsor
Taos-pusong pasasalamat sa mga taong nagpopondo sa OmniRoute mula sa sarili nilang bulsa — bawat kontribusyon ay nagpapanatiling libre, malaya, at patuloy na umuunlad ang proyekto.
… at iba pang mas pinipiling manatiling pribado 💛Muling napatunayan ang mga pampublikong GitHub Sponsor noong 2026-08-24. Ang katayuang activeOnly ng GitHub ang tumutukoy sa mga aktibong label sa itaas; patuloy na pinasasalamatan ang mga dati nang isinapublikong minsanang tagasuporta, at nananatiling hindi pinapangalanan ang mga pribadong sponsor.💖 Maging sponsor → — bawat dolyar ay nagpapanatiling libre at malaya ang OmniRoute.
## 👥 600+ Kontribyutor
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Na-audit noong 2026-08-24 sa nakapirming base na ac02c5b42f at muling sinuri sa kasalukuyang dulo ng release/v3.8.50 na dafb4ae808: 639 na-normalize na pagkakakilanlan ng tao sa Git — 407 ang lumilitaw bilang mga may-akda ng commit (kabilang ang tagapanatili) at 232 ang lumilitaw lamang sa mga tahasang trailer na Co-authored-by. Nino-normalize ng census ang mga noreply handle ng GitHub, hindi isinasama ang 26 na pagkakakilanlan ng bot/agent/serbisyo/placeholder, at hindi pinagsasama ang mga karaniwang email address dahil lamang magkatugma ang kanilang mga display name.
### Paano Mag-ambag
1. I-fork ang repository
2. Gumawa ng branch mula sa dulo ng **aktibong** `release/vX.Y.Z` (hindi mula sa `main`) — tingnan ang [Modelo ng Pagba-branch at Pag-release](docs/ops/BRANCHING_MODEL.md)
3. Gumawa ng iyong feature branch (`git checkout -b feat/amazing-feature`)
4. I-commit ang iyong mga pagbabago (`git commit -m 'feat: add amazing feature'`)
5. I-push sa branch (`git push origin feat/amazing-feature`)
6. Magbukas ng Pull Request na may **base = ang branch na iyon na `release/vX.Y.Z`**
Tingnan ang [CONTRIBUTING.md](CONTRIBUTING.md) para sa mga detalyadong alituntunin.
### Pag-release ng Bagong Bersyon
```bash
# Gumawa ng release — awtomatikong isasagawa ang npm publish
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Mga Star
## 🌍 StarMapper
## 🙏 Mga Pasasalamat
Nakatindig ang OmniRoute sa mga balikat ng mga higante. Nagsimula ito bilang fork ng **[9router](https://github.com/decolua/9router)** at TypeScript port ng Go project na **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — at mula roon, ang bawat subsystem sa ibaba ay binigyang-inspirasyon ng isang open-source project na naunang nakagawa nito. Bawat isa ay humubog sa isang kongkretong bahagi ng OmniRoute. Ito ang aming pasasalamat sa kanilang lahat. 🙏
> ⭐ na-verify ang bilang ng mga star mula sa REST API ng GitHub noong Agosto 24, 2026 — bigyan din ng star ang mga proyektong ito. Ang mga bilang ay eksaktong snapshot mula sa petsang iyon at likas na magbabago.
### 🧬 Pinagmulan at gateway
Ang AI gateway na ang pampublikong dataset ng pagpepresyo ay ginagamit sa aming pag-sync ng pagsubaybay sa gastos at ang modelo ng pag-normalize ng provider nito ang naging batayan ng aming routing.
MIT source na inangkop sa naka-vendor na ChatGPT Web → Codex Responses bridge, kabilang ang mga adapter para sa browser session, response framing, paggamit, at paghahanap sa web.
Mga pattern na na-port sa pagbawi ng stream, mga no-thinking alias, fallback na paghahanap sa web, mga sliding-window limit, pag-redact ng log, at mga pinatibay na daloy ng launcher.
Ang mga mapping nito ng Grok model, fake-TypeError Statsig generator, mga default ng request at device, at NDJSON response processor ay makabuluhang inangkop sa Grok Web executor ng OmniRoute.
Ang pangunahing transitive na source ng code sa likod ng grok2api-merged; pinanatili ang mga implementasyon nito ng model, header, payload, Statsig, at processor sa lineage ng Grok Web.
Ang pinagbabatayang MIT source para sa mga default ng Grok payload at device, ang Statsig generator, at ang result.response processor na ipinasa sa pamamagitan ng TQZHR at grok2api-merged.
Isang transitive na source na kinilala ng grok2api-merged para sa proxy-pool layer nito; pinananatili ng OmniRoute ang abiso sa lineage na iyon ngunit hindi nito inaangkin na may proxy-pool port sa limitado nitong Grok Web executor.
Ang Grok proxy nitong pinapatotohanan gamit ang cookie at ang result.response.token streaming pattern ay naging batayan ng Grok Web transport ng OmniRoute.
Isinaalang-alang ng orihinal na implementasyon ng Grok Web ang disenyo nito para sa HTTP/browser upstream; nagmula sa GrokProxy ang direktang HTTP path nito, kaya walang inaangking hiwalay na pag-port ng code.
Ang Rust ChatOptions at mga schema ng response envelope nito ang naging batayan ng mga TypeScript type ng OmniRoute para sa Grok request at streaming response.
### 🗜️ Pag-compress ng context at token — mga engine
Ang sumikat na proyektong "bakit gumamit ng maraming token kung sapat na ang kaunti" — ang pilosopiya nitong magsalitang-kuweba ang nagpapatakbo sa aming karaniwang compression mode at mahigit 30 panuntunan sa pag-aalis ng palaman at pagpapaikli.
High-performance na pag-compress ng output ng command — nagbigay-inspirasyon sa aming RTK engine, JSON filter DSL, pagbawi ng raw na output, at sa magkakasunod na RTK → Caveman pipeline.
Pananaliksik sa pag-compress ng prompt (LLMLingua / LLMLingua-2) — nagbigay-inspirasyon sa aming async, ligtas-sa-code, at fail-open na llmlingua engine.
Pag-compress ng token para sa PT-BR — nagpapatakbo sa aming pt-BR language pack: pagbabawas ng pleonasm at pag-aalis ng palaman na iniangkop para sa gramatikang Brazilian-Portuguese.
Ang sumikat na YAGNI-coder skill na "tamad na senior dev" — nagbigay-inspirasyon sa aming less-code Output Style: paggabay tungo sa pinakamaliit na gumaganang pagbabago na nagpapabawas sa _nabuong_ code (ang kapatid sa output-axis ng maikling prosa ng Caveman).
Content-aware at per-file-type na pag-compress ng output na may failure-aware na paghinto — nagpatunay sa aming per-type dispatch at paglaktaw kapag kulang ang pakinabang.
Rust columnar-JSON + content-addressed retrieve + cross-message dedup — nagpatunay sa disenyo ng aming headroom/ccr/session-dedup engine at sa cache-stable na invariant na "hindi nakadepende sa posisyon ang compressed form."
TypeScript Compiler API toolkit — nagbigay-inspirasyon sa aming parser-based na pag-aalis ng comment na pinapanatili ang mga string, template, at regex literal.
Ang taxonomy ng ProblemMap para sa 16 na umuulit na uri ng pagkabigo ng RAG/LLM — ang iisang bokabularyong ginagamit sa aming gabay sa pag-troubleshoot.
### 🛰️ Inspeksyon ng trapiko, MITM at transparent proxy
Ang MITM interception/pagsusuri sa trapiko sa pagitan ng coding assistant ↔ LLM ay nakatulong sa pagbuo ng mga unang kinakailangan para sa Traffic Inspector. Apat na dating hinangong module — pagsasama-sama ng SSE, normalisasyon ng pag-uusap, pagtatakip ng mga lihim, at sanitization ng header — ang pinalitan ng mga independiyenteng clean-room implementation na nakabatay sa mga pampublikong pamantayan ng protocol. Ang dalawang host-passthrough surface (passthrough.ts at _internal/bypass.cjs) ay nananatiling mga internal na implementation ng OmniRoute na hiwalay na inuri; hindi isinulat muli ang mga ito bilang bahagi ng pagpapalit na iyon.
Transparent na per-process proxy routing — nagbigay-inspirasyon sa aming crash-safe na MITM teardown, mga idle-timeout ng socket, /proc process attribution, at TPROXY capture.
Isang piniling listahan ng mga secure-by-default na library na gumagabay sa aming mga pagpiling panseguridad (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Nagbigay-inspirasyon sa request deduplication, pang-emergency na zero-cost fallback, mga pluggable na estratehiya ng Auto-Combo, at multilingual na pag-uuri ng intensyon.
Ang account-aware na model remapping, pagpapatunay ng executable path, at gawi ng plan label nito ay nakatulong sa paghubog ng Antigravity runtime ng OmniRoute.
Ang compact na format nito para sa countdown ng pag-reset ng quota ang nagbigay-inspirasyon sa kaukulang pagpapakita ng limitasyon ng provider sa OmniRoute.
Tinukoy nito ang quota surface ng Grok Build; pagkatapos ay independiyenteng pinatunayan at itinama ng OmniRoute ang live wire format.
## 📄 Lisensya
Lisensyang MIT - tingnan ang [LICENSE](LICENSE) para sa mga detalye.
---
**[⬆ Bumalik sa itaas](#-omniroute)** · Binuo nang may ❤️ para sa open-source na komunidad ng AI.
OmniRoute v3.8.51 · Node ≥22.22.2 · Lisensyang MIT · omniroute.online