## 💰 ~1.62B Token / Buwan Mula sa Mga Libreng Tier ng Third Party
> **Gamitin ang sarili mong mga provider account.** Isa itong tinatayang pinagsama-samang halaga mula sa magkakahiwalay na kwalipikadong libreng tier ng mga third party, hindi isang token grant mula sa OmniRoute. Mag-sign up, kumuha ng mga credential kung kinakailangan, at ikonekta ang mga provider na magagamit mo; bawat provider ang kumokontrol sa sarili nitong mga limitasyon, availability, at tuntunin.
>
> Mahirap pagsama-samahin nang manu-mano ang mga libreng tier — dose-dosenang SDK, dose-dosenang rate limit, at walang ideya kung gaano karami talaga ang mayroon ka. Itinatala ng OmniRoute ang **489 na entry ng libreng tier sa 35 umuulit na pool key** at kinakalkula ang pangunahing bilang ng token mula sa **17 pool na may naka-publish na positibong buwanang budget at limang Groq cap kada modelo**, na inaalis ang mga duplicate ayon sa shared pool. Ang mga quota na mabubuksan lamang pagkatapos ng panrehiyong pagsusuri ng pagkakakilanlan (sa kasalukuyan: ModelScope) ay ipinapakita nang hiwalay, +~6M sa likod ng panrehiyong pag-verify ng pagkakakilanlan, at hindi kailanman isinasama sa pangunahing bilang. Nananatiling nakikita ang resulta sa dashboard (`/dashboard/free-tiers`).
> Animated na buod ng live na pahina ng `/dashboard/free-tiers`. Kumpletong metodolohiya (pag-aalis ng duplicate sa pool, mga tier ng credit, mga tuntunin ng provider): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Muling ina-audit ang mga bilang na ito kada dalawang linggo batay sa live catalog at **maaaring tumaas o bumaba** — kapag tinapos ng isang provider ang libreng tier nito, bababa ang bilang; kapag may bagong dumating, tataas ito. Inilalathala namin ang aktuwal na kinakalkula ng catalog, at hindi kailanman ang pinakamahusay na sitwasyong ni-round up.
⭐ I-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 maintainer — 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 Lumalago ang Gateway
## 🆓 Mag-install, magkonekta ng provider, pagkatapos ay mag-route sa iisang endpoint
```bash
# Pagkatapos magkonekta ng provider, kopyahin ang iyong OmniRoute key mula sa Dashboard → Endpoints:
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
Nangangailangan ang `auto` ng kwalipikadong route. Maaaring walang kwalipikadong keyless target ang bagong installation, at maaaring tanggihan ng keyless provider ang mga third-party client. Ang mga provider na may markang `tos: avoid`, kabilang ang OpenCode Free at Kiro, ay hindi isinasama sa awtomatikong routing bilang default; hindi nao-override ng pagkonekta ng account ang setting na iyon. Tingnan ang [Gabay sa mga Free Tier](docs/getting-started/FREE-TIERS-GUIDE.md) bago pumili ng provider.📦 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 Kaibigan sa Open Source
> **Gusto mo bang sumali bilang isang Kaibigan sa Open Source?** Ito ang mga kumpanyang sumusuporta sa open source at tumutulong na panatilihing gumagana ang OmniRoute — at ipinapahayag namin sa publiko 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 founding Open Source Friend, sa pagsuporta sa proyektong ito! Ang Kimi ay ang AI lab sa likod ng open-weight K2 at K3 model families — ang Kimi K3 ay naghahatid ng 1M-token context window, native vision at frontier-level coding sa isang bahagi ng presyo ng closed-model, at gumagana agad sa Claude Code, Codex at bawat coding tool na inihahatid ng OmniRoute.
Ano ang pinapagana ng suporta ng Kimi: Ang mga API credit ng Kimi ay nagpapagana sa AI-validated release pipeline ng OmniRoute — ang merge validation na pinapagana ng Kimi K3 stage na sumusuri sa bawat pull request bago ito ilabas — kasama ang pang-araw-araw na pagbuo ng feature. Ang first-class na suporta ng Kimi ay inilalabas sa parehong rails: ang direktang Kimi API (kimi-k3) at ang Kimi Code coding plan (OAuth at API key). Ang OmniRoute din ang unang Brazilian open-source project sa support program ng Kimi. Kumuha ng Kimi API key na may 15% dagdag na credits →
Cheaper Inference cheaperinference.com
Salamat sa Cheaper Inference, isang OmniRoute Open Source Friend, sa pagsuporta sa proyektong ito! Ang Cheaper Inference ay isang cost-ranked gateway na nagbebenta muli ng 42 frontier models — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok at MiniMax — sa likod ng isang OpenAI-compatible endpoint, na nagruruta ng bawat kahilingan sa pinakamurang karapat-dapat na provider nang hindi kailanman naniningil ng mas mataas sa list price ng gumawa ng modelo.
First-class na suporta sa OmniRoute: Chat Completions, ang native na /v1/responses endpoint, vision, tool calling at 3 image models (grok-imagine, nano-banana-pro, nano-banana-2, na naaabot bilang cheaperinference/<model>). Kumuha ng API key →
Ang mga link na may tag na aff=omniroute ay mga partner link. Pinopondohan nila ang proyekto nang walang dagdag na gastos sa iyo. 🎟️ Affiliates Promo — libreng signup coupons mula sa mga provider na hindi namin sinusuportahan (i-click para palawakin)Ang seksyong ito ay para lamang sa referral/coupon codes. Ang mga sponsored partnership ay nasa 🤝 Sinusuportahan ng Aming Mga Kaibigan sa Open Source sa itaas. Walang sponsorship o partnership ang OmniRoute sa mga provider na nakalista dito — ito ay mga pampublikong coupon na maaaring gamitin ng sinuman.
AgentRouter agentrouter.org
AgentRouter — affiliate signup · $100 libreng credits sa signup (libreng server, asahan ang mas mataas na latency — pinakamahusay para sa pagsubok, hindi para sa produksyon). First-class na suporta sa OmniRoute mula noong v3.8.50: Chat Completions, ang Anthropic-compatible wire format at ang OpenAI-compatible path. Kasama 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 mapagbigay na libreng signup coupon na makikinabang sa mga user ng OmniRoute? Magbukas ng isyu at idaragdag namin ito dito.
## 🎯 Mga Combo — Ang Pangunahing Tampok
> Ang **combo** ay isang sunod-sunod na hanay ng mga model na **awtomatikong** dinaraanan ng OmniRoute. Kung maubos 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 kailangang i-configure — 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 real time:
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
🔭 Inuuna ang kalidad + 10% na paggalugad upang makatuklas ng mas mahuhusay na model
auto/lkgp
📌 Tahasang pananatili sa huling provider na nalamang maayos
auto/chaos
🧪 Sabay-sabay na pagpapadala sa isang panel ng mga model (isa bawat provider, 5 bilang default), at nagbabalik ng isang sagot; isang upstream na tawag bawat model sa panel, hindi ito fault injection
##
### 🔀 O bumuo ng sarili mo — 19 na diskarte sa pag-route
Lahat ng **19** na diskarte — paghalu-haluin at pagtugmain sa bawat hakbang ng combo:
#
Diskarte
Ang ginagawa nito
1
priority
Nakaayos na listahang inuuna ang unang target — ubusin ang bawat isa bago lumipat sa susunod 🥇
2
fill-first
Lubusang gamitin ang quota ng bawat target bago lumipat
3
weighted
Random na pagpili batay sa weight ng bawat target
4
round-robin
Paikot na daanan ang 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 nang hindi inaalis ang mga pag-uulit 🎲
9
cost-optimized
Pinapaliit ang $ bawat request batay sa kasalukuyang presyo sa catalog 💸
10
headroom
Piliin ang target na may pinakamaraming natitirang quota
11
reset-window
Mas piliin ang target na pinakamalapit nang mag-reset ang quota window
12
reset-aware
Isaayos 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
Itali ang bawat magagamit-muling prompt prefix sa parehong account — paramihin ang mga prompt-cache hit 🎯
16
lkgp
Last-Known-Good Path — nananatili sa huling matagumpay na provider, pagkatapos ay bumabalik sa mga tuntunin kapag kailangan
17
auto
Real-time na pagmamarka batay sa 16 na salik sa lahat ng koneksyon 🤖
18
fusion
Sabay-sabay na ipinapadala sa isang panel ng mga model + bumubuo ang isang tagahatol ng iisang sagot 🧬
19
pipeline
Pagdugtung-dugtungin ang mga hakbang — ang output ng bawat target ang ipinapasok sa susunod 🔗
Minamarkahan 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).
##
### 🧱 Kasama na ang katatagan (3 magkakahiwalay na layer)
📖 [Makina ng Auto-Combo](docs/routing/AUTO-COMBO.md) · [Gabay sa Katatagan](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Ang Nagpapabukod-tangi sa OmniRoute
📊 Kumpletong metodolohiya & detalye ng bawat feature kumpara sa 9router, OpenRouter, CLIProxyAPI & 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 headline para sa libreng tier ay nananatiling **~1.62B token/buwan** mula sa nakadokumento at na-deduplicate ayon sa pool na catalog sa itaas. Maaaring hiwalay na mapataas ng pansamantalang signup credits ng provider ang unang buwan sa **~2.22B**. 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; mananatiling libre ang catalog ng komunidad at ang bawat umiiral na libreng feature.
Maaaring matanggap ng mga supporter ang live na catalog at mga karagdagang oportunidad mula sa provider. Ang hiwalay at nababagong limitasyon nito ay **humigit-kumulang 3B token/buwan sa pinakamataas**, depende sa availability ng provider. Hindi garantiya ang limitasyong iyon: maaaring baguhin ng mga provider ang mga quota, pagiging kwalipikado, mga modelo, o mga rehiyon anumang oras.
Ang Radar ay opt-in at GET-only. Hindi nag-a-upload ang OmniRoute client ng mga prompt, traffic, configuration ng provider, telemetry ng paggamit, o lokal na estado ng pag-dismiss sa announcement. Alamin ang tungkol sa pagiging kwalipikado at ang 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**. Buong kasaysayan sa [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — papasok na A2A delegation sa iyong fleet ng mga agent, mga kasanayan ng Conductor sa Agent Card, at isang dashboard panel na may Faro push-to-talk voice chat. → [A2A Server](docs/frameworks/A2A-SERVER.md)
- **🛂 Naaangkop na admission at proteksiyon laban sa overload** — pumipila ang mabibigat na kahilingan sa chat sa halip na magbalik ng 503, na may mga atomic RPM rolling lease sa bawat koneksiyon. → [Gabay sa Resilience](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Canonical na pagkakasunod-sunod ng `/v1/models`** — isang tuloy-tuloy na block na nakapangkat ayon sa provider para sa bawat provider (naka-pin muna ang mga combo), at matatag sa bawat pinagmulan ng catalog. → [Sanggunian ng API](docs/reference/API_REFERENCE.md)
- **🗜️ Pagpapatibay ng compression** — default na naka-on 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** — nagpapakita ng **$0** sa cost analytics ang mga provider ng subscription / coding plan; patuloy namang nagtatantiya ang budget, quota at routing. → [Sanggunian ng API](docs/reference/API_REFERENCE.md)
- **⚖️ Quota-Share routing** — patas na hatiin ang quota ng isang nakabahaging account sa mga pinagsama-samang key, at work-conserving 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 tagapili ng provider+model at mga paborito sa bawat context. → [Mga Integrasyon ng CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Remote mode** — patakbuhin ang isang remote na OmniRoute gamit ang mga scoped token (`connect` / `contexts` / `tokens`) + isang `antigravity` OAuth helper para sa mga installation 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 per-SNI CA + trust-store installer. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Cost telemetry sa lahat ng dako** — mga header ng gastos/paggamit na `X-OmniRoute-*` sa bawat endpoint, header ng natipid 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 (nagre-redact ng mga na-leak na API key/secret sa parehong direksiyon), libreng DuckDuckGo web search bilang huling opsyon, at opsyonal 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 media surface. → [Sanggunian ng API](docs/reference/API_REFERENCE.md)
- **🎨 Pagbuo ng image / video / audio** — isang 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 na `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 mga provider at agent** — mga cloud agent (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) na may browser + OAuth login, first-class card para sa Ollama, Claude Opus 5 at Sonnet 5, opisyal na pakikipagtulungan sa Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… at isang na-refresh na **catalog ng 352 provider**. → [Mga Provider](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Transparency sa routing** — may `X-OmniRoute-Decision` header ang bawat tugon na tumutukoy sa strategy/provider/latency na nagsilbi rito, isang bagong `cache-optimized` na combo strategy + Auto-Combo `cacheAffinity` factor ang nagbabalik sa mga nauulit na kahilingan sa koneksiyong may hawak ng naka-cache na prefix, at inilalantad ng read-only na `/v1/auto-combo/{channel}/candidates` endpoint 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 deployer ng relay 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 sa package** — plugin framework + marketplace, mga framework ng Omni/Agent/GitHub skills, integrasyon ng Obsidian vault (22 MCP tool), mga 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` na parallel multi-model fan-out, isang Telegram bot bridge, isang in-app version manager, at mga ranking ng libreng provider mula sa LMArena-ELO. → [Mga Dokumento](docs/README.md)
## 🤖 Mga Katugmang CLI at Coding Agent
> Isang config — `http://localhost:20128/v1` — at **bawat** AI IDE o CLI ay tumatakbo gamit ang mga libre at murang modelo.
+ gumagana rin sa · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · anumang tool na compatible sa OpenAI
📖 Pag-setup 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) · 🧩 OpenCode plugin → [`@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 config file,
ini-inject ang mga credential sa bawat proseso, at gumagamit 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 # maaari rin: 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 pinananatili ng `--api-key-env NAME` ang mga lihim sa labas
ng iyong shell history. → [Mga Integrasyon ng CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 372 Provider ng AI — 154 ang Minarkahang Libre sa Catalog
> **372 nakarehistrong provider** sa mga canonical na koleksyon ng chat, media, paghahanap, lokal, cloud-agent, at system, kabilang ang **154 na may metadata para sa pagtuklas na `hasFree: true`**. Saklaw ng registry ng modelo ng chat ang **237 provider / 3,009 natatanging pares ng provider-model / 1,443 raw na model ID**; ang hiwalay na catalog ng libreng badyet ay may **491 row kada modelo**, **35 umuulit na pool**, at **54 umuulit/keyless na provider na libre magpakailanman**. Sadyang magkakaiba ang mga denominator na ito; ang mga depinisyon at kalkulasyong inalisan ng duplikasyon batay sa pool ay nasa [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 catalog 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 Isang beses na $5 credit; kailangan ng card
OpenRouter :free na mga modelo +$10 → mas mataas na RPM
📖 Kumpletong 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 matematika ng pagtitipid
Pinapatakbo ng default na stacked combo ang `RTK → Caveman`. Kapag parehong kumikilos 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?** Dumaraan ang bawat kahilingan 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 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 iba't ibang turn (content-addressed, cross-turn)
2
CCR
Ina-archive ang malalaking block sa likod ng mga retrieve marker, na kinukuha kapag kailangan
3
Lite
Pagbabawas ng whitespace at image URL (magaan sa latency na baseline)
4
RTK
Matalinong pag-filter, pag-dedup at pag-truncate ng mga resulta ng tool (command-aware)
5
Responses Tool Output
Lossless-first na JSON at may hangganang 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 naka-vendor na GCF codec
7
Relevance
Extractive na pagmamarka ng mga pangungusap batay sa pinakahuling query ng user
8
Caveman
Rule-based na compression ng prosa (~65–75% sa output)
9
Aggressive
Pagbubuod at progresibong pagpapatanda 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-agresibo; opt-in)
Ang mga code block, URL at structured data ay **palaging napapanatili** nang byte-perfect. Pinagsasama-sama ng mga **one-click preset** ang mga engine:
Mode
Matitipid
Pinakamainam para sa
🪶 Lite
~15%
Ligtas na default na palaging naka-on
🪨 Standard (Caveman)
~30%
Pang-araw-araw na coding
⚡ Aggressive
~50%
Mahahabang session na maraming paggamit ng tool
🔥 Ultra
~75%
Pinakamalaking pagtitipid
🧰 RTK
60–90%
Output ng shell/test/build/git
🔗 Stacked (RTK → Caveman)
78–95%
Pinaghalong mga prompt at tool log
**Tunay na halimbawa — Standard mode:**
> **Bago (69 token):** _"Ang malamang na dahilan kung bakit muling nire-render ang iyong React component ay gumagawa ka ng bagong object reference sa bawat render cycle. Kapag nagpasa ka ng inline object bilang prop, nakikita ito ng shallow comparison ng React bilang ibang object sa bawat pagkakataon, kaya nagti-trigger ito ng muling pag-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 = muling pag-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 nire-render ang component dahil gumagawa ng bagong object reference sa bawat render cycle. Irerekomenda kong gamitin ang useMemo."_
>
> **Pagkatapos (12 token):** _"Muling pag-render: bagong ref bawat cycle (muling nilikhang 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 deterministic at cache-safe na mga tagubilin sa paghubog ng tugon; maaaring pagsamahin, bawat isa ay may `lite` / `full` / `ultra` na intensity. Isang linyang registry entry lang ang pagdaragdag ng istilo:
- **Maikling prosa** — alisin ang palaman / mga pantukoy / pag-aalinlangan; 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 na sanhi, pinakamaliit na gumaganang diff.
- **May ADHD ako (aksyon muna)** — unahin ang susunod na aksyon, lagyan ng numero ang mga hakbang, isang kongkretong susunod na hakbang, walang pambungad.
- **Maikling CJK (文言)** — napakaikling istilong klasikal na Chinese (nakalaan sa locale na `zh`).
- **🎯 Adaptive na budget ng konteksto** _(ang dial)_ — sa halip na iisang on/off na threshold ng token, i-escalate lamang ang pinakamura at pinakakaunting nawawalang impormasyong mga engine hanggang sa kinakailangang antas upang **magkasya sa context window ng modelo**. Patakaran: `reserve-output` (default, batay sa modelo) · `percentage` · `absolute`. Mode: `floor` (ginagarantiya ang pagkakasya) · `replace-autotrigger` (nangingibabaw ang tahasan mong pinili) · `off` (legacy na threshold).
- **🎛️ Kung saan pinagpapasyahan ang compression** _(pagkakasunud-sunod ng priyoridad, mataas → mababa)_ — per-request na `x-omniroute-compression` header › routing-combo override › 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 pinangalanang profile, magtakda ng minsanang opsyon sa bawat request, o magtalaga ng pipeline sa bawat routing combo — alinman ang angkop sa workload. Sinusukat ng opt-in at offline na **eval harness** (`npm run eval:compression`) ang fidelity laban sa matitipid sa isang 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 nakasasama ang mga iyon](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Gumagamit ng npm 11 o mas bago?** Maaaring harangin ng npm ang mga package lifecycle script maliban kung pinahihintulutan ang mga ito. Kinakailangan ang `postinstall` (`node scripts/build/postinstall.mjs`) ng OmniRoute upang maihanda ang mga native runtime file nito. Kapag nag-i-install nang globally, payagan ang mga package na pinangalanan sa babala ng npm. Para sa package set na iniulat ng OmniRoute 3.8.51:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Upang magamit muli ang allowlist na ito para sa mga susunod na global install, i-configure ito nang isang beses, pagkatapos ay mag-install gaya ng karaniwan:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Maaaring magbago ang listahan ng dependency sa bawat release; kung ibang listahan ang iniulat ng npm, gamitin ang mga pangalan ng package mula sa babalang iyon. Ang pagpapahintulot sa isang package ay nagbibigay-daan sa pagpapatakbo ng mga install script nito.
> **Gumagamit ng Gemini Web o ibang provider na gumagamit ng web cookie?** Kasama sa npm package ang
> Playwright ngunit hindi ang Chromium binary nito. Tingnan ang tala tungkol sa
> [pag-setup ng Playwright Chromium](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> bago gawin ang unang request sa web provider.
Dashboard sa `http://localhost:20128` · API sa `http://localhost:20128/v1`.
**2) Ikonekta ang kwalipikadong provider gamit ang sarili mong account**
Dashboard → **Mga Provider** → pumili ng provider na ang kasalukuyang mga tuntunin at quota ay angkop sa iyong use case → idagdag ang API key nito o kumpletuhin ang account flow nito. Maaaring mangailangan ang mga libreng tier ng pagpaparehistro, pag-apruba, o paraan ng pagbabayad. Suriin ang [Gabay sa Mga Libreng Tier](docs/getting-started/FREE-TIERS-GUIDE.md); hindi garantisado ang availability na walang key, at ang mga provider na may markang `tos: avoid` ay hindi isinasama sa `auto` bilang default.
**3) Ituro ang iyong coding tool**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose 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 ...`. Nananatiling mas gustong mode ang header authentication.
## 📦 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
Circuit breaker, exponential backoff, anti-thundering-herd, kusang paghilom ng auto-combo
Pagla-log
pino — mga structured JSON log na may konteksto ng request
Pagsubok
Node.js test runner + Vitest — 39,000+ static na deklarasyon ng pagsubok sa 5,100+ sinusubaybayang test file (unit, integration, E2E, seguridad, ecosystem)
Diskarte 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 natatanging ambag na direktang nakaaapekto sa kalidad, katatagan, at abot ng proyekto. **Maraming salamat.**
### Mga external contributor ayon sa mga na-merge na pull request
Nakatakda batay sa live na dulo ng release/v3.8.50 na dafb4ae808, kasama ang mga merge hanggang 2026-08-24 05:26:03 UTC. Ang may pagination 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 natatanging contributor. Ang “Mga binagong linya” ay ang mga addition + deletion sa GitHub at kasama rito ang mga nabuong file, lockfile, catalog, pagsasalin, at dokumentasyon; sukat ito ng dami ng pagbabago, hindi ng isinulat na LOC. Pinanatili ang mga tabla sa cutoff.
### Mga commit na iniuugnay 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 ayon sa ulat 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 na may 639 na tao sa ibaba.
> 🙏 Ang mga feature, pag-aayos ng bug, at pagpapahusay sa imprastraktura ng mga contributor na ito ay isang **pangunahing bahagi** ng dahilan kung bakit maaasahan at mayaman sa feature ang OmniRoute. Mahalaga ang bawat pull request, bawat test case, at bawat file ng pagsasalin ng 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.52 · Node ≥22.22.2 · Lisensyang MIT · omniroute.online