OmniRoute/docs/i18n/phi/README.md

119 KiB
Raw Blame History

🚀 OmniRoute — The Free AI Gateway (Filipino)

🌐 Languages: 🇺🇸 English · 🇪🇸 es · 🇫🇷 fr · 🇩🇪 de · 🇮🇹 it · 🇷🇺 ru · 🇨🇳 zh-CN · 🇯🇵 ja · 🇰🇷 ko · 🇸🇦 ar · 🇮🇳 hi · 🇮🇳 in · 🇹🇭 th · 🇻🇳 vi · 🇮🇩 id · 🇲🇾 ms · 🇳🇱 nl · 🇵🇱 pl · 🇸🇪 sv · 🇳🇴 no · 🇩🇰 da · 🇫🇮 fi · 🇵🇹 pt · 🇷🇴 ro · 🇭🇺 hu · 🇧🇬 bg · 🇸🇰 sk · 🇺🇦 uk-UA · 🇮🇱 he · 🇵🇭 phi · 🇧🇷 pt-BR · 🇨🇿 cs · 🇹🇷 tr


Never stop coding. Smart routing to FREE & low-cost AI models with automatic fallback.

Ang iyong universal API proxy — isang endpoint, 60+ provider, zero downtime. Ngayon ay mayMCP Server (25 tool),A2A Protocol,Memory/Skills SystematElectron Desktop App.

Mga Pagkumpleto sa Chat • Mga Pag-embed • Pagbuo ng Imahe • Video • Musika • Audio • Pag-rerank •Paghahanap sa Web• MCP Server • A2A Protocol • 100% TypeScript---

🌐Available sa:🇺🇸 English | 🇧🇷 Português (Brasil) | 🇪🇸 Español | 🇫🇷 Français | 🇮🇹 Italiano | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 Deutsch | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 العربية | 🇯🇵 日本語 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 Dansk | 🇫🇮 Suomi | 🇮🇱 עברית | 🇭🇺 Magyar | 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어 | 🇲🇾 Bahasa Melayu | 🇳🇱 Nederlands | 🇳🇴 Norsk | 🇵🇹 Português (Portugal) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 Slovenčina | 🇸🇪 Svenska | 🇵🇭 Filipino | 🇨🇿 Čeština---

🖼️ Main Dashboard

OmniRoute Dashboard

📸 Dashboard Preview

I-click upang makita ang mga screenshot ng dashboard
Pahina Screenshot
Mga Provider Providers
Combos Combos
Analytics Analytics
Kalusugan Health
Tagasalin Translator
Mga Setting Mga Setting
Mga CLI Tools CLI Tools
Mga Log ng Paggamit Paggamit
Mga Endpoint Mga Endpoint

🤖 Free AI Provider for your favorite coding agents

Ikonekta ang anumang AI-powered IDE o CLI tool sa pamamagitan ng OmniRoute — libreng API gateway para sa walang limitasyong coding.

OpenClaw
OpenClaw

205K NanoBot
NanoBot

20.9K PicoClaw
PicoClaw

14.6K ZeroClaw
ZeroClaw

9.9K IronClaw
IronClaw

2.1K OpenCode
OpenCode

106K Codex CLI
Codex CLI

60.8K Claude Code
Claude Code

67.3K Gemini CLI
Gemini CLI

94.7K Kilo Code
Kilo Code

15.5K

📡 Kumokonekta ang lahat ng ahente sa pamamagitan ng http://localhost:20128/v1 o http://cloud.omniroute.online/v1 — isang config, walang limitasyong mga modelo at quota---

🤔 Why OmniRoute?

Itigil ang pag-aaksaya ng pera at pag-abot sa mga limitasyon:

  • Ang quota ng subscription ay mag-e-expire nang hindi nagamit bawat buwan
  • Pinipigilan ka ng mga limitasyon sa rate sa mid-coding
  • Mga Mamahaling API ($20-50/buwan bawat provider)
  • Manu-manong paglipat sa pagitan ng mga provider

Sumalutas ito ng OmniRoute:

  • I-maximize ang mga subscription- Subaybayan ang quota, gamitin ang bawat bit bago i-reset
  • Auto fallback- Subscription → API Key → Mura → Libre, zero downtime
  • Multi-account- Round-robin sa pagitan ng mga account sa bawat provider
  • Universal- Gumagana sa Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, anumang CLI tool---

📧 Support

💬Sumali sa aming komunidad!WhatsApp Group — Humingi ng tulong, magbahagi ng mga tip, at manatiling updated.

-Website: omniroute.online -GitHub: github.com/diegosouzapw/OmniRoute -Mga Isyu: github.com/diegosouzapw/OmniRoute/issues -WhatsApp: Grupo ng Komunidad -Nag-aambag: Tingnan ang CONTRIBUTING.md, magbukas ng PR, o pumili ng magandang unang isyu -Orihinal na Proyekto: 9router by decolua### 🐛 Reporting a Bug?

Kapag nagbubukas ng isyu, mangyaring patakbuhin ang system-info command at ilakip ang nabuong file:```bash npm run system-info


Bumubuo ito ng `system-info.txt` gamit ang iyong bersyon ng Node.js, bersyon ng OmniRoute, mga detalye ng OS, mga naka-install na CLI tool (qoder, gemini, claude, codex, antigravity, droid, atbp.), status ng Docker/PM2, at mga system package — lahat ng kailangan namin para mabilis na mai-reproduce ang iyong isyu. Direktang ilakip ang file sa iyong isyu sa GitHub.---

## 🔄 How It Works

┌─────────────┐ │ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 ↓ ┌─────────────────────────────────────────┐ │ OmniRoute (Smart Router) │ │ • Format translation (OpenAI ↔ Claude) │ │ • Quota tracking + Embeddings + Images │ │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited)

Result: Never stop coding, minimal cost


---

## 🎯 What OmniRoute Solves — 30 Real Pain Points & Use Cases

>**Ang bawat developer na gumagamit ng mga tool ng AI ay nahaharap sa mga problemang ito araw-araw.**Binuo ang OmniRoute para lutasin ang lahat ng ito — mula sa mga pag-overrun sa gastos hanggang sa mga panrehiyong bloke, mula sa mga sirang daloy ng OAuth hanggang sa mga pagpapatakbo ng protocol at pagmamasid sa enterprise.

<mga detalye>
<summary><b>💸 1. "Nagbabayad ako para sa isang mamahaling subscription ngunit naaantala pa rin ng mga limitasyon"</b></summary>

Nagbabayad ang mga developer ng $20200/buwan para sa Claude Pro, Codex Pro, o GitHub Copilot. Kahit na nagbabayad, may kisame ang quota — 5h ng paggamit, lingguhang limitasyon, o bawat minutong limitasyon sa rate. Sesyon sa kalagitnaan ng coding, hihinto sa pagtugon ang provider at nawawalan ng daloy at pagiging produktibo ang developer.

**Paano ito niresolba ng OmniRoute:**

-**Smart 4-Tier Fallback**— Kung maubusan ang quota ng subscription, awtomatikong magre-redirect sa API Key → Murang → Libre nang walang manu-manong interbensyon
-**Pagsubaybay sa Mga Limitasyon ng Provider**— Nagre-refresh ang mga naka-cache na snapshot ng quota sa isang iskedyul sa panig ng server (default `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES=70`) na may manual na pag-refresh na available sa UI
-**Multi-Account Support**— Maramihang account sa bawat provider na may auto round-robin — kapag naubos ang isa, lilipat sa susunod
-**Custom Combos**— Nako-customize na fallback chain na may 9 na diskarte sa pagbabalanse (priyoridad, weighted, fill-first, round-robin, P2C, random, hindi gaanong ginagamit, cost-optimized, strict-random)
-**Codex Business Quotas**— Direktang pagsubaybay sa quota ng workspace ng Negosyo/Team sa dashboard</details>

<mga detalye>
<summary><b>🔌 2. "Kailangan kong gumamit ng maramihang provider ngunit may iba't ibang API ang bawat isa"</b></summary>

Gumagamit ang OpenAI ng isang format, gumagamit si Claude (Anthropic) ng isa pa, isa pa ang Gemini. Kung gusto ng isang dev na subukan ang mga modelo mula sa iba't ibang provider o fallback sa pagitan nila, kailangan nilang i-configure muli ang mga SDK, baguhin ang mga endpoint, harapin ang mga hindi tugmang format. Ang mga custom na provider (FriendLI, NIM) ay may hindi karaniwang mga endpoint ng modelo.

**Paano ito niresolba ng OmniRoute:**

-**Pinag-isang Endpoint**— Isang `http://localhost:20128/v1` ang nagsisilbing proxy para sa lahat ng 60+ provider
-**Format Translation**— Awtomatiko at transparent: OpenAI ↔ Claude ↔ Gemini ↔ Responses API
-**Response Sanitization**— Tinatanggal ang mga hindi karaniwang field (`x_groq`, `usage_breakdown`, `service_tier`) na sumisira sa OpenAI SDK v1.83+
-**Role Normalization**— Kino-convert ang `developer` → `system` para sa mga provider na hindi OpenAI; `system` → `user` para sa GLM/ERNIE
-**Think Tag Extraction**— Kinukuha ang `<think>` block mula sa mga modelo tulad ng DeepSeek R1 tungo sa standardized na `reasoning_content`
-**Structured Output para sa Gemini**— `json_schema` → `responseMimeType`/`responseSchema` awtomatikong conversion
-**Nagde-default ang `stream` sa `false`**— Naka-align sa spec ng OpenAI, iniiwasan ang hindi inaasahang SSE sa mga Python/Rust/Go SDK</details>

<mga detalye>
<summary><b>🌐 3. "Bina-block ng aking AI provider ang aking rehiyon/bansa"</b></summary>

Hinaharang ng mga provider tulad ng OpenAI/Codex ang pag-access mula sa ilang partikular na heyograpikong rehiyon. Nakakakuha ang mga user ng mga error tulad ng `unsupported_country_region_territory` sa panahon ng OAuth at API na mga koneksyon. Ito ay lalo na nakakabigo para sa mga developer mula sa pagbuo ng mga bansa.

**Paano ito niresolba ng OmniRoute:**

-**3-Level Proxy Config**— Nako-configure na proxy sa 3 antas: global (lahat ng trapiko), bawat provider (isang provider lang), at bawat koneksyon/key
-**Color-Coded Proxy Badges**— Visual indicator: 🟢 global proxy, 🟡 provider proxy, 🔵 connection proxy, palaging ipinapakita ang IP
-**OAuth Token Exchange Through Proxy**— Ang daloy ng OAuth ay dumadaan din sa proxy, na nilulutas ang `unsupported_country_region_territory`
-**Mga Pagsusuri sa Koneksyon sa pamamagitan ng Proxy**— Ginagamit ng mga pagsubok sa koneksyon ang naka-configure na proxy (wala nang direktang bypass)
-**SOCKS5 Support**— Buong SOCKS5 proxy support para sa papalabas na pagruruta
-**TLS Fingerprint Spoofing**— Tulad ng browser na TLS fingerprint sa pamamagitan ng `wreq-js` para i-bypass ang bot detection
-**🔏 CLI Fingerprint Matching**— Muling inaayos ang mga header at body field upang tumugma sa mga native na CLI binary signature, na lubhang binabawasan ang panganib sa pag-flag ng account. Ang proxy IP ay napanatili — nakakakuha ka ng parehong stealth**at**IP masking nang sabay</details>

<mga detalye>
<summary><b>🆓 4. "Gusto kong gumamit ng AI para sa coding ngunit wala akong pera"</b></summary>

Hindi lahat ay maaaring magbayad ng $20200/buwan para sa mga subscription sa AI. Ang mga mag-aaral, mga dev mula sa mga umuusbong na bansa, mga hobbyist, at mga freelancer ay nangangailangan ng access sa mga de-kalidad na modelo sa zero cost.

**Paano ito niresolba ng OmniRoute:**

-**Libreng Tier Provider Built-in**— Native na suporta para sa 100% libreng provider: Qoder (5 unlimited na mga modelo sa pamamagitan ng OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited models: qwender3-wenlash3-coplus qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID nang libre), Gemini CLI (180K token/buwan libre)
-**Ollama Cloud**— Cloud-hosted Ollama models sa `api.ollama.com` na may libreng "Light usage" tier; gumamit ng `ollamacloud/<model>` prefix
-**Free-Only Combos**— Chain `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/buwan na walang downtime
-**NVIDIA NIM Free Access**— ~40 RPM dev-forever na libreng access sa 70+ na modelo sa build.nvidia.com (paglilipat mula sa mga credit patungo sa mga purong limitasyon sa rate)
-**Cost Optimized Strategy**— Istratehiya sa pagruruta na awtomatikong pinipili ang pinakamurang available na provider</details>

<mga detalye>
<summary><b>🔒 5. "Kailangan kong protektahan ang aking AI gateway mula sa hindi awtorisadong pag-access"</b></summary>

Kapag inilantad ang isang gateway ng AI sa network (LAN, VPS, Docker), maaaring kumonsumo ng mga token/quota ng developer ang sinumang may address. Kung walang proteksyon, ang mga API ay mahina sa maling paggamit, agarang pag-iniksyon, at pang-aabuso.

**Paano ito niresolba ng OmniRoute:**

-**API Key Management**— Pagbuo, pag-ikot, at saklaw ng bawat provider na may nakalaang pahina ng `/dashboard/api-manager`
-**Mga Pahintulot sa Antas ng Modelo**— Limitahan ang mga API key sa mga partikular na modelo (`openai/*`, mga pattern ng wildcard), na may toggle na Allow All/Restrict
-**API Endpoint Protection**— Mangangailangan ng key para sa `/v1/models` at i-block ang mga partikular na provider mula sa listahan
-**Auth Guard + CSRF Protection**— Lahat ng mga ruta ng dashboard ay protektado ng `withAuth` middleware + CSRF token
-**Rate Limiter**— Per-IP rate na naglilimita sa mga na-configure na window
-**IP Filtering**— Allowlist/blocklist para sa access control
-**Prompt Injection Guard**— Sanitization laban sa malisyosong prompt pattern
-**AES-256-GCM Encryption**— Ang mga kredensyal ay naka-encrypt sa pahinga</details>

<mga detalye>
<summary><b>🛑 6. "Bumaba ang provider ko at nawala ang coding flow ko"</b></summary>

Ang mga tagapagbigay ng AI ay maaaring maging hindi matatag, magbalik ng 5xx na mga error, o maabot ang mga pansamantalang limitasyon sa rate. Kung ang isang dev ay nakadepende sa isang provider, maaantala sila. Kung walang mga circuit breaker, ang mga paulit-ulit na pagsubok ay maaaring mag-crash sa application.

**Paano ito niresolba ng OmniRoute:**

-**Circuit Breaker per-model**— Auto-open/close na may mga na-configure na threshold at cooldown (Closed/Open/Half-Open), scoped per-model para maiwasan ang mga cascading block
-**Exponential Backoff**— Progressive retry delays
-**Anti-Thundering Herd**— Mutex + semaphore na proteksyon laban sa kasabay na muling pagsubok na mga bagyo
-**Combo Fallback Chains**— Kung nabigo ang pangunahing provider, awtomatikong mahuhulog sa chain nang walang interbensyon
-**Combo Circuit Breaker**— Awtomatikong idi-disable ang mga nabigong provider sa loob ng combo chain
-**Health Dashboard**— Uptime monitoring, circuit breaker states, lockouts, cache stats, p50/p95/p99 latency</details>

<mga detalye>
<summary><b>🔧 7. "Nakakapagod at paulit-ulit ang pag-configure sa bawat AI tool"</b></summary>

Gumagamit ang mga developer ng Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Ang bawat tool ay nangangailangan ng ibang config (API endpoint, key, model). Ang muling pag-configure kapag lumipat ng mga provider o modelo ay isang pag-aaksaya ng oras.

**Paano ito niresolba ng OmniRoute:**

-**CLI Tools Dashboard**— Nakatuon na page na may isang-click na setup para sa Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
-**GitHub Copilot Config Generator**— Bumubuo ng `chatLanguageModels.json` para sa VS Code na may maramihang pagpili ng modelo
-**Onboarding Wizard**— May gabay na 4-step na pag-setup para sa mga unang beses na user
-**Isang endpoint, lahat ng modelo**— I-configure ang `http://localhost:20128/v1` nang isang beses, i-access ang 60+ provider</details>

<mga detalye>
<summary><b>🔑 8. "Impiyerno ang pamamahala sa mga token ng OAuth mula sa maraming provider"</b></summary>

Claude Code, Codex, Gemini CLI, Copilot — lahat ay gumagamit ng OAuth 2.0 na may mga mag-e-expire na token. Kailangang muling mag-authenticate ang mga developer, harapin ang `client_secret is missing`, `redirect_uri_mismatch`, at mga pagkabigo sa mga malalayong server. Ang OAuth sa LAN/VPS ay partikular na may problema.

**Paano ito niresolba ng OmniRoute:**

-**Auto Token Refresh**— Ang mga token ng OAuth ay nagre-refresh sa background bago mag-expire
-**OAuth 2.0 (PKCE) Built-in**— Awtomatikong daloy para sa Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder
-**Multi-Account OAuth**— Maramihang account bawat provider sa pamamagitan ng pagkuha ng token ng JWT/ID
-**OAuth LAN/Remote Fix**— Pribadong IP detection para sa `redirect_uri` + manual URL mode para sa mga malalayong server
-**OAuth Behind Nginx**— Gumagamit ng `window.location.origin` para sa reverse proxy compatibility
-**Remote OAuth Guide**— Step-by-step na gabay para sa mga kredensyal ng Google Cloud sa VPS/Docker</details>

<mga detalye>
<summary><b>📊 9. "Hindi ko alam kung magkano ang ginagastos ko o kung saan"</b></summary>

Gumagamit ang mga developer ng maraming bayad na provider ngunit walang pinag-isang pagtingin sa paggastos. Ang bawat provider ay may sariling dashboard ng pagsingil, ngunit walang pinagsama-samang view. Ang mga hindi inaasahang gastos ay maaaring magtambak.

**Paano ito niresolba ng OmniRoute:**

-**Cost Analytics Dashboard**— Per-token cost tracking at pamamahala ng badyet bawat provider
-**Mga Limitasyon sa Badyet bawat Tier**— Paggastos ng kisame sa bawat tier na nagti-trigger ng awtomatikong fallback
-**Per-Model Pricing Configuration**— Nako-configure na mga presyo bawat modelo
-**Mga Istatistika ng Paggamit Bawat API Key**— Bilang ng kahilingan at timestamp na huling ginamit bawat key
-**Analytics Dashboard**— Mga stat card, chart ng paggamit ng modelo, talahanayan ng provider na may mga rate ng tagumpay at latency</details>

<mga detalye>
<summary><b>🐛 10. "Hindi ko ma-diagnose ang mga error at problema sa AI calls"</b></summary>

Kapag nabigo ang isang tawag, hindi alam ng dev kung ito ay isang limitasyon sa rate, nag-expire na token, maling format, o error sa provider. Mga fragment na log sa iba't ibang terminal. Kung walang pagmamasid, ang pag-debug ay trial-and-error.

**Paano ito niresolba ng OmniRoute:**

-**Unified Logs Dashboard**— 4 na tab: Request Logs, Proxy Logs, Audit Logs, Console
-**Console Log Viewer**— Real-time na terminal-style viewer na may color-coded level, auto-scroll, paghahanap, filter
-**SQLite Proxy Logs**— Mga paulit-ulit na log na nakaligtas sa pag-restart ng server
-**Translator Playground**— 4 na mode ng pag-debug: Playground (pagsasalin ng format), Chat Tester (round-trip), Test Bench (batch), Live Monitor (real-time)
-**Request Telemetry**— p50/p95/p99 latency + X-Request-Id tracing
-**File-Based Logging na may Rotation**— Ang mga log ng app ay umiikot ayon sa laki, araw ng pagpapanatili, at bilang ng archive; ang mga call log artifact ay umiikot ayon sa mga araw ng pagpapanatili at bilang ng file
-**System Info Report**— Ang `npm run system-info` ay bumubuo ng `system-info.txt` kasama ang iyong buong environment (Node version, OmniRoute version, OS, CLI tools, Docker/PM2 status). Ilakip ito kapag nag-uulat ng mga isyu para sa instant triage.</details>

<mga detalye>
<summary><b>🏗️ 11. "Ang pag-deploy at pagpapanatili ng gateway ay kumplikado"</b></summary>

Ang pag-install, pag-configure, at pagpapanatili ng AI proxy sa iba't ibang kapaligiran (lokal, VPS, Docker, cloud) ay labor-intensive. Ang mga problema tulad ng mga hardcoded na path, `EACCES` sa mga direktoryo, port conflict, at cross-platform build ay nagdaragdag ng friction.

**Paano ito niresolba ng OmniRoute:**

-**npm global install**— `npm install -g omniroute && omniroute` — tapos na
-**Docker Multi-Platform**— AMD64 + ARM64 native (Apple Silicon, AWS Graviton, Raspberry Pi)
-**Docker Compose Profiles**— `base` (walang CLI tool) at `cli` (na may Claude Code, Codex, OpenClaw)
-**Electron Desktop App**— Native app para sa Windows/macOS/Linux na may system tray, auto-start, offline mode
-**Split-Port Mode**— API at Dashboard sa magkahiwalay na port para sa mga advanced na sitwasyon (reverse proxy, container networking)
-**Cloud Sync**— I-configure ang pag-synchronize sa mga device sa pamamagitan ng Cloudflare Workers
-**DB Backup**— Awtomatikong pag-backup, pagpapanumbalik, pag-export at pag-import ng lahat ng mga setting, na may `DISABLE_SQLITE_AUTO_BACKUP` para sa mga external na pinamamahalaang backup</details>

<mga detalye>
<summary><b>🌍 12. "Ang interface ay English-only at ang aking team ay hindi nagsasalita ng English"</b></summary>

Ang mga koponan sa mga bansang hindi nagsasalita ng Ingles, lalo na sa Latin America, Asia, at Europe, ay nakikipagpunyagi sa mga interface na Ingles lamang. Binabawasan ng mga hadlang sa wika ang pag-aampon at pinapataas ang mga error sa pagsasaayos.

**Paano ito niresolba ng OmniRoute:**

-**Dashboard i18n — 30 Wika**— Lahat ng 500+ key na isinalin kabilang ang Arabic, Bulgarian, Danish, German, Spanish, Finnish, French, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Malay, Dutch, Norwegian, Polish, Portuguese (PT/BR), Romanian, Russian, Slovak, Swedish, Thai, Ukrainian, Vietnamese,
-**RTL Support**— Kanan-pakaliwa na suporta para sa Arabic at Hebrew
-**Multi-Language READMEs**— 30 kumpletong pagsasalin ng dokumentasyon
-**Language Selector**— Globe icon sa header para sa real-time na paglipat</details>

<mga detalye>
<summary><b>🔄 13. "Kailangan ko ng higit pa sa chat — kailangan ko ng mga embed, larawan, audio"</b></summary>

Ang AI ay hindi lamang pagkumpleto ng chat. Kailangan ng mga dev na bumuo ng mga larawan, mag-transcribe ng audio, gumawa ng mga pag-embed para sa RAG, mag-rerank ng mga dokumento, at katamtamang nilalaman. Ang bawat API ay may iba't ibang endpoint at format.

**Paano ito niresolba ng OmniRoute:**

-**Embeddings**— `/v1/embeddings` na may 6 na provider at 9+ na modelo
-**Pagbuo ng Larawan**— `/v1/mga larawan/mga henerasyon` na may 10 provider at 20+ modelo (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
-**Text-to-Video**— `/v1/videos/generations` — ComfyUI (AnimateDiff, SVD) at SD WebUI
-**Text-to-Music**— `/v1/music/generations` — ComfyUI (Stable Audio Open, MusicGen)
-**Audio Transcription**— `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3
-**Text-to-Speech**— `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3,**Inworld**,**Cartesia**,**PlayHT**, + mga kasalukuyang provider
-**Moderations**— `/v1/moderations` — Mga pagsusuri sa kaligtasan ng content
-**Reranking**— `/v1/rerank` — Muling pagraranggo ng kaugnayan ng dokumento
-**Responses API**— Buong `/v1/responses` na suporta para sa Codex</details>

<mga detalye>
<summary><b>🧪 14. "Wala akong paraan para subukan at paghambingin ang kalidad sa mga modelo"</b></summary>

Gustong malaman ng mga developer kung aling modelo ang pinakamainam para sa kanilang kaso ng paggamit — code, pagsasalin, pangangatwiran — ngunit mabagal ang paghahambing nang manu-mano. Walang pinagsamang mga tool sa eval ang umiiral.

**Paano ito niresolba ng OmniRoute:**

-**LLM Evaluations**— Golden set testing na may 10 pre-loaded na case na sumasaklaw sa mga pagbati, matematika, heograpiya, pagbuo ng code, pagsunod sa JSON, pagsasalin, markdown, pagtanggi sa kaligtasan
-**4 na Istratehiya sa Pagtutugma**— `eksakto`, `naglalaman`, `regex`, `custom` (JS function)
-**Translator Playground Test Bench**— Batch testing na may maraming input at inaasahang output, cross-provider na paghahambing
-**Chat Tester**— Buong round-trip na may visual response rendering
-**Live Monitor**— Real-time na stream ng lahat ng kahilingang dumadaloy sa proxy</details>

<mga detalye>
<summary><b>📈 15. "Kailangan kong sukatin nang hindi nawawala ang performance"</b></summary>

Habang lumalaki ang dami ng kahilingan, nang walang pag-cache sa parehong mga tanong ay bumubuo ng mga dobleng gastos. Nang walang idempotency, humihiling ang duplicate sa pagpoproseso ng basura. Dapat igalang ang mga limitasyon sa rate ng bawat provider.

**Paano ito niresolba ng OmniRoute:**

-**Semantic Cache**— Ang two-tier na cache (pirma + semantiko) ay binabawasan ang gastos at latency
-**Request Idempotency**— 5s deduplication window para sa magkaparehong mga kahilingan
-**Pagtukoy sa Limitasyon ng Rate**— RPM ng bawat provider, min na gap, at max na kasabay na pagsubaybay
-**Editable Rate Limits**— Configurable defaults in Settings → Resilience with persistence
-**API Key Validation Cache**— 3-tier na cache para sa performance ng produksyon
-**Health Dashboard na may Telemetry**— p50/p95/p99 latency, cache stats, uptime</details>

<mga detalye>
<summary><b>🤖 16. "Gusto kong kontrolin ang gawi ng modelo sa buong mundo"</b></summary>

Mga developer na gusto ang lahat ng tugon sa isang partikular na wika, na may partikular na tono, o gustong limitahan ang mga token ng pangangatwiran. Ang pag-configure nito sa bawat tool/kahilingan ay hindi praktikal.

**Paano ito niresolba ng OmniRoute:**

-**System Prompt Injection**— Inilapat ang pandaigdigang prompt sa lahat ng kahilingan
-**Thinking Budget Validation**— Reasoning token allocation control bawat kahilingan (passthrough, auto, custom, adaptive)
-**9 Mga Istratehiya sa Pagruruta**— Mga pandaigdigang diskarte na tumutukoy kung paano ipinamamahagi ang mga kahilingan
-**Wildcard Router**— dynamic na ruta ng mga pattern ng `provider/*` sa anumang provider
-**Combo Enable/Disable Toggle**— I-toggle ang mga combo nang direkta mula sa dashboard
-**Toggle ng Provider**— I-enable/i-disable ang lahat ng koneksyon para sa isang provider sa isang click
-**Mga Naka-block na Provider**— Ibukod ang mga partikular na provider mula sa listahan ng `/v1/models`</details>

<mga detalye>
<summary><b>🧰 17. "Kailangan ko ng mga tool ng MCP bilang mga first-class na kakayahan ng produkto"</b></summary>

Maraming AI gateway ang naglalantad sa MCP bilang isang nakatagong detalye ng pagpapatupad. Ang mga koponan ay nangangailangan ng isang nakikita, napapamahalaang layer ng operasyon.

**Paano ito niresolba ng OmniRoute:**

- Lumilitaw ang MCP sa dashboard navigation at tab ng endpoint protocol
- Nakatuon na pahina ng pamamahala ng MCP na may proseso, mga tool, saklaw, at pag-audit
- Built-in na quick-start para sa `omniroute --mcp` at onboarding ng kliyente</details>

<mga detalye>
<summary><b>🧠 18. "Kailangan ko ng A2A orchestration na may sync + stream task paths"</b></summary>

Ang mga daloy ng trabaho ng ahente ay nangangailangan ng parehong direktang tugon at matagal na naka-stream na pagpapatupad na may kontrol sa lifecycle.

**Paano ito niresolba ng OmniRoute:**

- A2A JSON-RPC endpoint (`POST /a2a`) na may `message/send` at `message/stream`
- SSE streaming na may terminal state propagation
- Mga task lifecycle API para sa `tasks/get` at `tasks/cancel`</details>

<mga detalye>
<summary><b>🛰️ 19. "Kailangan ko ng totoong kalusugan ng proseso ng MCP, hindi nahulaan ang status"</b></summary>

Kailangang malaman ng mga operational team kung talagang buhay ang MCP, hindi lang kung maaabot ang isang API.

**Paano ito niresolba ng OmniRoute:**

- Runtime heartbeat file na may PID, timestamp, transport, bilang ng tool, at mode ng saklaw
- MCP status API na pinagsasama ang tibok ng puso + kamakailang aktibidad
- Mga UI status card para sa pagiging bago ng proseso/uptime/heartbeat</details>

<mga detalye>
<summary><b>📋 20. "Kailangan ko ng auditable MCP tool execution"</b></summary>

Kapag ang mga tool ay nag-mutate ng config o nag-trigger ng mga pagkilos ng ops, ang mga team ay nangangailangan ng forensic traceability.

**Paano ito niresolba ng OmniRoute:**

- SQLite-backed audit logging para sa mga tawag sa tool ng MCP
- Mga filter ayon sa tool, tagumpay/kabiguan, API key, at pagination
- Dashboard audit table + stats endpoints para sa automation</details>

<mga detalye>
<buod><b>🔐 21. "Kailangan ko ng mga saklaw na pahintulot ng MCP sa bawat pagsasama"</b></summary>

Ang iba't ibang mga kliyente ay dapat magkaroon ng hindi gaanong pribilehiyong pag-access sa mga kategorya ng tool.

**Paano ito niresolba ng OmniRoute:**

- 10 butil na saklaw ng MCP para sa kontroladong pag-access ng tool
- Pagpapatupad ng saklaw at kakayahang makita sa UI ng pamamahala ng MCP
- Ligtas na default na postura para sa operational tooling</details>

<mga detalye>
<summary><b>⚙️ 22. "Kailangan ko ng operational controls nang walang redeploying"</b></summary>

Ang mga koponan ay nangangailangan ng mabilis na mga pagbabago sa runtime sa panahon ng mga insidente o mga kaganapan sa gastos.

**Paano ito niresolba ng OmniRoute:**

- Lumipat ng combo activation nang direkta mula sa MCP dashboard
- Ilapat ang mga profile ng katatagan mula sa paunang natukoy na mga pack ng patakaran
- I-reset ang estado ng circuit breaker mula sa parehong panel ng mga operasyon</details>

<mga detalye>
<summary><b>🔄 23. "Kailangan ko ng live A2A task lifecycle visibility at cancellation"</b></summary>

Kung walang lifecycle visibility, ang mga insidente ng gawain ay nagiging mahirap subukan.

**Paano ito niresolba ng OmniRoute:**

- Listahan ng gawain/pag-filter ayon sa estado/kasanayan sa pagination
- Mag-drill-down sa metadata ng gawain, mga kaganapan, at mga artifact
- Endpoint ng pagkansela ng gawain at pagkilos ng UI na may kumpirmasyon</details>

<mga detalye>
<summary><b>🌊 24. "Kailangan ko ng active stream metrics para sa A2A load"</b></summary>

Ang mga stream ng workflow ay nangangailangan ng operational insight sa concurrency at live na koneksyon.

**Paano ito niresolba ng OmniRoute:**

- Mga aktibong stream counter na isinama sa A2A status
- Mga bilang ng huling timestamp ng gawain at bawat estado
- A2A dashboard card para sa real-time na pagsubaybay sa ops</details>

<mga detalye>
<summary><b>🪪 25. "Kailangan ko ng karaniwang pagtuklas ng ahente para sa mga kliyente"</b></summary>

Ang mga panlabas na kliyente at orkestra ay nangangailangan ng metadata na nababasa ng makina para sa onboarding.

**Paano ito niresolba ng OmniRoute:**

- Na-expose ang Agent Card sa `/.well-known/agent.json`
- Mga kakayahan at kasanayan na ipinapakita sa management UI
- Kasama sa A2A status API ang metadata ng pagtuklas para sa automation</details>

<mga detalye>
<summary><b>🧭 26. "Kailangan ko ng protocol discoverability sa UX ng produkto"</b></summary>

Kung hindi matuklasan ng mga user ang mga surface ng protocol, bumababa ang kalidad ng pag-aampon at suporta.

**Paano ito niresolba ng OmniRoute:**

- Pinagsama-samang**Mga Endpoint**na pahina na may mga tab para sa Proxy, MCP, A2A, at API Endpoints
- Mga toggle ng katayuan ng inline na serbisyo (Online/Offline) para sa MCP at A2A
- Mga link mula sa pangkalahatang-ideya hanggang sa nakalaang mga tab ng pamamahala</details>

<mga detalye>
<summary><b>🧪 27. "Kailangan ko ng end-to-end protocol validation sa mga totoong kliyente"</b></summary>

Ang mga kunwaring pagsubok ay hindi sapat upang patunayan ang pagiging tugma ng protocol bago ilabas.

**Paano ito niresolba ng OmniRoute:**

- E2E suite na nagbo-boot ng app at gumagamit ng totoong MCP SDK client transport
- Mga pagsubok sa A2A client para sa pagtuklas, pagpapadala, pag-stream, pagkuha, at pagkansela ng mga daloy
- Cross-check assertion laban sa MCP audit at A2A tasks API</details>

<mga detalye>
<summary><b>📡 28. "Kailangan ko ng pinag-isang observability sa lahat ng interface"</b></summary>

Ang paghahati ng observability sa pamamagitan ng protocol ay lumilikha ng mga blind spot at mas mahabang MTTR.

**Paano ito niresolba ng OmniRoute:**

- Pinag-isang mga dashboard/log/analytics sa isang produkto
- Health + audit + humiling ng telemetry sa mga layer ng OpenAI, MCP, at A2A
- Operational APIs for status and automation</details>

<mga detalye>
<summary><b>💼 29. "Kailangan ko ng isang runtime para sa proxy + tools + orchestration ng ahente"</b></summary>

Ang pagpapatakbo ng maraming magkakahiwalay na serbisyo ay nagpapataas ng gastos sa pagpapatakbo at mga mode ng pagkabigo.

**Paano ito niresolba ng OmniRoute:**

- OpenAI-compatible na proxy, MCP server, at A2A server sa isang stack
- Nakabahaging auth, resilience, data store, at observability
- Pare-parehong modelo ng patakaran sa lahat ng surface ng pakikipag-ugnayan</details>

<mga detalye>
<summary><b>🚀 30. "Kailangan kong magpadala ng mga ahenteng daloy ng trabaho nang walang glue-code sprawl"</b></summary>

Nawawalan ng bilis ang mga koponan kapag nagtatahi ng maraming ad-hoc na serbisyo at script.

**Paano ito niresolba ng OmniRoute:**

- Pinag-isang endpoint na diskarte para sa mga kliyente at ahente
- Mga built-in na UI sa pamamahala ng protocol at mga daanan sa pagpapatunay ng usok
- Mga pundasyong handa sa produksyon (seguridad, pag-log, katatagan, backup)</details>

### Example Playbooks (Integrated Use Cases)

**Playbook A: I-maximize ang bayad na subscription + murang backup**```txt
Combo: "maximize-claude"
  1. cc/claude-opus-4-6
  2. glm/glm-4.7
  3. if/kimi-k2-thinking

Monthly cost: $20 + small backup spend
Outcome: higher quality, near-zero interruption

Playbook B: Zero-cost coding stack```txt Combo: "free-forever"

  1. gc/gemini-3-flash
  2. if/kimi-k2-thinking
  3. qw/qwen3-coder-plus

Monthly cost: $0 Outcome: stable free coding workflow


**Playbook C: 24/7 always-on fallback chain**```txt
Combo: "always-on"
  1. cc/claude-opus-4-6
  2. cx/gpt-5.2-codex
  3. glm/glm-4.7
  4. minimax/MiniMax-M2.1
  5. if/kimi-k2-thinking

Outcome: deep fallback depth for deadline-critical workloads

Playbook D: Ahente ops sa MCP + A2A```txt

  1. Start MCP transport (omniroute --mcp) for tool-driven operations
  2. Run A2A tasks via message/send and message/stream
  3. Observe via /dashboard/endpoint (MCP and A2A tabs)
  4. Toggle services via inline status controls

---

## 🆓 Start Free — Zero Configuration Cost

> I-setup ang AI coding sa ilang minuto sa**$0/buwan**. Ikonekta ang mga libreng account na ito at gamitin ang built-in na**Free Stack**combo.

| Hakbang | Aksyon | Na-unlock ang Mga Provider |
| ---- | ---------------------------------------------------- | -------------------------------------------------------------------- |
| 1 | Ikonekta ang**Kiro**(AWS Builder ID OAuth) | Claude Sonnet 4.5, Haiku 4.5 —**walang limitasyon**|
| 2 | Ikonekta ang**Qoder**(Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... —**unlimited**|
| 3 | Ikonekta ang**Qwen**(Device Code) | qwen3-coder-plus, qwen3-coder-flash... —**walang limitasyon**|
| 4 | Ikonekta ang**Gemini CLI**(Google OAuth) | gemini-3-flash, gemini-2.5-pro —**180K/mo libre**|
| 5 | `/dashboard/combos` →**Libreng Stack ($0)**template | Awtomatikong round-robin lahat ng libreng provider |

**Ituro ang anumang IDE/CLI sa:**`http://localhost:20128/v1` · API Key: `any-string` · Tapos na.

>**Opsyonal na karagdagang coverage (libre din):**Groq API key (30 RPM libre), NVIDIA NIM (40 RPM libre, 70+ modelo), Cerebras (1M tok/araw), LongCat API key (50M token/araw!), Cloudflare Workers AI (10K Neurons/araw, 50+ modelo).## Mabilis na Simula

### 1) Install and run

```bash
npm install -g omniroute
omniroute

**mga user ng pnpm:**Patakbuhin ang pnpm approve-builds -g pagkatapos i-install upang paganahin ang mga native na build script na kinakailangan ng better-sqlite3 at @swc/core:

pnpm install -g omniroute
pnpm approve-builds -g # Piliin ang lahat ng package → aprubahan
omniroute

Magbubukas ang dashboard sa http://localhost:20128 at ang API base URL ay http://localhost:20128/v1.

Utos Paglalarawan
omniroute Simulan ang server (PORT=20128, API at dashboard sa parehong port)
omniroute --port 3000 Itakda ang canonical/API port sa 3000
omniroute --mcp Simulan ang MCP server (stdio transport)
omniroute --no-open Huwag awtomatikong buksan ang browser
omniroute --help Ipakita ang tulong

Opsyonal na split-port mode:```bash PORT=20128 DASHBOARD_PORT=20129 omniroute

API: http://localhost:20128/v1

Dashboard: http://localhost:20129


### Long-Running Streaming Timeouts

Para sa karamihan ng mga deployment, kailangan mo lang:

| Variable | Default | Layunin |
| ------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `REQUEST_TIMEOUT_MS` | `600000` | Nakabahaging baseline para sa upstream na pagkuha, mga nakatagong Undici timeout, mga kahilingan sa TLS fingerprint, at kahilingan sa API bridge/proxy timeout |
| `STREAM_IDLE_TIMEOUT_MS` | nagmamana ng `REQUEST_TIMEOUT_MS` | Pinakamataas na agwat sa pagitan ng mga streaming chunks bago i-abort ng OmniRoute ang SSE stream |

Pinapanatili ang backward compatibility: ang umiiral na `FETCH_TIMEOUT_MS`, `API_BRIDGE_PROXY_TIMEOUT_MS`, at iba pang per-layer timeout vars ay gumagana pa rin at na-override ang nakabahaging baseline.

Available ang mga advanced na override kung kailangan mo ng mas pinong kontrol:| Variable | Default | Layunin |
| ---------------------------------------- | ------------------------------------------ | -------------------------------------------------------------------- |
| `FETCH_TIMEOUT_MS` | nagmamana ng `REQUEST_TIMEOUT_MS` | Kabuuang pag-timeout ng upstream na kahilingan na ginagamit ng pangunahing signal ng pag-abort ng pagkuha |
| `FETCH_HEADERS_TIMEOUT_MS` | nagmamana ng `FETCH_TIMEOUT_MS` | Undici time limit para sa pagtanggap ng upstream response header |
| `FETCH_BODY_TIMEOUT_MS` | nagmamana ng `FETCH_TIMEOUT_MS` | Undici time limit sa pagitan ng upstream body chunks (`0` idi-disable ito) |
| `FETCH_CONNECT_TIMEOUT_MS` | `30000` | Undici TCP connect timeout |
| `FETCH_KEEPLIVE_TIMEOUT_MS` | `4000` | Undici idle keep-alive socket timeout |
| `TLS_CLIENT_TIMEOUT_MS` | nagmamana ng `FETCH_TIMEOUT_MS` | Timeout para sa mga kahilingan sa fingerprint ng TLS na ginawa sa pamamagitan ng `wreq-js` |
| `API_BRIDGE_PROXY_TIMEOUT_MS` | nagmamana ng `REQUEST_TIMEOUT_MS` o `30000` | Timeout para sa `/v1` proxy forwarding mula sa API port papunta sa dashboard port |
| `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `max(API_BRIDGE_PROXY_TIMEOUT_MS, 300000)` | Timeout ng papasok na kahilingan sa API bridge server |
| `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | Papasok na header timeout sa API bridge server |
| `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | Keep-alive timeout sa API bridge server |
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | Socket inactivity timeout sa API bridge server (nadi-disable ito ng `0`) |

Kung nagpapatakbo ka ng OmniRoute sa likod ng Nginx, Caddy, Cloudflare, o isa pang reverse proxy, tiyaking ang proxy
ang mga timeout ay mas mataas din kaysa sa iyong OmniRoute stream/fetch timeout.### 2) Connect providers and create your API key

1. Buksan ang Dashboard → `Mga Provider` at ikonekta ang hindi bababa sa isang provider (OAuth o API key).
2. Buksan ang Dashboard → `Endpoints` at gumawa ng API key.
3. (Opsyonal) Buksan ang Dashboard → `Combos` at itakda ang iyong fallback chain.### 3) Point your coding tool to OmniRoute

```txt
Base URL: http://localhost:20128/v1
API Key:  [copy from Endpoint page]
Model:    if/kimi-k2-thinking (or any provider/model prefix)

Gumagana sa Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode, at OpenAI-compatible SDK.### 4) Enable and validate protocols (v2.0)

MCP (para sa mga pagpapatakbong hinihimok ng tool):```bash omniroute --mcp


Pagkatapos ay ikonekta ang iyong MCP client sa `stdio` at mga tool sa pagsubok tulad ng:

- `omniroute_get_health`
- `omniroute_list_combos`

**A2A (para sa mga daloy ng trabaho ng ahente-sa-agent):**```bash
curl http://localhost:20128/.well-known/agent.json
curl -X POST http://localhost:20128/a2a \
  -H 'content-type: application/json' \
  -d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}'
npm run test:protocols:e2e

Ang suite na ito ay nagpapatunay ng totoong MCP at A2A na mga daloy ng kliyente laban sa isang tumatakbong app.### Alternative: run from source

cp .env.example .env
npm install
PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev
Void Linux (`xbps-src` template)

Para sa mga gumagamit ng Void Linux, maaari kang bumuo ng native package gamit ang xbps-src. I-save ang block na ito bilang srcpkgs/omniroute/template:```bash

Template file for 'omniroute'

pkgname=omniroute version=3.4.1 revision=1 hostmakedepends="nodejs python3 make" depends="openssl" short_desc="Universal AI gateway with smart routing for multiple LLM providers" maintainer="zenobit zenobit@disroot.org" license="MIT" homepage="https://github.com/diegosouzapw/OmniRoute" distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b system_accounts="_omniroute" omniroute_homedir="/var/lib/omniroute" export NODE_ENV=production export npm_config_engine_strict=false export npm_config_loglevel=error export npm_config_fund=false export npm_config_audit=false

do_build() { # Determine target CPU arch for node-gyp local _gyp_arch case "$XBPS_TARGET_MACHINE" in aarch64*) _gyp_arch=arm64 ;; armv7*|armv6*) _gyp_arch=arm ;; i686*) _gyp_arch=ia32 ;; *) _gyp_arch=x64 ;; esac

# 1) Install all deps  skip scripts (no network in do_build, native modules
#    compiled separately below; better-sqlite3 is serverExternalPackage so
#    Next.js does not execute it during next build)
NODE_ENV=development npm ci --ignore-scripts

# 2) Build the Next.js standalone bundle
npm run build

# 3) Copy static assets into standalone
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true

# 4) Compile better-sqlite3 native binding for the target architecture.
#    Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used
#    without npm altering them.
local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
(cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")

# 5) Place the compiled binding into the standalone bundle
local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release
mkdir -p "$_bs3_release"
cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"

# 6) Remove arch-specific sharp bundles  upstream sets images.unoptimized=true
#    so sharp is not used at runtime; x64 .so files would break aarch64 strip
rm -rf .next/standalone/node_modules/@img

# 7) Copy pino runtime deps omitted by Next.js static analysis:
#    pino-abstract-transport  required by pino's worker thread
#    split2  dep of pino-abstract-transport
#    process-warning  dep of pino itself
for _mod in pino-abstract-transport split2 process-warning; do
	cp -r "node_modules/$_mod" .next/standalone/node_modules/
done

}

do_check() { npm run test:unit }

do_install() { vmkdir usr/lib/omniroute/.next

vcopy .next/standalone/. usr/lib/omniroute/.next/standalone

# Prevent removal of empty Next.js app router dirs by the post-install hook
for _d in \
	.next/standalone/.next/server/app/dashboard \
	.next/standalone/.next/server/app/dashboard/settings \
	.next/standalone/.next/server/app/dashboard/providers; do
	touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep"
done

cat > "${WRKDIR}/omniroute" <<'EOF'

#!/bin/sh export PORT="${PORT:-20128}" export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" export LOG_TO_FILE="${LOG_TO_FILE:-false}" mkdir -p "${DATA_DIR}" exec node /usr/lib/omniroute/.next/standalone/server.js "$@" EOF vbin "${WRKDIR}/omniroute" }

post_install() { vlicense LICENSE }


</details>

---

## 🐳 Docker

Available ang OmniRoute bilang pampublikong larawan ng Docker sa [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).

**Mabilis na pagtakbo:**```bash
docker run -d \
  --name omniroute \
  --restart unless-stopped \
  --stop-timeout 40 \
  -p 20128:20128 \
  -v omniroute-data:/app/data \
  diegosouzapw/omniroute:latest

Na may environment file:```bash

Copy and edit .env first

cp .env.example .env

docker run -d
--name omniroute
--restart unless-stopped
--stop-timeout 40
--env-file .env
-p 20128:20128
-v omniroute-data:/app/data
diegosouzapw/omniroute:latest


**Gumagamit ng Docker Compose:**```bash
# Base profile (no CLI tools)
docker compose --profile base up -d

# CLI profile (Claude Code, Codex, OpenClaw built-in)
docker compose --profile cli up -d

Kasama na ngayon sa suporta sa dashboard para sa mga deployment ng Docker ang isang isang-click naCloudflare Quick Tunnelsa Dashboard → Endpoints. Ang unang paganahin ang mga pag-download ng cloudflared lamang kapag kinakailangan, magsisimula ng pansamantalang tunnel sa iyong kasalukuyang /v1 endpoint, at ipinapakita ang nabuong https://*.trycloudflare.com/v1 URL nang direkta sa ibaba ng iyong normal na pampublikong URL.

Mga Tala:

  • Ang mga URL ng Quick Tunnel ay pansamantala at nagbabago pagkatapos ng bawat pag-restart.
  • Ang Mga Mabilisang Tunnel ay hindi na-auto-restore pagkatapos ng OmniRoute o pag-restart ng container. Muling paganahin ang mga ito mula sa dashboard kung kinakailangan.
  • Kasalukuyang sinusuportahan ng pinamamahalaang pag-install ang Linux, macOS, at Windows sa x64 / arm64.
  • Default ang Managed Quick Tunnels sa HTTP/2 transport para maiwasan ang maingay na QUIC UDP buffer na babala sa mga napipigilan na kapaligiran ng container. Itakda ang CLOUDFLARED_PROTOCOL=quic o auto kung gusto mo ng ibang sasakyan.
  • Pinagsasama ng mga larawan ng Docker ang mga ugat ng CA ng system at ipinapasa ang mga ito sa pinamamahalaang cloudflared, na nag-iwas sa mga pagkabigo ng tiwala ng TLS kapag nag-bootstrap ang tunnel sa loob ng container.
  • Tumatakbo ang SQLite sa WAL mode. Ang docker stop ay dapat pahintulutang matapos upang masuri ng OmniRoute ang mga pinakabagong pagbabago pabalik sa storage.sqlite.
  • Nagtakda na ng 40s stop na palugit ang mga naka-bundle na Compose file. Kung direkta mong patakbuhin ang larawan, panatilihing --stop-timeout 40 (o katulad nito) upang hindi maputol ang pag-shutdown ng mga manual stop.
  • Itakda ang CLOUDFLARED_BIN=/absolute/path/to/cloudflared kung gusto mong gumamit ang OmniRoute ng umiiral nang binary sa halip na mag-download ng isa.

Paggamit ng Docker Compose with Caddy (HTTPS Auto-TLS):

Ang OmniRoute ay maaaring ligtas na mailantad gamit ang awtomatikong SSL provisioning ni Caddy. Tiyaking tumuturo ang DNS A record ng iyong domain sa IP ng iyong server.```yaml services: omniroute: image: diegosouzapw/omniroute:latest container_name: omniroute restart: unless-stopped volumes: - omniroute-data:/app/data environment: - PORT=20128 - NEXT_PUBLIC_BASE_URL=https://your-domain.com

caddy: image: caddy:latest container_name: caddy restart: unless-stopped ports: - "80:80" - "443:443" command: caddy reverse-proxy --from https://your-domain.com --to http://omniroute:20128

volumes: omniroute-data:


| Larawan | Tag | Sukat | Paglalarawan |
| ------------------------- | -------- | ------ | ---------------------- |
| `diegosouzapw/omniroute` | `pinakabago` | ~250MB | Pinakabagong stable na release |
| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Kasalukuyang bersyon |---

## 🖥️ Desktop App — Offline & Always-On

> 🆕**BAGO!**Available na ngayon ang OmniRoute bilang**katutubong desktop application**para sa Windows, macOS, at Linux.

Patakbuhin ang OmniRoute bilang isang standalone na desktop app — walang terminal, walang browser, walang internet na kailangan para sa mga lokal na modelo. Kasama sa Electron-based na app ang:

- 🖥️**Native Window**— Nakatuon na window ng app na may integration ng system tray
- 🔄**Auto-Start**— Ilunsad ang OmniRoute sa system login
- 🔔**Mga Katutubong Notification**— Makakuha ng mga alerto para sa pagkaubos ng quota o mga isyu sa provider
- ⚡**One-Click Install**— NSIS (Windows), DMG (macOS), AppImage (Linux)
- 🌐**Offline Mode**— Gumagana nang ganap offline sa naka-bundle na server### Mabilis na Simula

```bash
# Development mode
npm run electron:dev

# Build for your platform
npm run electron:build         # Current platform
npm run electron:build:win     # Windows (.exe)
npm run electron:build:mac     # macOS (.dmg) — x64 & arm64
npm run electron:build:linux   # Linux (.AppImage)

System Tray

Kapag pinaliit, nakatira ang OmniRoute sa iyong system tray na may mabilis na pagkilos:

  • Buksan ang dashboard
  • Baguhin ang port ng server
  • Ihinto ang aplikasyon

📖 Buong dokumentasyon: electron/README.md---

💰 Pricing at a Glance

Tier Provider Gastos I-reset ang Quota Pinakamahusay Para sa
💳 SUBSCRIPTION Claude Code (Pro) $20/buwan 5h + lingguhan Naka-subscribe na
Codex (Plus/Pro) $20-200/buwan 5h + lingguhan Mga user ng OpenAI
Gemini CLI LIBRE 180K/buwan + 1K/araw Lahat!
GitHub Copilot $10-19/buwan Buwanang Mga user ng GitHub
🔑 API KEY NVIDIA NIM LIBRE(dev forever) ~40 RPM 70+ bukas na mga modelo
Cerebras LIBRE(1M tok/araw) 60K TPM / 30 RPM Pinakamabilis sa mundo
Groq LIBRE(30 RPM) 14.4K RPD Napakabilis na Llama/Gemma
DeepSeek V3.2 $0.27/$1.10 bawat 1M Wala Pinakamahusay na presyo/kalidad na pangangatwiran
xAI Grok-4 Mabilis $0.20/$0.50 bawat 1M🆕 Wala Pinakamabilis + tool na pagtawag, ultralow
xAI Grok-4 (standard) $0.20/$1.50 bawat 1M 🆕 Wala Nangangatuwirang punong barko mula sa xAI
Mistral Libreng pagsubok + bayad Limitado ang rate European AI
OpenRouter Pay-per-use Wala 100+ modelo aggr.
💰 MURA GLM-5 (sa pamamagitan ng Z.AI) 🆕 $0.5/1M Araw-araw 10AM 128K output, pinakabagong flagship
GLM-4.7 $0.6/1M Araw-araw 10AM Backup ng badyet
MiniMax M2.5 🆕 $0.3/1M input 5 oras na rolling Pangangatwiran + mga ahenteng gawain
MiniMax M2.1 $0.2/1M 5 oras na rolling Pinaka murang opsyon
Kimi K2.5 (Moonshot API) 🆕 Pay-per-use Wala Direktang Moonshot API access
Kimi K2 $9/buwan flat 10M token/buwan Nahuhulaang gastos
🆓 LIBRE Qoder $0 Walang limitasyong 5 mga modelong walang limitasyon
Qwen $0 Walang limitasyong 4 na modelong walang limitasyon
Kiro $0 Walang limitasyong Claude Sonnet/Haiku (AWS Builder)
LongCat Flash-Lite 🆕 $0(50M tok/araw 🔥) 1 RPS Pinakamalaking libreng quota sa Earth
Mga polinasyon AI 🆕 $0(walang key na kailangan) 1 req/15s GPT-5, Claude, DeepSeek, Llama 4
Cloudflare Workers AI 🆕 $0(10K Neuron/araw) ~150 resp/araw 50+ modelo, pandaigdigang gilid
Scaleway AI 🆕 $0(1M token sa kabuuan) Limitado ang rate EU/GDPR, Qwen3 235B, Llama 70B > 🆕**Idinagdag ang mga bagong modelo (Mar 2026):**Grok-4 Fast family sa $0.20/$0.50/M (na-benchmark sa 1143ms — 30% mas mabilis kaysa Gemini 2.5 Flash), GLM-5 sa pamamagitan ng Z.AI na may 128K na output, MiniMax M2.5 na pangangatwiran, na-update ng Kim2 na direktang pagpepresyo V3.

💡 $0 Combo Stack — Ang Kumpletong Libreng Setup:```

🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever

Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day


**Walang halaga. Hindi kailanman tumitigil sa pag-coding.**I-configure ito bilang isang combo ng OmniRoute at lahat ng fallback ay awtomatikong nangyayari — walang manu-manong paglipat kailanman.---

---

## 🆓 Free Models — What You Actually Get

> Lahat ng mga modelo sa ibaba ay**100% libre na walang kinakailangang credit card**. Ang mga awtomatikong ruta ng OmniRoute sa pagitan ng mga ito kapag naubos ang isang quota — pagsamahin silang lahat para sa hindi nababasag na $0 combo.### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)

| Modelo | Prefix | Limitahan | Hangganan ng Rate |
| ------------------- | ------ | ------------- | ---------------------- |
| `claude-sonnet-4.5` | `kr/` |**Walang limitasyon**| Walang iniulat na pang-araw-araw na cap |
| `claude-haiku-4.5` | `kr/` |**Walang limitasyon**| Walang iniulat na pang-araw-araw na cap |
| `claude-opus-4.6` | `kr/` |**Walang limitasyon**| Pinakabagong Opus sa pamamagitan ng Kiro |### 🟢 QODER MODELS (Free PAT via qodercli)

| Modelo | Prefix | Limitahan | Hangganan ng Rate |
| ------------------- | ------ | ------------- | --------------- |
| `kimi-k2-thinking` | `kung/` |**Walang limitasyon**| Walang naiulat na cap |
| `qwen3-coder-plus` | `kung/` |**Walang limitasyon**| Walang naiulat na cap |
| `deepseek-r1` | `kung/` |**Walang limitasyon**| Walang naiulat na cap |
| `minimax-m2.1` | `kung/` |**Walang limitasyon**| Walang naiulat na cap |
| `kimi-k2` | `kung/` |**Walang limitasyon**| Walang naiulat na cap |

> Inirerekomendang paraan ng koneksyon:**Personal Access Token + `qodercli`**. Ang browser OAuth ay
> pang-eksperimento at hindi pinagana bilang default maliban kung ang mga variable ng kapaligiran ng `QODER_OAUTH_*` ay na-configure.### 🟡 QWEN MODELS (Device Code Auth)

| Modelo | Prefix | Limitahan | Hangganan ng Rate |
| ------------------- | ------ | ------------- | ------------------- |
| `qwen3-coder-plus` | `qw/` |**Walang limitasyon**| Walang naiulat na cap |
| `qwen3-coder-flash` | `qw/` |**Walang limitasyon**| Walang naiulat na cap |
| `qwen3-coder-next` | `qw/` |**Walang limitasyon**| Walang naiulat na cap |
| `modelo ng paningin` | `qw/` |**Walang limitasyon**| Multimodal (mga larawan) |### 🟣 GEMINI CLI (Google OAuth)

| Modelo | Prefix | Limitahan | Hangganan ng Rate |
| ------------------------- | ------ | --------------------------- | ------------- |
| `gemini-3-flash-preview` | `gc/` |**180K tok/buwan**+ 1K/araw | Buwanang pag-reset |
| `gemini-2.5-pro` | `gc/` | 180K/buwan (nakabahaging pool) | Mataas na kalidad |### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)

| Tier | Pang-araw-araw na Limitasyon | Hangganan ng Rate | Mga Tala |
| ---------- | ------------ | ----------- | ------------------------------------------------------------------- |
| Libre (Dev) | Walang token cap |**~40 RPM**| 70+ modelo; paglipat sa purong mga limitasyon sa rate sa kalagitnaan ng 2025 |

Mga sikat na libreng modelo: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-deepseek`, `deepseek-instruct`### ⚪ CEREBRAS (Free API Key — inference.cerebras.ai)

| Tier | Pang-araw-araw na Limitasyon | Hangganan ng Rate | Mga Tala |
| ---- | ----------------- | ---------------- | ------------------------------------------ |
| Libre |**1M token/araw**| 60K TPM / 30 RPM | Pinakamabilis na LLM inference sa mundo; nire-reset araw-araw |

Available nang libre: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b`### 🔴 GROQ (Free API Key — console.groq.com)

| Tier | Pang-araw-araw na Limitasyon | Hangganan ng Rate | Mga Tala |
| ---- | ------------- | ---------------- | ---------------------------------------- |
| Libre |**14.4K RPD**| 30 RPM bawat modelo | Walang credit card; 429 sa limitasyon, hindi sinisingil |

Available nang libre: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3`### 🔴 LONGCAT AI (Free API Key — longcat.chat) 🆕

| Modelo | Prefix | Araw-araw na Libreng Quota | Mga Tala |
| ----------------------------- | ------ | ----------------- | ------------------------ |
| `LongCat-Flash-Lite` | `lc/` |**50M token**💥 | Pinakamalaking libreng quota kailanman |
| `LongCat-Flash-Chat` | `lc/` | 500K token | Multi-turn chat |
| `LongCat-Flash-Thinking` | `lc/` | 500K token | Pangangatwiran / CoT |
| `LongCat-Flash-Thinking-2601` | `lc/` | 500K token | Ene 2026 na bersyon |
| `LongCat-Flash-Omni-2603` | `lc/` | 500K token | Multimodal |

> 100% libre habang nasa pampublikong beta. Mag-sign up sa [longcat.chat](https://longcat.chat) gamit ang email o telepono. Nire-reset araw-araw 00:00 UTC.### 🟢 POLLINATIONS AI (No API Key Required) 🆕

| Modelo | Prefix | Hangganan ng Rate | Provider sa Likod |
| ---------- | ------ | ---------- | ------------------- |
| `openai` | `pol/` | 1 req/15s | GPT-5 |
| `claude` | `pol/` | 1 req/15s | Anthropic Claude |
| `gemini` | `pol/` | 1 req/15s | Google Gemini |
| `malalim' | `pol/` | 1 req/15s | DeepSeek V3 |
| `llama` | `pol/` | 1 req/15s | Meta Llama 4 Scout |
| `mistral` | `pol/` | 1 req/15s | Mistral AI |

> ✨**Zero friction:**Walang pag-signup, walang API key. Idagdag ang provider ng Pollinations na may walang laman na key field at agad itong gagana.### 🟠 CLOUDFLARE WORKERS AI (Free API Key — cloudflare.com) 🆕

| Tier | Pang-araw-araw na Neuron | Katumbas na Paggamit | Mga Tala |
| ---- | ------------- | --------------------------------------- | ------------------------ |
| Libre |**10,000**| ~150 LLM resp / 500s audio / 15K na pag-embed | Global edge, 50+ na modelo |

Mga sikat na libreng modelo: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (libreng audio!), `@cf/qwen/qwen2.5-coder`15b

> Nangangailangan ng API Token + Account ID mula sa [dash.cloudflare.com](https://dash.cloudflare.com). Store Account ID sa mga setting ng provider.### 🟣 SCALEWAY AI (1M Free Tokens — scaleway.com) 🆕

| Tier | Libreng Quota | Lokasyon | Mga Tala |
| ---- | ------------- | ------------ | ----------------------------------- |
| Libre |**1M token**| 🇫🇷 Paris, EU | Walang kinakailangang credit card sa loob ng mga limitasyon |

Available nang libre: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324`

> Sumusunod sa EU/GDPR. Kunin ang API key sa [console.scaleway.com](https://console.scaleway.com).

>**💡 Ang Ultimate Free Stack (11 Provider, $0 Forever):**
>
> ```
> Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED
> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED
> LongCat Lite (lc/) → LongCat-Flash-Lite — 50M token/araw 🔥
> Mga polinasyon (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — walang susi na kailangan
> Qwen (qw/) → qwen3-coder models UNLIMITED
> Gemini (gemini/) → Gemini 2.5 Flash — libre ang 1,500 req/araw
> Cloudflare AI (cf/) → 50+ na modelo — 10K Neurons/araw
> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M libreng token (EU)
> Groq (groq/) → Llama/Gemma — 14.4K req/araw na napakabilis
> NVIDIA NIM (nvidia/) → 70+ bukas na modelo — 40 RPM magpakailanman
> Cerebras (cerebras/) → Llama/Qwen pinakamabilis sa mundo — 1M tok/araw
> ```## 🎙️ Free Transcription Combo

> I-transcribe ang anumang audio/video para sa**$0**— Nangunguna ang Deepgram na may libreng $200, AssemblyAI $50 fallback, Groq Whisper bilang walang limitasyong backup na pang-emergency.

| Provider | Libreng Credits | Pinakamahusay na Modelo | Hangganan ng Rate |
| ----------------- | ----------------------- | ------------------------------------------ | ---------------------------- |
| 🟢**Deepgram**|**$200 libre**(pag-signup) | `nova-3` — pinakamahusay na katumpakan, 30+ wika | Walang limitasyon sa RPM sa mga libreng kredito |
| 🔵**AssemblyAI**|**$50 libre**(pag-signup) | `universal-3-pro` — mga kabanata, damdamin, PII | Walang limitasyon sa RPM sa mga libreng kredito |
| 🔴**Groq**|**Libre magpakailanman**| `whisper-large-v3` — OpenAI Whisper | 30 RPM (limitado ang rate) |

**Iminungkahing combo sa `/dashboard/combos`:**```
Name: free-transcription
Strategy: Priority
Nodes:
  [1] deepgram/nova-3          → uses $200 free first
  [2] assemblyai/universal-3-pro → fallback when Deepgram credits run out
  [3] groq/whisper-large-v3    → free forever, emergency fallback

Pagkatapos ay sa /dashboard/mediaTranscriptiontab: mag-upload ng anumang audio o video file → piliin ang iyong combo endpoint → kumuha ng transkripsyon sa mga sinusuportahang format.## 💡 Key Features

Ang OmniRoute v2.0 ay binuo bilang isang operating platform, hindi lamang isang relay proxy.### 🆕 New — ClawRouter-Inspired Improvements (Mar 2026)

Tampok Ano ang Ginagawa Nito
Grok-4 Mabilis na Pamilya mga modelo ng xAI sa $0.20/$0.50/M — na-benchmark na 1143ms (30% mas mabilis kaysa sa Gemini 2.5 Flash)
🧠GLM-5 sa pamamagitan ng Z.AI 128K na konteksto ng output, $0.5/1M — pinakabagong flagship mula sa pamilyang GLM
🔮MiniMax M2.5 Pangangatwiran + mga ahenteng gawain sa $0.30/1M — makabuluhang pag-upgrade mula sa M2.1
🎯toolCalling Flag bawat Model Per-modelo na toolCalling: true/false sa registry — Nilaktawan ng AutoCombo ang mga modelong hindi may kakayahan sa tool
🌍Multilingual Intent Detection Mga keyword ng PT/ZH/ES/AR sa AutoCombo scoring — mas mahusay na pagpili ng modelo para sa nilalamang hindi Ingles
📊Mga Fallback na Dahil sa Benchmark Real p95 latency mula sa mga live na kahilingan feed combo scoring — natututo ang AutoCombo mula sa aktwal na data
🔁Humiling ng Deduplication Content-hash based na dedup window — multi-agent safe, pinipigilan ang mga duplicate na singil
🔌Pluggable RouterStrategy Extensible RouterStrategy interface — magdagdag ng custom na routing logic bilang mga plugin ### 🚀 Previous v2.0.9+ — Playground, CLI Fingerprints & ACP
Tampok Ano ang Ginagawa Nito
🎮Modelo Playground Dashboard page upang direktang subukan ang anumang modelo — provider/modelo/endpoint selector, Monaco Editor, streaming, abort, timing
🔏CLI Fingerprint Matching Pag-order ng header/body ng bawat provider upang tumugma sa mga native na lagda ng CLI — i-toggle ang bawat provider sa Mga Setting > Seguridad.Napanatili ang iyong proxy IP
🤝Suporta sa ACP (Agent Client Protocol) Pagtuklas ng ahente ng CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 pa), process spawner, /api/acp/agents endpoint
🤖Dashboard ng Mga Ahente ng ACP Debug Pahina ng mga ahente — grid ng 14 na ahente na may katayuan sa pag-install, bersyon, custom na form ng ahente para sa anumang CLI tool. AngOpenCodena mga user ay nakakakuha ng button na "I-download ang opencode.json" na awtomatikong bumubuo ng isang ready-to-use na config kasama ang lahat ng available na modelo.
🔧Custom Model apiFormat Routing Ang mga custom na modelo na may apiFormat: "mga tugon" ay tama na ngayon ang ruta sa tagasalin ng Responses API
🏢Paghihiwalay ng Codex Workspace Maramihang mga workspace ng Codex bawat email — Tamang pinaghihiwalay ng OAuth ang mga koneksyon ayon sa workspace ID
🔄Electron Auto-Update Sinusuri ng desktop app ang mga update + auto-install sa pag-restart ### 🤖 Agent & Protocol Operations (v2.0)
Tampok Ano ang Ginagawa Nito
🔧MCP Server (25 tool) Mga tool ng IDE/agent sa pamamagitan ng 3 transport: stdio, SSE (/api/mcp/sse), Streamable HTTP (/api/mcp/stream). 18 core + 3 memory + 4 na tool sa kasanayan
🤝A2A Server (JSON-RPC + SSE) Pagpapatupad ng gawain ng ahente-sa-agent na may pag-sync at mga daloy ng streaming
🧭Consolidated Endpoints Page Pahina ng pamamahala sa tab na may mga tab na Endpoint Proxy, MCP, A2A, at Mga Endpoint ng API
🎚️Service Enable/Disable Toggles ON/OFF switch para sa MCP at A2A na may mga setting ng persistence (default: OFF)
🛰️MCP Runtime Heartbeat Katayuan ng totoong proseso (pid, uptime, edad ng tibok ng puso, transportasyon, mode ng saklaw)
📋MCP Audit Trail Na-filter na mga log ng pag-audit na may tagumpay/kabiguan at pangunahing pagpapatungkol
🔐Pagpapatupad ng Saklaw ng MCP 10 butil na saklaw na pahintulot para sa kontroladong pag-access ng tool
📡A2A Task Lifecycle Management Ilista/i-filter ang mga gawain, siyasatin ang mga kaganapan/artifact, kanselahin ang pagpapatakbo ng mga gawain
📋Pagtuklas ng Ahente Card /.well-known/agent.json para sa auto-discovery ng kliyente
🧪Protocol E2E Test Harness Ang totoong MCP SDK + A2A client ay dumadaloy sa test:protocols:e2e
⚙️Mga Operational Control Lumipat ng combo, ilapat ang mga profile ng resilience, i-reset ang mga breaker mula sa isang control surface ### 🧠 Routing & Intelligence
Tampok Ano ang Ginagawa Nito
🎯Smart 4-Tier Fallback Auto-ruta: Subscription → API Key → Mura → Libre
📊Real-Time Quota Tracking Live na bilang ng token + reset countdown bawat provider
🔄Format Translation OpenAI ↔ Claude ↔ Gemini ↔ Mga tugon na may mga conversion na ligtas sa schema
👥Suporta sa Multi-Account Maramihang account sa bawat provider na may matalinong pagpili
🔄Auto Token Refresh Awtomatikong nagre-refresh ang mga token ng OAuth sa muling pagsubok
🎨Mga Custom na Combos 9 na diskarte sa pagbabalanse + fallback chain control
🌐Wildcard Router provider/* dynamic na pagruruta
🧠Mga Kontrol sa Badyet sa Pag-iisip Passthrough, auto, custom, at adaptive na mga limitasyon sa pangangatwiran
🔀Mga Alyas ng Modelo Built-in + custom na model aliasing at kaligtasan sa paglilipat
Pagbaba ng Background Iruta ang mga gawain sa background na mababa ang priyoridad sa mas murang mga modelo
🧪Task-Aware Smart Routing Awtomatikong piliin ang modelo ayon sa uri ng nilalaman (coding/vision/analysis/summarization)
🔄Mga Workflow ng Ahente ng A2A Deterministic FSM orchestrator para sa stateful multi-step agent executions
🔀Adaptive Routing Pag-override ng dinamikong diskarte batay sa dami ng token at agarang pagiging kumplikado
🎲Diversity ng Provider Shannon entropy scoring balancing auto-combo traffic distribution
💬System Prompt Injection Patuloy na inilalapat ang mga pandaigdigang kontrol sa gawi
📄Pagkatugma sa API ng Mga Tugon Buong suporta sa /v1/responses para sa Codex at mga advanced na ahenteng daloy ng trabaho ### 🎵 Multi-Modal APIs
Tampok Ano ang Ginagawa Nito
🖼️Pagbuo ng Larawan /v1/images/generations na may cloud at mga lokal na backend
📐Mga Pag-embed /v1/embeddings para sa paghahanap at mga pipeline ng RAG
🎤Audio Transcription /v1/audio/transcriptions — 7 provider (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), auto-language detection, suporta sa MP4/MP3/WAV
🔊Text-to-Speech /v1/audio/speech — 10 provider (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) na may mga tamang mensahe ng error
🎬Pagbuo ng Video /v1/video/generations (ComfyUI + SD WebUI workflows)
🎵Pagbuo ng Musika /v1/music/generations (ComfyUI workflows)
🛡️Mga Pag-moderate /v1/moderations mga pagsusuri sa kaligtasan
🔀Reranking /v1/rerank para sa pagmamarka ng kaugnayan
🔍Paghahanap sa Web🆕 /v1/search — 5 provider (Serper, Brave, Perplexity, Exa, Tavily), 6,500+ libre/buwan, auto-failover, cache ### 🛡️ Resilience, Security & Governance
Tampok Ano ang Ginagawa Nito
🔌Mga Circuit Breaker Bawat modelong biyahe/pagbawi na may mga kontrol sa threshold
🎯Mga Modelo ng Endpoint-Aware Idineklara ng mga custom na modelo ang mga sinusuportahang endpoint + format ng API
🛡️Anti-Thundering Herd Mga proteksyon ng Mutex + semaphore sa muling pagsubok/pag-rate ng mga kaganapan
🧠Semantic + Signature Cache Pagbabawas ng gastos/latency na may dalawang layer ng cache
Humiling ng Idempotency Duplicate na window ng proteksyon
🔒TLS Fingerprint Spoofing TLS fingerprint na parang browser —binabawasan ang pag-detect ng bot at pag-flag ng account
🔏CLI Fingerprint Matching Tumutugma sa mga native na lagda ng kahilingan sa CLI —binabawasan ang panganib sa pagbabawal habang pinapanatili ang proxy IP
🌐Pag-filter ng IP Allowlist/blocklist control para sa mga nakalantad na deployment
📊Mga Nae-edit na Limitasyon sa Rate Nako-configure ang mga limitasyon sa antas ng global/provider na may pagtitiyaga
📉Graceful Degradation Mga fallback ng multi-layer na kakayahan na nagpoprotekta sa mga pangunahing pagpapatakbo ng gateway
📜Config Audit Trail Diff-based na pagsubaybay sa pagbabago na pumipigil sa pag-anod ng pagpapatakbo gamit ang mga simpleng rollback
Provider Health Sync Proactive token expiration monitoring na nagti-trigger ng mga alerto bago ang mga pagkabigo ng pahintulot
🚪Awtomatikong I-disable ang Mga Banned Account Ang operational circuit breaker na nagse-sealing ng permanenteng na-block na mga token account ay awtomatikong
🔑API Key Management + Scoping Secure na pagpapalabas/pag-ikot ng susi at mga kontrol ng modelo/tagapagbigay
👁️Scoped API Key Reveal🆕 Mag-opt-in sa pagbawi ng mga API key sa pamamagitan ng ALLOW_API_KEY_REVEAL
🛡️Protektado /models Opsyonal na auth gating at pagtatago ng provider para sa catalog ng modelo ### 📊 Observability & Analytics
Tampok Ano ang Ginagawa Nito
📝Kahilingan + Proxy Logging Buong kahilingan/tugon at proxy logging
📉Mga Naka-stream na Detalyadong Log🆕 Inaayos muli ang mga SSE payload stream nang malinis sa UI
📋Unified Logs Dashboard Kahilingan, proxy, audit, at console view sa isang page
🔍Humiling ng Telemetry p50/p95/p99 latency at kahilingan sa pagsubaybay
🏥Dashboard ng Kalusugan Uptime, breaker states, lockouts, cache stats
💰Pagsubaybay sa Gastos Mga kontrol sa badyet at visibility ng pagpepresyo sa bawat modelo
📈Mga Visualization ng Analytics Mga insight sa paggamit ng modelo/provider at mga view ng trend
🧪Brangkas ng Pagsusuri Golden set testing na may mga configurable na diskarte sa pagtutugma
📡Live Diagnostics🆕 Semantic cache bypass para sa tumpak na combo live na pagsubok ### ☁️ Deployment & Platform
Tampok Ano ang Ginagawa Nito
🌐I-deploy Kahit Saan Localhost, VPS, Docker, Cloud environment
🚇Cloudflare Tunnel🆕 Isang-click na Quick Tunnel integration mula sa dashboard
🔑API Key Model Filtering Na-filter na tugon ng katutubong /v1/models sa pamamagitan ng mga itinalagang tungkulin sa konteksto ng Bearer
Smart Cache Bypass Configurable TTL heuristics at sapilitang refetch na mga kontrol
🔄Backup/Restore Mga daloy ng pag-export/pag-import at pagbawi ng kalamidad
🧙Onboarding Wizard First-run guided setup
🔧CLI Tools Dashboard Isang-click na setup para sa mga sikat na coding tool
🎮Modelo Playground Subukan ang anumang provider/modelo/endpoint mula sa dashboard
🔏CLI Fingerprint Toggle Pagtutugma ng fingerprint ng bawat provider sa Mga Setting > Seguridad
🌐i18n (30 wika) Buong dashboard + suporta sa wika ng mga doc na may saklaw ng RTL
🧹I-clear ang Lahat ng Modelo Isang-click na pag-clear ng listahan ng modelo sa mga detalye ng provider
👁️Mga Kontrol sa Sidebar🆕 Itago ang mga bahagi at pagsasama mula sa Mga Setting ng Hitsura
📋Mga Template ng Isyu Standardized GitHub template para sa mga bug at feature
📂Custom na Direktoryo ng Data Pag-override ng DATA_DIR para sa lokasyon ng storage ### Feature Deep Dive

Smart fallback with practical cost control

Combo: "my-coding-stack"
  1. cc/claude-opus-4-6
  2. nvidia/llama-3.3-70b
  3. glm/glm-4.7
  4. if/kimi-k2-thinking

Kapag nabigo ang quota, rate, o kalusugan, awtomatikong lilipat ang OmniRoute sa susunod na kandidato nang walang manu-manong paglipat.#### Protocol management that is visible and operable

  • Ang MCP + A2A ay natutuklasan sa UI at mga doc (hindi nakatago)
  • Inilalantad ng mga Protocol status API ang live na data ng pagpapatakbo (/api/mcp/*, /api/a2a/*)
  • Kasama sa mga dashboard ang mga aksyon para sa day-2 ops (combo toggle, breaker reset, pagkansela ng gawain)#### Translator + validation workflow

Kasama sa lugar ng Tagasalin ang:

-Playground: humiling ng mga pagsusuri sa pagbabago -Chat Tester: buong kahilingan/tugon round-trip -Test Bench: maraming kaso sa isang pagtakbo -Live Monitor: real-time na view ng trapiko

Dagdag pa ang pagpapatunay ng protocol sa mga tunay na kliyente sa pamamagitan ng npm run test:protocols:e2e.

📖MCP Server README— Tool reference, IDE config, at mga halimbawa ng client

📖A2A Server README— Mga Kasanayan, JSON-RPC na pamamaraan, streaming, at lifecycle ng gawain## 🧪 Evaluations (Evals)

Ang OmniRoute ay may kasamang built-in na balangkas ng pagsusuri upang subukan ang kalidad ng pagtugon ng LLM laban sa isang ginintuang hanay. I-access ito sa pamamagitan ngAnalytics → Evalssa dashboard.### Built-in Golden Set

Ang pre-loaded na "OmniRoute Golden Set" ay naglalaman ng mga test case para sa:

  • Pagbati, matematika, heograpiya, pagbuo ng code
  • Pagsunod sa format ng JSON, pagsasalin, pagbuo ng markdown
  • Pagtanggi sa kaligtasan (nakapipinsalang nilalaman), pagbibilang, lohika ng boolean### Evaluation Strategies
Diskarte Paglalarawan Halimbawa
eksakto Dapat na eksaktong tumugma ang output "4"
naglalaman Ang output ay dapat maglaman ng substring (case-insensitive) "Paris"
regex Ang output ay dapat tumugma sa regex pattern "1.*2.*3"
pasadya Ang custom na JS function ay nagbabalik ng true/false (output) => output.length > 10 ---

📖 Setup Guide

Protocol Setup (MCP + A2A)

🧩 MCP Setup (Model Context Protocol)

Simulan ang MCP transport sa stdio mode:```bash omniroute --mcp


Inirerekomendang daloy ng pagpapatunay:

1. Ikonekta ang iyong MCP client sa stdio.
2. Patakbuhin ang `omniroute_get_health`.
3. Patakbuhin ang `omniroute_list_combos`.
4. Buksan ang `/dashboard/mcp` para kumpirmahin ang tibok ng puso, aktibidad, at pag-audit.

Mga kapaki-pakinabang na API para sa automation:

- `GET /api/mcp/status`
- `GET /api/mcp/tools`
- `GET /api/mcp/audit`
- `GET /api/mcp/audit/stats`</details>

<mga detalye>
<buod><b>🤝 A2A Setup (Agent2Agent)</b></summary>

Tuklasin ang ahente:```bash
curl http://localhost:20128/.well-known/agent.json

Magpadala ng gawain:```bash curl -X POST http://localhost:20128/a2a
-H 'content-type: application/json'
-d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}'


Pamahalaan ang lifecycle:

- `GET /api/a2a/status`
- `GET /api/a2a/tasks`
- `GET /api/a2a/tasks/:id`
- `POST /api/a2a/tasks/:id/cancel`

Operational UI:

- `/dashboard/a2a` para sa gawain/estado/pagmamasid sa stream at mga pagkilos sa usok</details>

<mga detalye>
<summary><b>🧪 End-to-end protocol validation</b></summary>

I-validate ang parehong protocol sa mga totoong kliyente:```bash
npm run test:protocols:e2e

Ito ay nagpapatunay:

  • MCP SDK client kumonekta/listahan/tawag
  • A2A discovery/send/stream/get/cancel
  • Cross-check ang data sa MCP audit at A2A task management API
💳 Subscription Provider### Claude Code (Pro/Max)
Dashboard → Providers → Connect Claude Code
→ OAuth login → Auto token refresh
→ 5-hour + weekly quota tracking

Models:
  cc/claude-opus-4-6
  cc/claude-sonnet-4-5-20250929
  cc/claude-haiku-4-5-20251001

**Pro Tip:**Gamitin ang Opus para sa mga kumplikadong gawain, Soneto para sa bilis. Sinusubaybayan ng OmniRoute ang quota bawat modelo!### OpenAI Codex (Plus/Pro)

Dashboard → Providers → Connect Codex
→ OAuth login (port 1455)
→ 5-hour + weekly reset

Models:
  cx/gpt-5.2-codex
  cx/gpt-5.1-codex-max

Codex Account Limit Management (5h + Weekly)

Ang bawat Codex account ay mayroon na ngayong mga toggle ng patakaran sa Dashboard -> Mga Provider:

  • 5h (ON/OFF): ipatupad ang 5-hour window threshold policy.
  • Lingguhan (ON/OFF): ipatupad ang lingguhang patakaran sa threshold ng window.
  • Threshold na gawi: kapag ang isang naka-enable na window ay umabot sa >=90% na paggamit, ang account na iyon ay nilalaktawan.
  • Pag-uugali ng pag-ikot: Awtomatikong mga ruta ang OmniRoute patungo sa susunod na karapat-dapat na Codex account.
  • I-reset ang gawi: kapag lumipas ang oras ng provider na resetAt, awtomatikong magiging kwalipikadong muli ang account.

Mga sitwasyon:

  • 5h ON + Weekly ON: ang account ay nilalaktawan kapag ang alinman sa window ay umabot sa threshold.
  • 5h OFF + Weekly ON: lingguhang paggamit lang ang makaka-block sa account.
  • 5h ON + Lingguhang OFF: 5 oras na paggamit lang ang makaka-block sa account.
  • Lumipas ang resetAt: awtomatikong pumapasok ang account sa pag-ikot (walang manual na muling paganahin).### Gemini CLI (FREE 180K/month!)
Dashboard → Providers → Connect Gemini CLI
→ Google OAuth
→ 180K completions/month + 1K/day

Models:
  gc/gemini-3-flash-preview
  gc/gemini-2.5-pro

**Pinakamahusay na Halaga:**Malaking libreng tier! Gamitin ito bago ang mga bayad na tier.### GitHub Copilot

Dashboard → Providers → Connect GitHub
→ OAuth via GitHub
→ Monthly reset (1st of month)

Models:
  gh/gpt-5
  gh/claude-4.5-sonnet
  gh/gemini-3.1-pro-preview
🔑 API Key Provider### NVIDIA NIM (FREE developer access — 70+ models)
  1. Mag-sign up: build.nvidia.com
  2. Kumuha ng libreng API key (1000 inference credits kasama)
  3. Dashboard → Magdagdag ng Provider → NVIDIA NIM:
    • API Key: nvapi-your-key

Mga Modelo:nvidia/llama-3.3-70b-instruct, nvidia/mistral-7b-instruct, at 50+ pa

**Pro Tip:**OpenAI-compatible na API — gumagana nang walang putol sa pagsasalin ng format ng OmniRoute!### DeepSeek

  1. Mag-sign up: platform.deepseek.com
  2. Kunin ang API key
  3. Dashboard → Magdagdag ng Provider → DeepSeek

Mga Modelo:deepseek/deepseek-chat, deepseek/deepseek-coder### Groq (Free Tier Available!)

  1. Mag-sign up: console.groq.com
  2. Kunin ang API key (kasama ang libreng tier)
  3. Dashboard → Magdagdag ng Provider → Groq

Mga Modelo:groq/llama-3.3-70b, groq/mixtral-8x7b

**Pro Tip:**Napakabilis na hinuha — pinakamahusay para sa real-time na coding!### OpenRouter (100+ Models)

  1. Mag-sign up: openrouter.ai
  2. Kunin ang API key
  3. Dashboard → Magdagdag ng Provider → OpenRouter

**Mga Modelo:**I-access ang 100+ na modelo mula sa lahat ng pangunahing provider sa pamamagitan ng iisang API key.

Gawi sa Dashboard:Ang mga modelo ng OpenRouter ay pinamamahalaan mula saMga Magagamit na Modelo. Ang manu-manong pagdaragdag, pag-import, at pag-auto-sync ay lahat ay nag-a-update sa parehong listahan.

💰 Cheap Provider (Backup)### GLM-4.7 (Daily reset, $0.6/1M)
  1. Mag-sign up: Zhipu AI
  2. Kumuha ng API key mula sa Coding Plan
  3. Dashboard → Magdagdag ng API Key:
    • Provider: glm
    • API Key: your-key

Gamitin:glm/glm-4.7

**Pro Tip:**Nag-aalok ang Coding Plan ng 3× na quota sa 1/7 na halaga! I-reset araw-araw 10:00 AM.### MiniMax M2.1 (5h reset, $0.20/1M)

  1. Mag-sign up: MiniMax
  2. Kunin ang API key
  3. Dashboard → Magdagdag ng API Key

Gamitin:minimax/MiniMax-M2.1

**Pro Tip:**Ang pinakamurang opsyon para sa mahabang konteksto (1M token)!### Kimi K2 ($9/month flat)

  1. Mag-subscribe: Moonshot AI
  2. Kunin ang API key
  3. Dashboard → Magdagdag ng API Key

Gamitin:kimi/kimi-latest

**Pro Tip:**Nakapirming $9/buwan para sa 10M token = $0.90/1M epektibong gastos!

🆓 LIBRENG Provider (Emergency Backup)### Qoder (5 FREE models via OAuth)
Dashboard → Connect Qoder
→ Qoder OAuth login
→ Unlimited usage

Models:
  if/kimi-k2-thinking
  if/qwen3-coder-plus
  if/glm-4.7
  if/minimax-m2
  if/deepseek-r1

Qwen (4 FREE models via Device Code)

Dashboard → Connect Qwen
→ Device code authorization
→ Unlimited usage

Models:
  qw/qwen3-coder-plus
  qw/qwen3-coder-flash

Kiro (Claude FREE)

Dashboard → Connect Kiro
→ AWS Builder ID or Google/GitHub
→ Unlimited usage

Models:
  kr/claude-sonnet-4.5
  kr/claude-haiku-4.5
🎨 Lumikha ng Combos### Example 1: Maximize Subscription → Cheap Backup
Dashboard → Combos → Create New

Name: premium-coding
Models:
  1. cc/claude-opus-4-6 (Subscription primary)
  2. glm/glm-4.7 (Cheap backup, $0.6/1M)
  3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)

Use in CLI: premium-coding

Example 2: Free-Only (Zero Cost)

Name: free-combo
Models:
  1. gc/gemini-3-flash-preview (180K free/month)
  2. if/kimi-k2-thinking (unlimited)
  3. qw/qwen3-coder-plus (unlimited)

Cost: $0 forever!
🔧 CLI Integration### Cursor IDE
Settings → Models → Advanced:
  OpenAI API Base URL: http://localhost:20128/v1
  OpenAI API Key: [from OmniRoute dashboard]
  Model: cc/claude-opus-4-6

Claude Code

Gamitin ang pahina ngCLI Toolssa dashboard para sa isang pag-click na configuration, o manu-manong i-edit ang ~/.claude/settings.json.### Codex CLI

export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"

codex "your prompt"

OpenClaw

Pagpipilian 1 — Dashboard (inirerekomenda):``` Dashboard → CLI Tools → OpenClaw → Select Model → Apply


**Pagpipilian 2 — Manwal:**I-edit ang `~/.openclaw/openclaw.json`:```json
{
  "models": {
    "providers": {
      "omniroute": {
        "baseUrl": "http://127.0.0.1:20128/v1",
        "apiKey": "sk_omniroute",
        "api": "openai-completions"
      }
    }
  }
}

**Tandaan:**Ang OpenClaw ay gumagana lamang sa lokal na OmniRoute. Gamitin ang 127.0.0.1 sa halip na localhost upang maiwasan ang mga isyu sa paglutas ng IPv6.### Cline / Continue / RooCode

Settings → API Configuration:
  Provider: OpenAI Compatible
  Base URL: http://localhost:20128/v1
  API Key: [from OmniRoute dashboard]
  Model: if/kimi-k2-thinking

OpenCode

**Hakbang 1:**Idagdag ang OmniRoute bilang custom na provider:```bash opencode /connect

Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key


**Hakbang 2:**Gumawa/mag-edit ng `opencode.json` sa ugat ng iyong proyekto:```json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "omniroute": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "OmniRoute",
      "options": {
        "baseURL": "http://localhost:20128/v1"
      },
      "models": {
        "cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" },
        "gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
        "if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" }
      }
    }
  }
}

**Hakbang 3:**Piliin ang modelo sa OpenCode:```bash /models

Select any OmniRoute model from the list


>**Tip:**Magdagdag ng anumang modelong available sa iyong OmniRoute `/v1/models` endpoint sa seksyong `models`. Gamitin ang format na `provider/model-id` mula sa iyong OmniRoute dashboard.</details>

---

## Pag-troubleshoot

<mga detalye>
<summary><b>I-click upang palawakin ang gabay sa pag-troubleshoot</b></summary>

**"Ang modelo ng wika ay hindi nagbigay ng mga mensahe"**

- Naubos na ang quota ng provider → Suriin ang tracker ng quota ng dashboard
- Solusyon: Gumamit ng combo fallback o lumipat sa mas murang tier

**Paglilimita sa rate**

- Out na ang quota ng subscription → Fallback sa GLM/MiniMax
- Magdagdag ng combo: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`

**Nag-expire ang token ng OAuth**

- Auto-refresh ng OmniRoute
- Kung magpapatuloy ang mga isyu: Dashboard → Provider → Muling kumonekta

**Mataas na gastos**

- Suriin ang mga istatistika ng paggamit sa Dashboard → Mga Gastos
- Ilipat ang pangunahing modelo sa GLM/MiniMax
- Gumamit ng libreng tier (Gemini CLI, Qoder) para sa mga hindi kritikal na gawain

**Mali ang mga dashboard/API port**

- Ang `PORT` ay ang canonical base port (at API port bilang default)
- Ino-override lang ng `API_PORT` ang OpenAI-compatible na API listener
- Ino-override lang ng `DASHBOARD_PORT` ang dashboard/Next.js listener
- Itakda ang `NEXT_PUBLIC_BASE_URL` sa iyong dashboard/pampublikong URL (para sa mga OAuth callback)

**Mga error sa cloud sync**

- I-verify ang `BASE_URL` na mga puntos sa iyong running instance
- I-verify ang `CLOUD_URL` na mga puntos sa iyong inaasahang cloud endpoint
- Panatilihing nakahanay ang mga value ng `NEXT_PUBLIC_*` sa mga value sa gilid ng server

**Hindi gumagana ang unang pag-login**

- Lagyan ng check ang `INITIAL_PASSWORD` sa `.env`
- Kung hindi nakatakda, ang fallback na password ay `123456`

**Walang mga log ng kahilingan**

- Ang mga artifact ng kahilingan ay isinulat sa `DATA_DIR/call_logs/` bilang isang JSON file bawat kahilingan
- I-enable ang pagkuha ng pipeline mula sa Dashboard → Logs → Request Logs kung kailangan mo ng detalyadong per-stage payloads
- Itakda ang `APP_LOG_TO_FILE=true` kung gusto mo rin ng application console logs sa `logs/application/app.log`
- Isaayos ang `APP_LOG_MAX_FILE_SIZE`, `APP_LOG_RETENTION_DAYS`, `APP_LOG_MAX_FILES`, at `CALL_LOG_MAX_ENTRIES` kung kinakailangan

**Ang pagsubok sa koneksyon ay nagpapakita ng "Di-wasto" para sa mga provider na katugma sa OpenAI**

- Maraming provider ang hindi naglalantad ng `/models` endpoint
- Kasama sa OmniRoute v1.0.6+ ang fallback validation sa pamamagitan ng mga pagkumpleto ng chat
- Tiyaking may kasamang `/v1` na suffix ang base URL### 🔐 OAuth on a Remote Server

<a name="oauth-on-a-remote-server"></a>
<a name="oauth-em-servidor-remoto"></a>

>**⚠️ Mahalaga para sa mga user na nagpapatakbo ng OmniRoute sa isang VPS, Docker, o anumang malayuang server**#### Why does Antigravity / Gemini CLI OAuth fail on remote servers?

Ang**Antigravity**at**Gemini CLI**provider ay gumagamit ng**Google OAuth 2.0**. Kinakailangan ng Google ang `redirect_uri` sa daloy ng OAuth upang eksaktong tumugma sa isa sa mga paunang nakarehistrong URI sa Google Cloud Console ng app.

Ang mga kredensyal ng OAuth na naka-bundle sa OmniRoute ay nakarehistro**para sa `localhost` lamang**. Kapag na-access mo ang OmniRoute sa isang malayuang server (hal. `https://omniroute.myserver.com`), tinatanggihan ng Google ang pagpapatotoo gamit ang:```
Error 400: redirect_uri_mismatch

Solution: Configure your own OAuth credentials

Kailangan mong gumawa ngOAuth 2.0 Client IDsa Google Cloud Console gamit ang URI ng iyong server.#### Step-by-step

1. Buksan ang Google Cloud Console

Pumunta sa: https://console.cloud.google.com/apis/credentials

2. Gumawa ng bagong OAuth 2.0 Client ID

  • I-click ang**"+ Lumikha ng Mga Kredensyal""OAuth client ID"**
  • Uri ng application:"Web application"
  • Pangalan: anumang gusto mo (hal. OmniRoute Remote)

3. Magdagdag ng mga Awtorisadong Redirect URI

Sa field na**"Authorized redirect URIs"**, idagdag ang:``` https://your-server.com/callback


> Palitan ang `your-server.com` ng domain o IP ng iyong server (isama ang port kung kinakailangan, hal. `http://45.33.32.156:20128/callback`).

**4. I-save at kopyahin ang mga kredensyal**

Pagkatapos gumawa, ipapakita ng Google ang**Client ID**at**Client Secret**.

**5. Magtakda ng mga variable ng kapaligiran**

Sa iyong `.env` (o mga variable ng kapaligiran ng Docker):```bash
# For Antigravity:
ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret

# For Gemini CLI:
GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret

6. I-restart ang OmniRoute```bash

npm:

npm run dev

Docker:

docker restart omniroute


**7. Subukang kumonekta muli**

Dashboard → Mga Provider → Antigravity (o Gemini CLI) → OAuth

Ire-redirect na ngayon ng Google nang tama sa `https://your-server.com/callback`.---

#### Temporary workaround (without custom credentials)

Kung hindi mo gustong mag-set up ng sarili mong mga kredensyal sa ngayon, maaari mo pa ring gamitin ang**manual na daloy ng URL**:

1. Binubuksan ng OmniRoute ang URL ng awtorisasyon ng Google
2. Pagkatapos magpahintulot, sinusubukan ng Google na mag-redirect sa `localhost` (na nabigo sa remote server)
3.**Kopyahin ang buong URL**mula sa address bar ng iyong browser (kahit na hindi naglo-load ang page)
4. I-paste ang URL na iyon sa field na ipinapakita sa OmniRoute connection modal
5. I-click ang**"Kumonekta"**

> Gumagana ito dahil valid ang authorization code sa URL kahit na-load man ang redirect page.---

<mga detalye>
<buod><b>🇧🇷 Versão em Português</b></summary>#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos?

Os provedores**Antigravity**at**Gemini CLI**gamit ang**Google OAuth 2.0**para sa autenticação. O Google exige que a `redirect_uri` use no fluxo OAuth seja**exatamente**das URIs pré-cadastradas no Google Cloud Console for aplicativo.

Bilang credenciais OAuth embutidas no OmniRoute estão cadastradas**apenas para sa `localhost`**. Quando você acessa o OmniRoute em um servidor remoto (hal: `https://omniroute.meuservidor.com`), o Google rejeita a autenticação com:```
Error 400: redirect_uri_mismatch

Solução: Configure suas próprias credenciais OAuth

Você precisa criar umOAuth 2.0 Client IDwalang Google Cloud Console com a URI do seu servidor.#### Passo a passo

1. Mag-access sa Google Cloud Console

Abra: https://console.cloud.google.com/apis/credentials

2. Crie um novo OAuth 2.0 Client ID

  • Clique em**"+ Lumikha ng Mga Kredensyal""OAuth client ID"**
  • Tipo de aplicativo:"Web application"
  • Pangalan: escolha qualquer nome (hal: OmniRoute Remote)

3. Idagdag bilang Mga Awtorisadong URI sa Pag-redirect

Walang campo**"Mga Awtorisadong URI sa pag-redirect"**, idagdag:``` https://seu-servidor.com/callback


> Palitan ang `seu-servidor.com` pelo domínio ou IP do seu servidor (kasama ang porta se necessário, hal: `http://45.33.32.156:20128/callback`).

**4. I-save at kopyahin bilang kredensyal**

Após criar, o Google mostrará o**Client ID**at**Client Secret**.

**5. I-configure bilang variáveis de ambiente**

No seu `.env` (ou nas variáveis de ambiente do Docker):```bash
# Para Antigravity:
ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret

# Para Gemini CLI:
GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret

6. Reinicie o OmniRoute```bash

Se usando npm:

npm run dev

Se usando Docker:

docker restart omniroute


**7. Tente conectar novamente**

Dashboard → Mga Provider → Antigravity (ou Gemini CLI) → OAuth

Agora o Google redirectionará corretamente para sa `https://seu-servidor.com/callback` at a autenticação funcionará.---

#### Workaround temporário (sem configurar credenciais próprias)

Se não quiser criar credenciais próprias agora, may posibilidad na magamit o fluxo**manual de URL**:

1. OmniRoute abrirá a URL de authorização do Google
2. Após você authorizar, o Google tentará redirectionar para sa `localhost` (que falha no servidor remoto)
3.**Kopyahin ang isang URL completa**sa barra de endereço do seu browser (mesmo que a página não carregue)
4. Cole essa URL no campo que aparece no modal de conexão do OmniRoute
5. Clique em**"Kumonekta"**

> Ang workaround na ito ay gumagana sa pamamagitan ng código de authorização na URL ay maaaring mag-redirect sa iyong carregado ou não.</details>

---

</details>

## 🛠️ Tech Stack

<mga detalye>
<summary><b>I-click upang palawakin ang mga detalye ng tech stack</b></summary>

-**Runtime**: Node.js 1822 LTS (⚠️ Node.js 24+ ay**hindi suportado**— hindi tugma ang `better-sqlite3` native binary)
-**Language**: TypeScript 5.9 —**100% TypeScript**sa `src/` at `open-sse/` (zero `any` sa mga core module mula noong v2.0)
-**Framework**: Next.js 16 + React 19 + Tailwind CSS 4
-**Database**: LowDB (JSON) + SQLite (domain state + proxy logs + MCP audit + routing decisions)
-**Schemas**: Zod (MCP tool I/O validation, mga kontrata ng API)
-**Mga Protocol**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
-**Streaming**: Mga Kaganapang Ipinadala ng Server (SSE)
-**Auth**: OAuth 2.0 (PKCE) + JWT + API Keys + MCP Scoped Authorization
-**Pagsubok**: Node.js test runner + Vitest (900+ test kasama ang unit, integration, E2E)
-**CI/CD**: GitHub Actions (auto npm publish + Docker Hub on release)
-**Website**: [omniroute.online](https://omniroute.online)
-**Package**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
-**Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
-**Resilience**: Circuit breaker, exponential backoff, anti-thundering herd, TLS spoofing, auto-combo self-healing</details>

---

## Dokumentasyon

| Dokumento | Paglalarawan |
| ---------------------------------------------- | ---------------------------------------------------- |
| [User Guide](docs/USER_GUIDE.md) | Mga provider, combo, CLI integration, deployment |
| [API Reference](docs/API_REFERENCE.md) | Lahat ng mga endpoint na may mga halimbawa |
| [MCP Server](open-sse/mcp-server/README.md) | 16 MCP tool, IDE configs, Python/TS/Go client |
| [A2A Server](src/lib/a2a/README.md) | JSON-RPC 2.0 protocol, kasanayan, streaming, gawain mgmt |
| [Auto-Combo Engine](docs/auto-combo.md) | 6-factor scoring, mode pack, self-healing |
| [Pag-troubleshoot](docs/TROUBLESHOOTING.md) | Mga karaniwang problema at solusyon |
| [Arkitektura](docs/ARCHITECTURE.md) | Arkitektura ng system at mga panloob |
| [Contributing](CONTRIBUTING.md) | Pag-setup at mga alituntunin ng pag-unlad |
| [OpenAPI Spec](docs/openapi.yaml) | OpenAPI 3.0 na detalye |
| [Patakaran sa Seguridad](SECURITY.md) | Pag-uulat ng kahinaan at mga kasanayan sa seguridad |
| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | Kumpletong gabay: VM + nginx + Cloudflare setup |
| [Features Gallery](docs/FEATURES.md) | Visual dashboard tour na may mga screenshot |
| [Release Checklist](docs/RELEASE_CHECKLIST.md) | Mga hakbang sa pagpapatunay bago ang paglabas |---

## 🗺️ Roadmap

Ang OmniRoute ay may**210+ feature na binalak**sa maraming yugto ng pag-unlad. Narito ang mga pangunahing lugar:

| Kategorya | Mga Nakaplanong Tampok | Mga Highlight |
| ----------------------------- | ---------------- | ------------------------------------------------------------------------------------ |
| 🧠**Routing at Intelligence**| 25+ | Lowest-latency routing, tag-based na routing, quota preflight, P2C account selection |
| 🔒**Seguridad at Pagsunod**| 20+ | SSRF hardening, credential cloaking, rate-limit sa bawat endpoint, management key scoping |
| 📊**Pagmamasid**| 15+ | Pagsasama ng OpenTelemetry, real-time na pagsubaybay sa quota, pagsubaybay sa gastos bawat modelo |
| 🔄**Mga Pagsasama ng Provider**| 20+ | Dynamic na model registry, provider cooldowns, multi-account Codex, Copilot quota parsing |
| ⚡**Pagganap**| 15+ | Dual cache layer, prompt cache, response cache, streaming keepalive, batch API |
| 🌐**Ecosystem**| 10+ | WebSocket API, config hot-reload, distributed config store, commercial mode |### 🔜 Coming Soon

- 🔗**OpenCode Integration**— Suporta ng katutubong provider para sa OpenCode AI coding IDE
- 🔗**TRAE Integration**— Buong suporta para sa balangkas ng pag-develop ng TRAE AI
- 📦**Batch API**— Asynchronous na pagproseso ng batch para sa maramihang kahilingan
- 🎯**Tag-Based Routing**— Mga kahilingan sa ruta batay sa mga custom na tag at metadata
- 💰**Diskarte sa Pinakamababang Gastos**— Awtomatikong piliin ang pinakamurang available na provider

> 📝 Available ang buong detalye ng feature sa [`docs/new-features/`](docs/new-features/) (217 detalyadong spec)---

## 👥 Contributors

[![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)

### How to Contribute

1. I-fork ang repository
2. Lumikha ng iyong sangay ng tampok (`git checkout -b feature/amazing-feature`)
3. I-commit ang iyong mga pagbabago (`git commit -m 'Add amazing feature'`)
4. Push sa branch (`git push origin feature/amazing-feature`)
5. Magbukas ng Pull Request

Tingnan ang [CONTRIBUTING.md](CONTRIBUTING.md) para sa mga detalyadong alituntunin.### Releasing a New Version

```bash
# Create a release — npm publish happens automatically
gh release create v2.0.0 --title "v2.0.0" --generate-notes

📊 Star History

Stargazers over time

Stargazers over time

🙏 Acknowledgments

Espesyal na pasasalamat kay**9routernidecolua**— ang orihinal na proyektong nagbigay inspirasyon sa fork na ito. Bumubuo ang OmniRoute sa hindi kapani-paniwalang pundasyong iyon na may mga karagdagang feature, multi-modal na API, at buong TypeScript na muling pagsulat.

Espesyal na salamat sa**CLIProxyAPI**— ang orihinal na pagpapatupad ng Go na nagbigay inspirasyon sa JavaScript port na ito.---

Lisensya

MIT License - tingnan ang LICENSE para sa mga detalye.---

Built with ❤️ for developers who code 24/7
omniroute.online