# ๐ OmniRoute โ ืฉืขืจ ืืืื ื ืืืืืืืชืืช ืืืื ืืืช
### ืืขืืื ืื ืชืคืกืืง ืืงืื. ื ืืชืื ืืื ืืืืื ืืื ื ืืืืืืชืืช **ืืืื ื ืืืขืืืช ื ืืืื** ืขื ืืืจื ืืืืืืืืช.
_ืฉืจืช ื-API ืืืื ืืืจืกืื ืฉืื - ื ืงืืืช ืงืฆื ืืืช, 67+ ืกืคืงืื, ืืคืก ืืื ืืฉืืชื. ืขืืฉืื ืขื ืชืืืืจ ืกืืื ืื **MCP & A2A**._
**ืืฉืืืืช ืฆ'ืื โข ืืืืขืืช โข ืืฆืืจืช ืชืืื ืืช โข ืืืืื โข ืืืืืงื โข ืืืืื โข ืืืจืื ืืืืฉ โข **ืืืคืืฉ ืืื ืืจื ื** โข ืฉืจืช MCP โข ืคืจืืืืงืื A2A โข 100% TypeScript**
---
[](https://www.npmjs.com/package/omniroute)
[](https://www.npmjs.com/package/omniroute)
[](https://hub.docker.com/r/diegosouzapw/omniroute)
[](https://hub.docker.com/r/diegosouzapw/omniroute)
[](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE)
[](https://omniroute.online)
[](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
[๐ Website](https://omniroute.online) โข [๐ Quick Start](#-quick-start) โข [๐ก Features](#-key-features) โข [๐ Docs](#-documentation) โข [๐ฐ Pricing](#-pricing-at-a-glance) โข [๐ฌ WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
๐ **ืืืื ื:** ๐บ๐ธ [English](README.md) | ๐ง๐ท [Portuguรชs (Brasil)](docs/i18n/pt-BR/README.md) | ๐ช๐ธ [Espaรฑol](docs/i18n/es/README.md) | ๐ซ๐ท [Franรงais](docs/i18n/fr/README.md) | ๐ฎ๐น [Italiano](docs/i18n/it/README.md) | ๐ท๐บ [ะ ัััะบะธะน](docs/i18n/ru/README.md) | ๐จ๐ณ [ไธญๆ (็ฎไฝ)](docs/i18n/zh-CN/README.md) | ๐ฉ๐ช [Deutsch](docs/i18n/de/README.md) | ๐ฎ๐ณ [เคนเคฟเคจเฅเคฆเฅ](docs/i18n/in/README.md) | ๐น๐ญ [เนเธเธข](docs/i18n/th/README.md) | ๐บ๐ฆ [ะฃะบัะฐัะฝััะบะฐ](docs/i18n/uk-UA/README.md) | ๐ธ๐ฆ [ุงูุนุฑุจูุฉ](docs/i18n/ar/README.md) | ๐ฏ๐ต [ๆฅๆฌ่ช](docs/i18n/ja/README.md) | ๐ป๐ณ [Tiแบฟng Viแปt](docs/i18n/vi/README.md) | ๐ง๐ฌ [ะัะปะณะฐััะบะธ](docs/i18n/bg/README.md) | ๐ฉ๐ฐ [Dansk](docs/i18n/da/README.md) | ๐ซ๐ฎ [Suomi](docs/i18n/fi/README.md) | ๐ฎ๐ฑ [ืขืืจืืช](docs/i18n/he/README.md) | ๐ญ๐บ [Magyar](docs/i18n/hu/README.md) | ๐ฎ๐ฉ [Bahasa Indonesia](docs/i18n/id/README.md) | ๐ฐ๐ท [ํ๊ตญ์ด](docs/i18n/ko/README.md) | ๐ฒ๐พ [Bahasa Melayu](docs/i18n/ms/README.md) | ๐ณ๐ฑ [Nederlands](docs/i18n/nl/README.md) | ๐ณ๐ด [Norsk](docs/i18n/no/README.md) | ๐ต๐น [Portuguรชs (Portugal)](docs/i18n/pt/README.md) | ๐ท๐ด [Romรขnฤ](docs/i18n/ro/README.md) | ๐ต๐ฑ [Polski](docs/i18n/pl/README.md) | ๐ธ๐ฐ [Slovenฤina](docs/i18n/sk/README.md) | ๐ธ๐ช [Svenska](docs/i18n/sv/README.md) | ๐ต๐ญ [Filipino](docs/i18n/phi/README.md) | ๐จ๐ฟ [ฤeลกtina](docs/i18n/cs/README.md)
---
## ๐ ืื ืืืฉ ืืืจืกื 3.0.0
> **ืืฉืืจืืื ืืืจืกื 2.9.5?** โ ืขืืื ื-[full CHANGELOG](CHANGELOG.md#300--2026-03-22-release-candidate--not-yet-merged-to-main) ืืื ืืฉืื ืืืื.
| ืืืืจ | ืฉื ื |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| ๐ **CodeQL Security** | ืชืืงื ืืืชืจ ื-10 ืืชืจืืืช CodeQL: ืคืืืื ืื-redos, unsecure-randomness, ืชืืงืื ืืืจืงืช ืืขืืคืช |
| โ
**ืืืืืช ืืกืืื** | ืื 176 ืืกืืืื ื-API ืืืืืชืื ืืขืช ืขื ืกืืืืืช Zod + `validateBody()` โ ืืขืืจื CI `check:route-validation:t06` |
| ๐ **ืืืืคืช ืชื omniModel** | ืชืื `` ืคื ืืืืื ืืื ื ืืืืคืื ืืืชืจ ืืืงืืืืช ืืชืืืืืช ืืืจืืช SSE (#585) |
| ๐ **Registered Keys API** | ืืงืฆืื ืืืืืืืืช ืฉื ืืคืชืืืช API ืืืืฆืขืืช `POST /api/v1/registered-keys` ืขื ืืืืคืช ืืืกืืช ืืื ืกืคืง/ืืฉืืื, ืืืืคืืื ืฆืื, ืืืกืื SHA-256 ืืืืืื ืืืคืฆืืื ืื ืขื ืืขืืืช GitHub |
| ๐จ **ืืืืงืื ื ืกืคืง** | ืืืชืจ ื-130 ืกืืื ืืืื ืฉื ืกืคืงืื ืืืืฆืขืืช `@lobehub/icons` (SVG) ืขื PNG โ ืฉืจืฉืจืช ืืืืืคืื ืื ืจืืช |
| ๐ **ืกื ืืจืื ืืืืืืื ืืื** | ืืชืืื 24 ืฉืขืืช ืืืืฉืง ืืฉืชืืฉ ืืื ื ืืื ืืกื ืืจื ืจืฉืืืืช ืืืืื ืขืืืจ ืกืคืงืื ืืืื ืื ืืืืชืืืื ืืืฉืืช ืชืืืื OpenAI |
| ๐ **OpenCode Zen/Go** | ืฉื ื ืกืคืงืื ืืืฉืื ื-@kang-heewon ืืจื PR #530: ืฉืืืช ืืื ื + ืฉืืืช ืื ืื ืืจื `OpencodeExecutor` |
| ๐ **Gemini CLI OAuth** | ืฉืืืื ื ืืชื ืช ืืคืขืืื ืืืฉืจ `GEMINI_OAUTH_CLIENT_SECRET` ืืกืจ ื-Docker (ืืืืชื ืฉืืืื ืกืชืืืช ืฉื Google) |
| ๐ **ืชืฆืืจืช OpenCode** | `saveOpenCodeConfig()` ืืืชื ืืขืช ืืจืืื TOML ื-`XDG_CONFIG_HOME` |
| ๐ **ืขืงืืคืช ืืื ืืืฆืื** | `body.model` ืืืืืจ ืืจืืื ื-`pinnedModel` ืขื ืืื ืช ืืงืฉืจ ืืืืื |
| ๐ **ืงืืืงืก/ืืืืืช ืงืืื** | `tool_result` ืืืืงืื ืืืืจืื ืืขืช ืืืงืกื ืืื ืืขืฆืืจ ืืืืืืช ืืื ืกืืคืืืช |
| ๐ **ืืคื ืื ืืืืฉ ืืื ืืกื** | ืืื ืืกื ืื ืงืืคืืช ืขืื ืืืืจ ืืืืื ืขื ืืืืจืช ืืกืืกืื |
| ๐ **ื ืชืืื ืืืื ืืช** | ื ืชืืื MSYS2/Git-Bash (`/c/...`) ืื ืืจืืืื ื-`C:\...` ืืืืคื ืืืืืืื |
---
## ๐ผ๏ธ ืืื ืืืืืื ืื ืืจืืฉื
---
## ๐ธ ืชืฆืืื ืืงืืืื ืฉื ืืื ืืืืืื ืื
ืืืฅ ืืื ืืจืืืช ืฆืืืืื ืืกื ืฉื ืืื ืืืืืื ืื
| ืขืืื | ืฆืืืื ืืกื |
| --------------- | ------------------------------------------------- |
| **ืกืคืงืื** |  |
| **ืฉืืืืืื** |  |
| **ืื ืืืืืงื** |  |
| **ืืจืืืืช** |  |
| **ืืชืจืื** |  |
| **ืืืืจืืช** |  |
| **ืืื CLI** |  |
| **ืืืื ื ืฉืืืืฉ** |  |
| **ื ืงืืืืช ืงืฆื** |  |
---
### ๐ค ืกืคืง AI ืืืื ื ืขืืืจ ืกืืื ื ืืงืืืื ืืืืขืืคืื ืขืืื
_ืืืจ ืื ืืื IDE ืื CLI ืืืืคืขื ืขื ืืื AI ืืจื OmniRoute - ืฉืขืจ API ืืืื ื ืืงืืืื ืืืชื ืืืืื._
๐ก ืื ืืกืืื ืื ืืชืืืจืื ืืจื http://localhost:20128/v1 ืื http://cloud.omniroute.online/v1__OMNI_TOKEN_466, โlimited one config ืืืกื
---
## ๐ค ืืื OmniRoute?
**ืืคืกืืงื ืืืืื ืืกืฃ ืืืืืืข ืืืืืืืช:**
-
ืืืกืช ืืื ืืืื ืืกืชืืืืช ืืื ืฉืืืืฉ ืืื ืืืืฉ
-
ืืืืืืช ืงืฆื ืขืืฆืจืืช ืืืชื ืืงืืืื ืืืืฆืข
-
ืืืฉืงื API ืืงืจืื ($20-50 ืืืืืฉ ืืื ืกืคืง)
-
ืืขืืจ ืืื ื ืืื ืกืคืงืื
**OmniRoute ืคืืชืจ ืืช ืื:**
- โ
**ืืงืกื ืื ืืืื** - ืขืงืื ืืืจ ืืืกืช, ืืฉืชืืฉ ืืื ืกืืืืืช ืืคื ื ืืืืคืืก
- โ
**ืืืืจ ืืืืืืื** - ืื ืื โ ืืคืชื API โ ืืื โ ืืื ื, ืืคืก ืืื ืืฉืืชื
- โ
**ืจืืืื ืืฉืืื ืืช** - ืกืืืื ืืื ืืฉืืื ืืช ืืื ืกืคืง
- โ
**ืืื ืืืจืกืื** - ืขืืื ืขื ืงืืื ืงืื, Codex, Gemini CLI, Cursor, Cline, OpenClaw, ืื ืืื CLI
---
## ๐ง ืชืืืื
> ๐ฌ **ืืฆืืจืคื ืืงืืืื ืฉืื ื!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) โ ืงืื ืขืืจื, ืฉืชืฃ ืืืคืื ืืืืฉืืจ ืืขืืืื.
- **ืืชืจ**: [omniroute.online](https://omniroute.online)
- **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
- **ืืขืืืช**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
- **ืืืืืกืืค**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t)
- **ืชืืจื**: ืจืื [CONTRIBUTING.md](CONTRIBUTING.md), ืคืชื ืืืกื ืฆืืืืจ ืื ืืืจ `good first issue`
- **ืคืจืืืงื ืืงืืจื**: [9router by decolua](https://github.com/decolua/9router)
### ๐ ืืืืืืื ืขื ืืื?
ืืขืช ืคืชืืืช ืืขืื, ืืคืขื ืืช ืคืงืืืช ืืืืข ืืขืจืืช ืืฆืจืฃ ืืช ืืงืืืฅ ืฉื ืืฆืจ:
```bash
npm run system-info
```
ืื ืืืฆืจ `system-info.txt` ืขื ืืจืกืช Node.js, ืืจืกืช OmniRoute, ืคืจืื ืืขืจืืช ืืืคืขืื, ืืื CLI ืืืชืงื ืื (iflow, gemini, claude, codex, antigravity, droid ืืื'), ืกืืืืก Docker/PM2 ืืืืืืืช ืืขืจืืช - ืื ืื ืฉืื ืื ื ืฆืจืืืื ืืื ืืฉืืืจ ืืช ืืืขืื ืืืืืจืืช. ืฆืจืฃ ืืช ืืงืืืฅ ืืฉืืจืืช ืืืขืืืช GitHub ืฉืื.
---
## ๐ ืืื ืื ืขืืื
```
โโโโโโโโโโโโโโโ
โ 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] iFlow, Qwen, Kiro (unlimited)
Result: Never stop coding, minimal cost
```
---
## ๐ฏ ืื OmniRoute ืคืืชืจ - 30 ื ืงืืืืช ืืื ืืืืชืืืช ืืืงืจื ืฉืืืืฉ
> **ืื ืืคืชื ืืืฉืชืืฉ ืืืื ืืื ื ืืืืืืชืืช ืืชืืืื ืขื ืืืขืืืช ืืืื ืืื ืืื.** OmniRoute ื ืื ืชื ืืื ืืคืชืืจ ืืช ืืืื - ืืื ืืืจืืคืืช ืขืืืืืช ืืขื ืืืกืืืืช ืืืืจืืืช, ืืืจืืืืช OAuth ืฉืืืจืืช ืืขื ืคืขืืืืช ืคืจืืืืงืื ืืฆืคืืื ืืจืืื ืืช.
๐ธ 1. "ืื ื ืืฉืื ืขืืืจ ืื ืื ืืงืจ ืืื ืขืืืื ืืืคืจืข ืขื ืืื ืืืืืืช"
ืืคืชืืื ืืฉืืืื $20-200 ืืืืืฉ ืขืืืจ Claude Pro, Codex Pro ืื GitHub Copilot. ืืคืืื ืืชืฉืืื, ืืืืกื ืืฉ ืชืงืจื - 5 ืฉืขืืช ืฉืืืืฉ, ืืืืืืช ืฉืืืขืืืช ืื ืืืืืืช ืชืขืจืืฃ ืืืงื. ืกืฉื ืงืืืื ืืืืฆืข, ืืกืคืง ืืคืกืืง ืืืืื ืืืืคืชื ืืืื ืืจืืื ืืคืจืืืืงืืืืืืช.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **Smart 4-Tier Fallback** - ืื ืืืกืช ืืื ืืืื ื ืืืจืช, ืืคื ื ืืืืืืืืช ืืืคืชื API โ ืืื โ ืืื ื ืขื ืืคืก ืืชืขืจืืืช ืืื ืืช
- **ืืขืงื ืืืกืืช ืืืื ืืืช** - ืืฆืื ืฆืจืืืช ืืกืืืื ืื ืืืื ืืืช ืขื ืกืคืืจื ืืืืืจ ืืืคืก (5 ืฉืขืืช, ืืืื, ืฉืืืขื)
- **ืชืืืื ืืจืืืื ืืฉืืื ืืช** - ืืกืคืจ ืืฉืืื ืืช ืืื ืกืคืง ืขื ืกืื ืืืืืืื - ืืืฉืจ ืืื ืืืื, ืขืืืจ ืืืืจ
- **ืฉืืืืืื ืืืชืืืื ืืืฉืืช** - ืฉืจืฉืจืืืช ื ืืชื ืืช ืืืชืืื ืืืฉืืช ืขื 6 ืืกืืจืืืืืช ืืืืื (ืืืืื ืจืืฉืื, ืกืืืื ืกืืืืื, P2C, ืืงืจืื, ืืื ืคืืืช ืืฉืืืืฉ, ืืืคืืืืืืฆืื ืืขืืืช)
- **Codex Business Quotas** - ื ืืืืจ ืืืกืืช ืกืืืืช ืขืืืื ืขืกืงืืช/ืฆืืืชืืช ืืฉืืจืืช ืืืื ืืืืืื ืื
๐ 2. "ืื ื ืฆืจืื ืืืฉืชืืฉ ืืืกืคืจ ืกืคืงืื ืืื ืืื ืืื ืืฉ API ืฉืื ื"
OpenAI ืืฉืชืืฉ ืืคืืจืื ืืื, ืงืืื (ืื ืชืจืืคืืง) ืืฉืชืืฉ ืืคืืจืื ืืืจ, ืชืืืืื ืื ืืกื ืืืจ. ืื ืืคืชื ืจืืฆื ืืืืื ืืืืื ืืกืคืงืื ืฉืื ืื ืื ืืืืืฃ ืืื ืืื, ืืื ืฆืจืื ืืืืืืจ ืืืืฉ SDK, ืืฉื ืืช ื ืงืืืืช ืงืฆื, ืืืชืืืื ืขื ืคืืจืืืื ืื ืชืืืืื. ืืกืคืงืื ืืืชืืืื ืืืฉืืช (FriendLI, NIM) ืืฉ ื ืงืืืืช ืงืฆื ืื ืกืื ืืจืืืืช ืืืืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ื ืงืืืช ืงืฆื ืืืืืืช** - `http://localhost:20128/v1` ืืืื ืืฉืืฉ ื-proxy ืขืืืจ ืื 67+ ืืกืคืงืื
- **ืชืจืืื ืคืืจืื** โ ืืืืืืื ืืฉืงืืฃ: OpenAI โ Claude โ Gemini โ Responses API
- **ืืืืื ืชืืืื** - ืืกืืจ ืฉืืืช ืื ืกืื ืืจืืืื (`x_groq`, `usage_breakdown`, `service_tier`) ืฉืืคืจืงืื ืืช OpenAI SDK v1.83+
- **ื ืืจืืืืืฆืื ืฉื ืชืคืงืืืื** - ืืืืจื `developer` โ `system` ืขืืืจ ืกืคืงืื ืฉืืื ื OpenAI; `system` โ `user` ืขืืืจ GLM/ERNIE
- **Think Tag Extraction** โ ืืืืฅ `` ืืืืงืื ืืืืืื ืืื DeepSeek R1 ืืชืื `reasoning_content` ืกืื ืืจืื
- **ืคืื ืืืื ื ืขืืืจ ืืื ืชืืืืื** โ `json_schema` โ `responseMimeType`/`responseSchema` ืืืจื ืืืืืืืืช
- **`stream` ืืจืืจืช ืืืืื ืืื `false`** - ืืชืืืฉืจ ืขื ืืคืจื OpenAI, ืืืื ืขืืช SSE ืืืชื ืฆืคืื ื- Python/Rust/Go SDK
๐ 3. "ืกืคืง ื-AI ืฉืื ืืืกื ืืช ืืืืืจ/ืืืืื ื ืฉืื"
ืกืคืงืื ืืื OpenAI/Codex ืืืกืืื ืืืฉื ืืืืืจืื ืืืืืืจืคืืื ืืกืืืืื. ืืฉืชืืฉืื ืืงืืืื ืฉืืืืืช ืืื `unsupported_country_region_territory` ืืืืื ืืืืืจื OAuth ื-API. ืื ืืชืกืื ืืืืืื ืขืืืจ ืืคืชืืื ืืืืื ืืช ืืชืคืชืืืช.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืชืฆืืจืช ืคืจืืงืกื ืืฉืืืฉ ืจืืืช** - ืคืจืืงืกื ื ืืชื ืืืืืจื ื-3 ืจืืืช: ืืืืืืืช (ืื ืืชืขืืืจื), ืืื ืกืคืง (ืกืคืง ืืื ืืืื), ืืืื ืืืืืจ/ืืคืชื
- **ืชืื ืคืจืืงืกื ืืงืืืืื ืืฆืืข** - ืืื ืืืงืืืจืื ืืืืชืืื: ๐ข ืคืจืืงืกื ืืืืืื, ๐ก ืคืจืืงืกื ืกืคืง, ๐ต ืคืจืืงืกื ืืืืืจ, ืชืืื ืืฆืื ืืช ื-IP
- **ืืืืคืช ืืกืืืื ืื ืฉื OAuth ืืืืฆืขืืช ืคืจืืงืกื** - ืืจืืืช OAuth ืขืืืจืช ืื ืืจื ื-proxy, ืืคืืชืจืช ืืช `unsupported_country_region_territory`
- **ืืืืงืืช ืืืืืจ ืืืืฆืขืืช ืคืจืืงืกื** - ืืืืงืืช ืืืืืจ ืืฉืชืืฉืืช ืืคืจืืงืกื ืืืืืืจ (ืื ืขืื ืืขืงืฃ ืืฉืืจ)
- **ืชืืืื SOCKS5** โ ืชืืืื ืืืื ื-Proxy SOCKS5 ืื ืืชืื ืืืฆื
- **ืืืืฃ ืืืืขืืช ืืฆืืข TLS** - ืืืืขืช ืืฆืืข TLS ืืืืืช ืืคืืคื ืืืืฆืขืืช `wreq-js` ืืื ืืขืงืืฃ ืืช ืืืืื ืืืืืื
- **๐ ืืชืืืช ืืืืขืืช ืืฆืืข ืฉื CLI** - ืืกืืจ ืืืืฉ ืืืชืจืืช ืืฉืืืช ืืืฃ ืืื ืืืชืืื ืืืชืืืืช ืืื ืืจืืืช ืืงืืจืืืช ืฉื CLI, ืืืคืืืช ืืืืคื ืืจืกืื ืืช ืืกืืืื ืืกืืืื ืืฉืืื. ื-IP ืฉื ื-proxy ื ืฉืืจ - ืืชื ืืงืื ืื ืืืกืื **ื** IP ืื-ืืื ืืช
๐ 4. "ืื ื ืจืืฆื ืืืฉืชืืฉ ื-AI ืืงืืืื ืืื ืืื ืื ืืกืฃ"
ืื ืืืื ืืืืืื ืืฉืื 20-200 $ ืืืืืฉ ืขืืืจ ืื ืืื AI. ืกืืืื ืืื, ืืคืชืืื ืืืืื ืืช ืืชืคืชืืืช, ืืืืืื ืืคืจืืื ืกืจืื ืฆืจืืืื ืืืฉื ืืืืืื ืืืืืชืืื ืืขืืืช ืืคืกืืช.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืกืคืงื ืฉืืืช ืืื ื ืืืื ืืช** - ืชืืืื ืืงืืจืืช ืขืืืจ 100% ืกืคืงืื ืืื ืืืื: iFlow (5 ืืืืื ืืื ืืืืื ืืจื OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 unlimited-qwens,-rs) qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (ืงืืื + AWS Builder ID ืืืื ื), Gemini CLI (180K ืืกืืืื ืื/ืืืืฉ ืืื ื)
- **Ollama Cloud** - ืืืื Ollama ืืืชืืจืืื ืืขื ื ื-`api.ollama.com` ืขื ืฉืืืช "ืฉืืืืฉ ืงื" ืืืื ื; ืืฉืชืืฉ ืืงืืืืืช `ollamacloud/`
- **ืฉืืืืืื ืืืื ื ืืืื** โ ืฉืจืฉืจืช `gc/gemini-3-flash โ if/kimi-k2-thinking โ qw/qwen3-coder-plus` = $0 ืืืืืฉ ืขื ืืคืก ืืื ืืฉืืชื
- **ืืืฉื ืืืคืฉืืช ื-NVIDIA NIM** - ืืืฉื ืืืคืฉืืช ืฉื ~40 RPM ื-dev-forever ื-70+ ืืืืื ืืืชืืืช build.nvidia.com (ืืขืืจ ืื ืงืืืืช ืืืืช ืืืืืืืช ืชืขืจืืฃ ืืืืจืืช)
- **ืืกืืจืืืืืช ืืืคืืืืืืฆืื ืืขืืืช** โ ืืกืืจืืืืืช ื ืืชืื ืฉืืืืจืช ืืืืืืืืช ืืช ืืกืคืง ืืืืื ืืืื ืืืืชืจ
๐ 5. "ืื ื ืฆืจืื ืืืื ืขื ืฉืขืจ ืืืื ื ืืืืืืืชืืช ืฉืื ืืืืฉื ืื ืืืจืฉืืช"
ืืขืช ืืฉืืคืช ืฉืขืจ AI ืืจืฉืช (LAN, VPS, Docker), ืื ืื ืฉืืฉ ืื ืืช ืืืชืืืช ืืืื ืืฆืจืื ืืช ืืืกืืืื ืื/ืืืกื ืฉื ืืืคืชื. ืืื ืืื ื, ืืืฉืงื API ืืฉืืคืื ืืฉืืืืฉ ืืจืขื, ืืืจืงื ืืืืจื ืื ืืฆืื ืืจืขื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ื ืืืื ืืคืชืืืช API** - ืืฆืืจื, ืกืืืื ืืืืงืฃ ืืื ืกืคืง ืขื ืขืืื `/dashboard/api-manager` ืืืขืืื
- **ืืจืฉืืืช ืืจืืช ืืืื** - ืืืื ืืคืชืืืช API ืืืืืื ืกืคืฆืืคืืื (`openai/*`, ืืคืืกื ืชืืืื ืืืืืื), ืขื ืืืืฆื 'ืืคืฉืจ ืืื/ืืืื'
- **API Endpoint Protection** โ ืืจืืฉ ืืคืชื ืขืืืจ `/v1/models` ืืืกืื ืกืคืงืื ืกืคืฆืืคืืื ืืืจืืฉืื
- **Auth Guard + CSRF Protection** โ ืื ืืกืืืื ืืื ืืืืืื ืื ืืืื ืื ืืืืฆืขืืช ืชืืื ืช `withAuth` + ืืกืืืื ื CSRF
- ** ืืืืื ืงืฆื** - ืืืืืช ืงืฆื ืืคื IP ืขื ืืืื ืืช ืื ืืชื ืื ืืืืืจื
- **ืกืื ืื IP** โ ืจืฉืืืช ืืจืฉืืืช/ืจืฉืืืช ืืกืืืืช ืืืงืจืช ืืืฉื
- **ืืฉืืจ ืืืจืงื ืืืืจื** - ืืืืื ื ืื ืืคืืกื ืื ืืื ืืืื ืืื
- **ืืฆืคื ืช AES-256-GCM** - ืืืฉืืจืื ืืืฆืคื ืื ืืืื ืื ืืื
๐ 6. "ืืกืคืง ืฉืื ื ืคื ืืืืืืชื ืืช ืืจืืืช ืืงืืืื ืฉืื"
ืกืคืงื ืืื ื ืืืืืืชืืช ืขืืืืื ืืืคืื ืืืืชื ืืฆืืืื, ืืืืืืจ ืฉืืืืืช 5xx ืื ืืคืืืข ืืืืืืืช ืงืฆื ืืื ืืืช. ืื ืืคืชื ืชืืื ืืกืคืง ืืืื, ืื ืืืคืจืขืื. ืืื ืืคืกืงืื, ื ืกืืื ืืช ืืืืจืื ืื ืฉื ืื ืขืืืืื ืืงืจืืก ืืช ืืืคืืืงืฆืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืืคืกืง ืืขืืืื ืืื ืืื** โ ืคืชืืื/ืกืืืจื ืืืืืืืืช ืขื ืกืคืื ืื ืืชื ืื ืืืืืจื ืืืชืงืจืจืืช (ืกืืืจ/ืคืชืื/ืืฆื ืคืชืื), ืืืืงืฃ ืืื ืืื ืืื ืืื ืืข ืืืืงืื ืืืืจืืื
- **ืืืืื ืืงืกืคืื ื ืฆืืืื** - ืขืืืืืื ืืชืงืืืื ืื ืืกืืื ืืืืจ
- **ืขืืจ ื ืื ืจืขืืื** - ืืื ื ืขื ืืืืงืก + ืกืืคืืจ ืืคื ื ืกืืคืืช ื ืืกืืื ืืช ืืืืจืืช ืืืงืืื
- **ืฉืจืฉืจืืืช ืืฉืืืืืช Fallback** - ืื ืืกืคืง ืืจืืฉื ื ืืฉื, ื ืืคื ืืืืืืืืช ืืฉืจืฉืจืช ืืื ืืชืขืจืืืช
- **ืืคืกืง ืืฉืืื** - ืืฉืืืช ืืืืืืืืช ืกืคืงืื ืืืฉืืื ืืฉืจืฉืจืช ืืฉืืืืช
- **ืืื ืืืืื ืื ืืืจืืืืช** - ื ืืืืจ ืืื ืคืขืืื, ืืฆืื ืืคืกืง ืืจื, ื ืขืืืืช, ืกืืืืกืืืงืืช ืืืืื, ืืื ืืืืืจ p50/p95/p99
๐ง 7. "ืืืืจืช ืื ืืื ืืื ื ืืืืืืชืืช ืืื ืืืืืขืช ืืืืืจืช ืขื ืขืฆืื"
ืืคืชืืื ืืฉืชืืฉืื ื-Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... ืื ืืื ืฆืจืื ืชืฆืืจื ืฉืื ื (ื ืงืืืช ืงืฆื, ืืคืชื, ืืืื API). ืืืืจื ืืืืฉ ืืขืช ืืืืคืช ืกืคืงืื ืื ืืืืื ืืื ืืืืื ืืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืืื ืืืืืื ืื ืฉื CLI Tools** - ืืฃ ืืืขืืื ืขื ืืืืจื ืืืืืฆื ืืืช ืขืืืจ Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
- **GitHub Copilot Config Generator** โ ืืืืฆืจ `chatLanguageModels.json` ืขืืืจ ืงืื VS ืขื ืืืืจืช ืืืืื ืืืืืช ืืืืื
- **ืืฉืฃ ืืืืืขื** โ ืืืืจื ืืืืจืืช ืืช 4 ืฉืืืื ืืืฉืชืืฉืื ืจืืฉืื ืื
- **ื ืงืืืช ืงืฆื ืืืช, ืื ืืืืืื** - ืืืืจ ืืช `http://localhost:20128/v1` ืคืขื ืืืช, ืืฉ ื-67+ ืกืคืงืื
๐ 8. "ื ืืืื ืืกืืืื ื OAuth ืืืกืคืจ ืกืคืงืื ืื ืืืื ืื"
Claude Code, Codex, Gemini CLI, Copilot - ืืืื ืืฉืชืืฉืื ื-OAuth 2.0 ืขื ืืกืืืื ืื ืฉืคื ืชืืงืคื. ืืคืชืืื ืฆืจืืืื ืืืฆืข ืืืืืช ืืืืฉ ืื ืืืื, ืืืชืืืื ืขื `client_secret is missing`, `redirect_uri_mismatch` ืืืฉืืื ืืฉืจืชืื ืืจืืืงืื. OAuth ื-LAN/VPS ืืขืืืชื ืืืืืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืจืขื ืื ืืกืืืื ืืืืืืื** - ืืกืืืื ื OAuth ืืชืจืขื ื ืื ืืจืงืข ืืคื ื ืคืงืืขืช ืชืืงืฃ
- **OAuth 2.0 (PKCE) ืืืื ื** - ืืจืืื ืืืืืืืืช ืขืืืจ Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow
- ** OAuth ืืจืืื ืืฉืืื ืืช** - ืืกืคืจ ืืฉืืื ืืช ืืื ืกืคืง ืืืืฆืขืืช ืืืืืฅ ืืกืืืื JWT/ID
- **OAuth LAN/ืชืืงืื ืืจืืืง** - ืืืืื IP ืคืจืื ืขืืืจ `redirect_uri` + ืืฆื ืืชืืืช URL ืืื ื ืขืืืจ ืฉืจืชืื ืืจืืืงืื
- **OAuth Behind Nginx** - ืืฉืชืืฉ ื-`window.location.origin` ืืชืืืืืช ืคืจืืงืกื ืืคืืื
- **ืืืจืื OAuth ืืจืืืง** - ืืืจืื ืฉืื ืืืจ ืฉืื ืืืืฉืืจื Google Cloud ื-VPS/Docker
๐ 9. "ืื ื ืื ืืืืข ืืื ืื ื ืืืฆืื ืื ืืืคื"
ืืคืชืืื ืืฉืชืืฉืื ืืืกืคืจ ืกืคืงืื ืืชืฉืืื ืื ืืื ืืื ืจืืืื ืืืืื ืฉื ืืืฆืืืช. ืืื ืกืคืง ืืฉ ืืื ืืืืื ืื ืืฉืื ืืืืื, ืืื ืืื ืชืฆืืื ืืืืืืช. ืขืืืืืช ืืืชื ืฆืคืืืืช ืขืืืืืช ืืืืขืจื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืืื ืืืืื ืื ืฉื ื ืืชืื ืขืืืืืช** - ืืขืงื ืืืจ ืขืืืืืช ืืคื ืืกืืืื ืื ืืืื ืชืงืฆืื ืืื ืกืคืง
- **ืืืืืืช ืชืงืฆืื ืืื ืฉืืื** - ืชืงืจืช ืืืฆืื ืืื ืฉืืื ืฉืืคืขืืื ื ืคืืื ืืืืืืืืช
- **ืชืฆืืจืช ืชืืืืจ ืืคื ืืื** โ ืืืืจืื ืื ืืชื ืื ืืืืืจื ืืื ืืื
- **ืกืืืืกืืืงืช ืฉืืืืฉ ืืื ืืคืชื API** - ืกืคืืจืช ืืงืฉืืช ืืืืชืืช ืืื ืืืจืื ื ืืฉืืืืฉ ืืื ืืคืชื
- **ืืื ืืืืืื ืื ืฉื ืื ืืืืืงืก** - ืืจืืืกื ืกืืืืกืืืงื, ืืืืช ืฉืืืืฉ ืืืืื, ืืืืช ืกืคืงืื ืขื ืืืืื ืืฆืืื ืืืฉืืืื
๐ 10. "ืื ื ืื ืืืื ืืืืื ืฉืืืืืช ืืืขืืืช ืืฉืืืืช AI"
ืืืฉืจ ืฉืืื ื ืืฉืืช, ื-dev ืื ืืืืข ืื ืื ืืืืชื ืืืืืช ืชืขืจืืฃ, ืืกืืืื ืฉืคื ืชืืงืคื, ืคืืจืื ืฉืืื ืื ืฉืืืืช ืกืคืง. ืืืื ืื ืืคืืฆืืื ืขื ืคื ื ืืกืืคืื ืฉืื ืื. ืืื ืฆืคืืื, ืืืชืืจ ืืืืื ืืื ื ืืกืื ืืืขืืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืืื ืืืืื ืื ืฉื ืืืื ืื ืืืืืืื** - 4 ืืจืืืกืืืช: ืืืื ื ืืงืฉืืช, ืืืื ื ืคืจืืงืกื, ืืืื ื ืืืงืืจืช, ืืกืืฃ
- **ืืฆืื ืืืื ืืกืืฃ** - ืืฆืื ืืืื ืืืช ืืกืื ืื ืืจืืื ื ืขื ืจืืืช ืืงืืืืืช ืฆืืข, ืืืืื ืืืืืืืืช, ืืืคืืฉ, ืกืื ืื
- **SQLite Proxy Logs** - ืืืื ืื ืืชืืฉืืื ืฉืฉืืจืืื ืืชืืื ืืืืฉ ืฉื ืืฉืจืช
- **ืืืจืฉ ืืฉืืงืื ืืชืจืืื** - 4 ืืฆืื ื ืืคืื ืืืืื: ืืืจืฉ ืืฉืืงืื (ืชืจืืื ืคืืจืื), ืืืืง ืฆ'ืื (ืืืื ืืฉืื), ืกืคืกื ืืืืงื (ืืฆืืื), ืฆื ืื (ืืืื ืืืช)
- **Request Telemetry** โ ืืืืื p50/p95/p99 + X-Request-Id ืืขืงื
- **ืจืืฉืื ืืืืกืก ืงืืฆืื ืขื ืกืืืื** - ืืืืจื ืืืกืืฃ ืืืื ืืื ืืืืื JSON ืขื ืกืืืื ืืืืกืก ืืืื
- **ืืื ืืืืข ืืขืจืืช** โ `npm run system-info` ืืืฆืจ `system-info.txt` ืขื ืืกืืืื ืืืืื ืฉืื (ืืจืกืช ืฆืืืช, ืืจืกืช OmniRoute, ืืขืจืืช ืืคืขืื, ืืื CLI, ืกืืืืก Docker/PM2). ืฆืจืฃ ืืืชื ืืขืช ืืืืื ืขื ืืขืืืช ืืืืืงื ืืืืืืช.
๐๏ธ 11. "ืคืจืืกื ืืชืืืืงื ืฉื ืืฉืขืจ ืืืจืืืช"
ืืชืงื ื, ืืืืจื ืืชืืืืงื ืฉื ืคืจืืงืกื ืืื ื ืืืืืืชืืช ืืกืืืืืช ืฉืื ืืช (ืืงืืื, VPS, Docker, ืขื ื) ืืื ืขืชืืจืช ืขืืืื. ืืขืืืช ืืื ื ืชืืืื ืืงืืืืื, `EACCES` ืขื ืกืคืจืืืช, ืืชื ืืฉืืืืช ืืฆืืืืช ืืื ืืื ืืื ืคืืืคืืจืืืช ืืืกืืคืืช ืืืืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืืชืงื ื ืืืืืืืช npm** โ `npm install -g omniroute && omniroute` โ ืืืฆืขื
- **Docker Multi-Platform** - ืืงืืจื AMD64 + ARM64 (Apple Silicon, AWS Graviton, Raspberry Pi)
- **Docker Compose Profiles** โ `base` (ืืื ืืื CLI) ื`cli` (ืขื ืงืื ืฉื ืงืืื, Codex, OpenClaw)
- **ืืคืืืงืฆืืืช Electron Desktop** โ ืืคืืืงืฆืื ืืงืืจืืช ืขืืืจ Windows/macOS/Linux ืขื ืืืฉ ืืขืจืืช, ืืคืขืื ืืืืืืืืช, ืืฆื ืื ืืงืืื
- **ืืฆื ืืฆืืืืช ืืคืืฆืืืช** - API ืืืื ืืืืื ืื ืืืฆืืืืช ื ืคืจืืืช ืขืืืจ ืชืจืืืฉืื ืืชืงืืืื (ืคืจืืงืกื ืืคืื, ืจืฉืช ืงืื ืืืื ืจ)
- **Cloud Sync** - ืืืืจืช ืกื ืืจืื ืืื ืืืฉืืจืื ืืืืฆืขืืช Cloudflare Workers
- **ืืืืืื DB** - ืืืืื, ืฉืืืืจ, ืืืฆืื ืืืืืื ืืืืืืื ืฉื ืื ืืืืืจืืช
๐ 12. "ืืืืฉืง ืืื ืืื ืืืืช ืืืื ืืืฆืืืช ืฉืื ืื ืืืืจ ืื ืืืืช"
ืฆืืืชืื ืืืืื ืืช ืฉืืื ื ืืืืจืืช ืื ืืืืช, ืืืืืื ืืืืจืืงื ืืืืื ืืช, ืืกืื ืืืืจืืคื, ื ืืืงืื ืขื ืืืฉืงืื ืืื ืืืืช ืืืื. ืืืกืืื ืฉืคื ืืคืืืชืื ืืช ืืืืืืฅ ืืืืืืืื ืืช ืฉืืืืืช ืืชืฆืืจื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืืื ืืืืืื ืื i18n โ 30 ืฉืคืืช** โ ืื 500+ ืืืงืฉืื ืืชืืจืืืื ืืืื ืขืจืืืช, ืืืืืจืืช, ืื ืืช, ืืจืื ืืช, ืกืคืจืืืช, ืคืื ืืช, ืฆืจืคืชืืช, ืขืืจืืช, ืืื ืืืช, ืืื ืืจืืช, ืืื ืืื ืืืช, ืืืืืงืืช, ืืคื ืืช, ืงืืจืืื ืืช, ืืืืืช, ืืืื ืืืช, ื ืืจืืืืืช, ืคืืื ืืช, ืคืืจืืืืืืช (PT/BR), ืจืืื ืืช, ืจืืกืืช, ืกืืืืงืืช, ืฉืืืืืช, ืชืืืื ืืืช, ืกืืืืงืืช, ืฉืืืืืช, ืกืื ืืช, ืกืืืืงืืช, ืืืืื ืื
- **ืชืืืื ื-RTL** โ ืชืืืื ืืืืื ืืฉืืื ืืขืจืืืช ืืืขืืจืืช
- ** README ืืจืืืื ืฉืคืืช** - 30 ืชืจืืืื ืชืืขืื ืืืืื
- **ืืืจืจ ืฉืคื** - ืกืื ืืืืืืก ืืืืชืจืช ืืืขืืจ ืืืื ืืืช
๐ 13. "ืื ื ืฆืจืื ืืืชืจ ืืฆ'ืื - ืื ื ืฆืจืื ืืืืขืืช, ืชืืื ืืช, ืืืืื"
AI ืื ืื ืจืง ืืฉืืืช ืฆ'ืื. ืืคืชืืื ืฆืจืืืื ืืืฆืืจ ืชืืื ืืช, ืืชืืื ืืืืื, ืืืฆืืจ ืืืืขืืช ืขืืืจ RAG, ืืืจื ืืืืฉ ืืกืืืื ืืืชืช ืชืืื. ืืื API ืืฉ ื ืงืืืช ืงืฆื ืืคืืจืื ืฉืื ืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืืืืขืืช** โ `/v1/embeddings` ืขื 6 ืกืคืงืื ื-9 ืืืืื ืืืขืื
- **ืืฆืืจืช ืชืืื ืืช** โ `/v1/images/generations` ืขื 10 ืกืคืงืื ื-20+ ืืืืื (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
- **ืืงืกื ืืืืืืื** โ `/v1/videos/generations` โ ComfyUI (AnimateDiff, SVD) ื-SD WebUI
- **ืืงืกื ืืืืืืงื** โ `/v1/music/generations` โ ComfyUI (ืคืชืื ืืืืื ืืฆืื, MusicGen)
- **ืชืืืื ืืืืื** โ `/v1/audio/transcriptions` โ Whisper + Nvidia NIM, HuggingFace, Qwen3
- **ืืงืกื ืืืืืืจ** โ `/v1/audio/speech` โ ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3, **Inworld**, **Cartesia**, **PlayHT**, + ืกืคืงืื ืงืืืืื
- **ืื ืืื** โ `/v1/moderations` โ ืืืืงืืช ืืืืืืช ืชืืื
- **ืืืจืื ืืืืฉ** โ `/v1/rerank` โ ืืืจืื ืืืืฉ ืฉื ืจืืืื ืืืืช ืืืกืื
- **Responses API** - ืชืืืื ืืืื `/v1/responses` ืขืืืจ Codex
๐งช 14. "ืืื ืื ืืจื ืืืืืง ืืืืฉืืืช ืืืืืช ืืื ืืืืื"
ืืคืชืืื ืจืืฆืื ืืืขืช ืืืื ืืื ืืื ืืืื ืืืืชืจ ืขืืืจ ืืงืจื ืืฉืืืืฉ ืฉืืื - ืงืื, ืชืจืืื, ืื ืืงื - ืืื ืืืฉืืืื ืืื ืืช ืืื ืืืืืช. ืื ืงืืืืื ืืื eval ืืฉืืืืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืืขืจืืืช LLM** - ืืืืงืช ืกื ืืื ืขื 10 ืืงืจืื ืืขืื ืื ืืจืืฉ ืืืืกืื ืืจืืืช, ืืชืืืืงื, ืืืืืืจืคืื, ืืฆืืจืช ืงืื, ืชืืืืืช ื-JSON, ืชืจืืื, ืกืืืื, ืกืืจืื ืืืืืืช
- **4 ืืกืืจืืืืืช ืืชืืื** โ `exact`, `contains`, `regex`, `custom` (ืคืื ืงืฆืืืช JS)
- **ืกืคืกื ืืืืงื ืืืืจืฉ ืืฉืืงืื ืฉื ืืชืจืื** - ืืืืงืืช ืืฆืืื ืขื ืืกืคืจ ืื ืืกืืช ืืืฆืืืืช ืฆืคืืืืช, ืืฉืืืื ืืื ืกืคืงืื
- ** ืืืืง ืฆ'ืื** - ืืืื ืืฉืื ืืื ืขื ืขืืืื ืชืืืื ืืืืืืืืช
- **ืืขืงื ืื** - ืืจื ืืืื ืืืช ืฉื ืื ืืืงืฉืืช ืืืืจืืืช ืืจื ื-proxy
๐ 15. "ืื ื ืฆืจืื ืืืฆืข ืงื ื ืืืื ืืื ืืืื ืืืฆืืขืื"
ืืื ืฉื ืคื ืืืงืฉืืช ืืื, ืืื ืฉืืืจื ืืืืืื, ืืืชื ืฉืืืืช ืืืืฆืจืืช ืขืืืืืช ืืคืืืืช. ืืื ืืืืคืืื ืฆืื, ืขืืืื ืคืกืืืช ืืงืฉืืช ืืคืืืืช. ืืฉ ืืืื ืืช ืืืืืืช ืืชืขืจืืคืื ืืื ืกืคืง.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืืืืื ืกืื ืื** - ืืืืื ืื-ืฉืืืชื (ืืชืืื + ืกืื ืื) ืืคืืืช ืืช ืืขืืืช ืืืฉืืืื
- **Request Idempotency** โ ืืืื ืื ืืขืช ืืคืืืืืืช ืฉื 5 ืฉื ืืืช ืืืงืฉืืช ืืืืช
- **ืืืืื ืืืืืช ืชืขืจืืฃ** - RPM ืืื ืกืคืง, ืคืขืจ ืืื ืืืื ืืืขืงื ืืจืื ืื-ืืื ืืช
- **ืืืืืืช ืงืฆื ืื ืืชื ืืช ืืขืจืืื** - ืืจืืจืืช ืืืื ืื ืืชื ืืช ืืืืืจื ืืืืืจืืช โ ืืืกื ืขื ืืชืืื
- **ืืืืื ืืคืชื API** - ืืืืื ืื 3 ืฉืืืืช ืืืืฆืืขื ืืืฆืืจ
- **ืืื ืืืืื ืื ืืืจืืืืช ืขื ืืืืืจืื** - ืืื ืืืืืจ p50/p95/p99, ืกืืืืกืืืงืืช ืืืืื, ืืื ืคืขืืื
๐ค 16. "ืื ื ืจืืฆื ืืฉืืื ืืืชื ืืืืช ืืืืื ืืืืคื ืืืืืื"
ืืคืชืืื ืฉืจืืฆืื ืืช ืื ืืชืืืืืช ืืฉืคื ืกืคืฆืืคืืช, ืขื ืืื ืกืคืฆืืคื, ืื ืจืืฆืื ืืืืืื ืืช ืืกืืืื ื ืื ืืงื. ืืืืจื ืื ืืื ืืื/ืืงืฉื ืืื ื ืืขืฉืืช.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- **ืืืจืงืช ืื ืืืืช ืืขืจืืช** - ืื ืืื ืืืืืืืช ืืื ืขื ืื ืืืงืฉืืช
- ** ืืืืืช ืชืงืฆืื ืืืฉื** - ืืงืจืช ืืงืฆืืช ืืกืืืื ืื ืืืืืืื ืืื ืืงืฉื (ืืขืืจ, ืืืืืืื, ืืืชืื ืืืฉืืช, ืืืคืืืื)
- **6 ืืกืืจืืืืืช ื ืืชืื** - ืืกืืจืืืืืช ืืืืืืืืช ืืงืืืขืืช ืืช ืืืคื ืืคืฆืช ืืืงืฉืืช
- **ื ืชื ืชืืืื ืืืืืื** โ ืืคืืกื `provider/*` ื ืืชืืื ืืืืคื ืืื ืื ืืื ืกืคืง
- **ืืคืขื/ืืฉืืช ืฉืืืื ืฉื ืืืืคื** โ ืืืืฃ ืฉืืืืืื ืืฉืืจืืช ืืืื ืืืืืื ืื
- **ืืืืคืช ืกืคืง** โ ืืคืขื/ืืฉืืช ืืช ืื ืืืืืืจืื ืขืืืจ ืกืคืง ืืืืืฆื ืืืช
- **ืกืคืงืื ืืกืืืื** โ ืื ืชืืืื ืกืคืงืื ืกืคืฆืืคืืื ืืืจืืฉืื `/v1/models`
๐งฐ 17. "ืื ื ืฆืจืื ืืื MCP ืืืืืืืช ืืืฆืจ ืืืฉืืจื ืืจืืฉืื ื"
ืฉืขืจื AI ืจืืื ืืืฉืคืื ืืช MCP ืจืง ืืคืจื ืืืฉืื ื ืกืชืจ. ืฆืืืชืื ืฆืจืืืื ืฉืืืช ืคืขืืื ืืืืื ืื ืืชื ืช ืื ืืืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- MCP ืืืคืืข ืืืจืืืกืืืช ืื ืืืื ืฉื ืืื ืืืืืื ืื ืืคืจืืืืงืื ื ืงืืืช ืืงืฆื
- ืืฃ ื ืืืื MCP ืืืขืืื ืขื ืชืืืื, ืืืื, ืืืงืคืื ืืืืงืืจืช
- ืืชืืื ืืืืจื ืืืื ืืช ืขืืืจ `omniroute --mcp` ืืื ืืกื ืืืงืื
๐ง 18. "ืื ื ืฆืจืื ืชืืืืจ A2A ืขื ืกื ืืจืื + ื ืชืืื ืืฉืืืืช ืืจื"
ืืจืืืืช ืขืืืื ืฉื ืกืืื ืืงืืงืืช ืื ืืชืฉืืืืช ืืฉืืจืืช ืืื ืืืืฆืืข ืืจืืื ืืจืื ืืืื ืขื ืืงืจืช ืืืืืจ ืืืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- ื ืงืืืช ืงืฆื A2A JSON-RPC (`POST /a2a`) ืขื `message/send` ื`message/stream`
- ืืืจืืช SSE ืขื ืืคืฆืช ืืฆื ืืกืืฃ
- ืืืฉืงื API ืฉื ืืืืืจ ืืืื ืฉื ืืฉืืืืช ืขืืืจ `tasks/get` ื`tasks/cancel`
๐ฐ๏ธ 19. "ืื ื ืฆืจืื ืืจืืืืช ืฉื ืชืืืื MCP ืืืืชื, ืืฆื ืื ืื ืืฉ"
ืฆืืืชืื ืชืคืขืืืืื ืฆืจืืืื ืืืขืช ืื MCP ืืืืช ืื, ืื ืจืง ืื ื ืืชื ืืืืืข ื-API.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- ืงืืืฅ ืคืขืืืืช ืื ืืืื ืจืืฆื ืขื PID, ืืืชืืืช ืืื, ืชืืืืจื, ืกืคืืจืช ืืืื ืืืฆื ืืืงืฃ
- MCP status API ืืืฉืื ืคืขืืืืช ืื + ืคืขืืืืช ืืืจืื ื
- ืืจืืืกื ืกืืืืก ืืืฉืง ืืฉืชืืฉ ืขืืืจ ืชืืืื/ืืื ืคืขืืื/ืจืขื ื ืืช ืคืขืืืืช ืื
๐ 20. "ืื ื ืฆืจืื ืืืฆืืข ืืื MCP ืฉื ืืชื ืืืืงืืจืช"
ืืืฉืจ ืืืื ืืฉืชื ืื ืืชืฆืืจื ืื ืืคืขืืืื ืคืขืืืืช ืืืฆืขืืืช, ืืฆืืืชืื ืืงืืงืื ืืืขืงื ืคืืจื ืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- ืจืืฉืื ืืืงืืจืช ืืืืื SQLite ืขืืืจ ืงืจืืืืช ืืืื MCP
- ืืกื ื ืื ืืคื ืืื, ืืฆืืื/ืืืฉืืื, ืืคืชื API ืืขืืืื
- ืืืืช ืืืงืืจืช ืืื ืืืืืื ืื + ื ืงืืืืช ืงืฆื ืกืืืืกืืืงืืช ืืืืืืืฆืื
๐ 21. "ืื ื ืฆืจืื ืืจืฉืืืช MCP ืืืืงืฃ ืืื ืืื ืืืจืฆืื"
ืืืงืืืืช ืฉืื ืื ืฆืจืืื ืืืืืช ืืืฉื ืืขืืช ืืจืฉืืืช ืืื ืืืืืืช ืืงืืืืจืืืช ืืืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- 9 ืืืงืคื MCP ืืจืืืจืื ืืืืฉื ืืืืงืจืช ืืืื
- ืืืืคื ืฉื ืืืงืฃ ืื ืจืืืช ืืืืฉืง ืืืฉืชืืฉ ืฉื ื ืืืื MCP
- ืชื ืืืช ืืจืืจืช ืืืื ืืืืื ืขืืืจ ืืื ืขืืืื ืชืคืขืืืืื
โ๏ธ 22. "ืื ื ืฆืจืื ืืงืจืืช ืชืคืขืืืืืช ืืื ืืคืจืืก ืืืืฉ"
ืฆืืืชืื ืืงืืงืื ืืฉืื ืืืื ืืืืจืื ืืืื ืจืืฆื ืืืืื ืืืจืืขืื ืื ืืืจืืขื ืขืืืช.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- ืืืืฃ ืืคืขืื ืืฉืืืืช ืืฉืืจืืช ืืืื ืืืืืื ืื ืฉื MCP
- ืืื ืคืจืืคืืื ืืืกื ืืืืืืืช ืืืื ืืืช ืืืืืจืืช ืืจืืฉ
- ืืคืก ืืช ืืฆื ืืคืกืง ืืืฉืื ืืืืชื ืืื ืคืขืืืืช
๐ 23. "ืื ื ืฆืจืื ื ืจืืืช ืืืืืื ืืืืืจ ืืืืื ืฉื ืืฉืืืืช A2A ืืฉืืืืจ ืื"
ืืื ื ืจืืืช ืฉื ืืืืืจ ืืืื, ืืืจืืขื ืืฉืืืืช ืืืคืืื ืงืฉืื ืืืืืงื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- ืจืืฉืื ืืฉืืืืช/ืกืื ืื ืืคื ืืฆื/ืืืืื ืืช ืขื ืขืืืื
- ืคืืจืื ืขื ืืื ื ืชืื ืื ืฉื ืืฉืืืืช, ืืืจืืขืื ืืืคืฆืื
- ื ืงืืืช ืงืฆื ืืืืืื ืืฉืืืืช ืืคืขืืืช ืืืฉืง ืืฉืชืืฉ ืขื ืืืฉืืจ
๐ 24. "ืื ื ืฆืจืื ืืืื ืืจื ืคืขืืืื ืขืืืจ ืืขืื ืช A2A"
ืืจืืืืช ืขืืืื ืืกืืจืืืื ื ืืืจืฉืืช ืชืืื ื ืชืคืขืืืืช ืืืื ืืืืืจืื ืืืงืืื ืืืืืืจืื ืืืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- ืืื ื ืืจืืื ืคืขืืืื ืืฉืืืืื ืืกืืืืก A2A
- ืืืชืืช ืืืื ืืืืจืื ื ืฉื ืืืฉืืื ืืกืคืืจืืช ืืื ืืืื ื
- ืืจืืืกื ืืื ืืืืื ืื A2A ืื ืืืืจ ืคืขืืืืช ืืืื ืืืช
๐ชช 25. "ืื ื ืฆืจืื ืืืืื ืกืืื ืกืื ืืจืื ืขืืืจ ืืงืืืืช"
ืืงืืืืช ืืืฆืื ืืื ืืืชืืืจืื ืืงืืงืื ืืืื-ื ืชืื ืื ืื ืืชื ืื ืืงืจืืืช ืืืื ื ืืฆืืจื ืืฆืืจืคืืช.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- ืืจืืืก ืกืืื ืืฉืืฃ ื-`/.well-known/agent.json`
- ืืืืืืช ืืืืืื ืืืืช ืืืืฆืืืช ืืืืฉืง ืืืฉืชืืฉ ืื ืืืื
- API ืืกืืืืก A2A ืืืื ืืื ื ืชืื ืื ืฉื ืืืืื ืืืืืืืฆืื
๐งญ 26. "ืื ื ืฆืจืื ืืืืื ืคืจืืืืงืื ื-UX ืฉื ืืืืฆืจ"
ืื ืืฉืชืืฉืื ืื ืืืืืื ืืืืืช ืืฉืืื ืคืจืืืืงืื, ืืืืืืฅ ืืืชืืืื ืืืจืืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- ืืฃ **ื ืงืืืืช ืงืฆื** ืืืืื ืขื ืืจืืืกืืืช ืขืืืจ ื ืงืืืืช Proxy, MCP, A2A ื-API
- ืืืืืคื ืืฆื ืฉืืจืืช ืืืืืข (ืืงืืื/ืื ืืงืืื) ืขืืืจ MCP ื-A2A
- ืงืืฉืืจืื ืืกืงืืจื ืืืืืช ืืืจืืืกืืืช ื ืืืื ืืืขืืืืืช
๐งช 27. "ืื ื ืฆืจืื ืืืืืช ืคืจืืืืงืื ืืงืฆื ืืงืฆื ืขื ืืงืืืืช ืืืืชืืื"
ืืืืงืืช ืืืืื ืืื ื ืืกืคืืงืืช ืืื ืืืืช ืชืืืืืช ืคืจืืืืงืื ืืคื ื ืืฉืืจืืจ.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- ืืืืืช E2E ืืืืชืืืช ืืคืืืงืฆืื ืืืฉืชืืฉืช ืืืขืืจืช ืืงืื MCP SDK ืืืืชืืช
- ืืืืงืืช ืืงืื A2A ืืืืชืืจ, ืืฉืืื, ืืืืจืื, ืืงืื ืืืืื ืืจืืืืช
- ืฆืื ืืฆืืจืืช ืืื ืืืงืืจืช MCP ืืืฉืืืืช A2A APIs
๐ก 28. "ืื ื ืฆืจืื ืฆืคืืื ืืืืืืช ืืื ืืืืฉืงืื"
ืคืืฆืื ืฆืคืืืช ืืคื ืคืจืืืืงืื ืืืฆืจ ืืชืืื ืขืืืืจืื ื-MTTR ืืจืื ืืืชืจ.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- ืืืืืช ืืืืื ืื/ืืืื ืื/ื ืืชืื ืืืืืืื ืืืืฆืจ ืืื
- ืืจืืืืช + ืืืงืืจืช + ืืืืืจืืืช ืืงืฉื ืขื ืคื ื ืฉืืืืช OpenAI, MCP ื-A2A
- APIs ืชืคืขืืืืื ืืกืืืืก ืืืืืืืฆืื
๐ผ 29. "ืื ื ืฆืจืื ืืื ืจืืฆื ืืื ืขืืืจ ืคืจืืงืกื + ืืืื + ืชืืืืจ ืกืืื"
ืืคืขืืช ืฉืืจืืชืื ื ืคืจืืื ืจืืื ืืืืืื ืืช ืืขืืืช ืืชืคืขืืืืช ืืืช ืืฆืื ืืืฉื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- ืคืจืืงืกื ืชืืื OpenAI, ืฉืจืช MCP ืืฉืจืช A2A ืืขืจืืื ืืืช
- ืืืืืช ืืฉืืชืฃ, ืืืกื, ืืืืจ ื ืชืื ืื ืืฆืคืืื
- ืืืื ืืืื ืืืช ืขืงืื ืืื ืืฉืืื ืืืื ืืจืืงืฆืื
๐ 30. "ืื ื ืฆืจืื ืืฉืืื ืืจืืืืช ืขืืืื ืกืืื ืืืช ืืื ืืชืคืฉืืืช ืงืื ืืืง"
ืฆืืืชืื ืืืืืื ืืืืจืืช ืืขืช ืชืคืืจืช ืฉืืจืืชืื ืืชืกืจืืืื ืื-ืืืง ืืจืืืื.
**ืืื OmniRoute ืคืืชืจ ืืช ืื:**
- ืืกืืจืืืืืช ื ืงืืืืช ืงืฆื ืืืืื ืขืืืจ ืืงืืืืช ืืกืืื ืื
- ืืืฉืงื ืืฉืชืืฉ ืืืื ืื ืื ืืืื ืคืจืืืืงืื ืื ืชืืื ืืืืืช ืขืฉื
- ืืกืืืืช ืืืื ืื ืืืืฆืืจ (ืืืืื, ืจืืฉืื, ืืืกื, ืืืืื)
### ืกืคืจื ืืคืขืื ืืืืืื (ืืงืจื ืฉืืืืฉ ืืฉืืืืื)
**Playbook A: ืืงืกืื ืื ืื ืืชืฉืืื + ืืืืื ืืื**
```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: ืขืจืืืช ืงืืืื ืืขืืืช ืืคืกืืช**
```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**
```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: ืกืืื ืืืฆืข ืขื 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
```
---
## ๐ ืืชืื ืืืื ื - ืขืืืช ืชืฆืืจื ืืคืกืืช
> ืืืืจ ืงืืืื AI ืชืื ืืงืืช ื-**$0 ืืืืืฉ**. ืืืจ ืืช ืืืฉืืื ืืช ืืืื ืืืื ืืืื ืืืฉืชืืฉ ืืฉืืืื ืืืืื ื ืฉื **Free Stack**.
| ืฉืื | ืคืขืืื | ืกืคืงืื ืื ื ืขืืืื |
| --- | ----------------------------------------------- | ------------------------------------------------------------------ |
| 1 | ืืชืืืจ **Kiro** (AWS Builder ID OAuth) | ืงืืื ืกืื ืื 4.5, ืืืืงื 4.5 โ **ืืื ืืืืื** |
| 2 | ืืืจ ืืช **iFlow** (Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... โ **ืืื ืืืืื** |
| 3 | ืืืจ **Qwen** (ืงืื ืืืฉืืจ) | qwen3-coder-plus, qwen3-coder-flash... โ **ืืื ืืืืื** |
| 4 | ืืืจ ืืช **Gemini CLI** (Google OAuth) | gemini-3-flash, gemini-2.5-pro โ **180K/mo ืืื ื** |
| 5 | `/dashboard/combos` โ ืชืื ืืช ืขืจืืื ืืื ื ($0)\*\* | Round-robin ืื ืืกืคืงืื ืืืื ื ืืืืืืืืช |
**ืืืื ื ืื IDE/CLI ื:** `http://localhost:20128/v1` ยท ืืคืชื API: `any-string` ยท ืืืฆืข.
> **ืืืกืื ื ืืกืฃ ืืืคืฆืืื ืื (ืื ืืืื ื):** ืืคืชื API ืฉื Groq (30 ืกื"ื ืืื ื), NVIDIA NIM (40 ืกื"ื ืืื ื, 70+ ืืืืื), Cerebras (1M tok/day), ืืคืชื LongCat API (50M tokens/day!), Cloudflare Workers AI (10K Neurons/day, 50+ ืืืืื).
## โก ืืชืืื ืืืืจื
### 1) ืืชืงื ืืืคืขื
```bash
npm install -g omniroute
omniroute
```
> **ืืฉืชืืฉื pnpm:** ืืคืขื ืืช `pnpm approve-builds -g` ืืืืจ ืืืชืงื ื ืืื ืืืคืฉืจ ืกืงืจืืคืืื ืืงืืจืืื ืืื ืืื ืื ืืจืฉืื ืขื ืืื `better-sqlite3` ื`@swc/core`:
>
> ```bash
> pnpm install -g omniroute
> pnpm approve-builds -g # Select all packages โ approve
> omniroute
> ```
ืืื ืืืืืื ืื ื ืคืชื ื-`http://localhost:20128` ืืืชืืืช ื-API ืืืกืืกืืช ืืื `http://localhost:20128/v1`.
| ืคืงืืื | ืชืืืืจ |
| ----------------------- | ----------------------------------------------------- |
| `omniroute` | ืืชืื ืฉืจืช (`PORT=20128`, API ืืืื ืืืืื ืื ืืืืชื ืืฆืืื) |
| `omniroute --port 3000` | ืืืืจ ืืฆืืืช ืงื ืื ืืช/API ื-3000 |
| `omniroute --mcp` | ืืคืขื ืืช ืฉืจืช MCP (ืชืขืืืจืช stdio) |
| `omniroute --no-open` | ืื ืชืคืชื ืืืืืืืืช ืืช ืืืคืืคื |
| `omniroute --help` | ืืฆื ืขืืจื |
ืืฆื ืืฆืืืืช ืืคืืฆืืืช ืืืคืฆืืื ืื:
```bash
PORT=20128 DASHBOARD_PORT=20129 omniroute
# API: http://localhost:20128/v1
# Dashboard: http://localhost:20129
```
### 2) ืืืจ ืกืคืงืื ืืฆืืจ ืืช ืืคืชื ื-API ืฉืื
1. ืคืชื ืืช ืืื ืืืืืื ืื โ `Providers` ืืืืจ ืืคืืืช ืกืคืง ืืื (OAuth ืื ืืคืชื API).
2. ืคืชื ืืช ืืื ืืืืืื ืื โ `Endpoints` ืืฆืืจ ืืคืชื API.
3. (ืืืคืฆืืื ืื) ืคืชื ืืช ืืื ืืืืืื ืื โ `Combos` ืืืืืจ ืืช ืฉืจืฉืจืช ืืืืืคื ืฉืื.
### 3) ืืืื ืืช ืืื ืืงืืืื ืฉืื ืื OmniRoute
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Endpoint page]
Model: if/kimi-k2-thinking (or any provider/model prefix)
```
ืขืืื ืขื Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode ื-SDK ืชืืืื OpenAI.
### 4) ืืคืฉืจ ืืืืืช ืคืจืืืืงืืืื (v2.0)
**MCP (ืขืืืจ ืคืขืืืืช ืืื ืขืืช ืืืื):**
```bash
omniroute --mcp
```
ืืืืจ ืืื ืืืจ ืืช ืืงืื ื-MCP ืฉืื ืืจื `stdio` ืืืืืง ืืืื ืืื:
- `omniroute_get_health`
- `omniroute_list_combos`
**A2A (ืขืืืจ ืืจืืืืช ืขืืืื ืฉื ืกืืื ืืกืืื):**
```bash
curl http://localhost:20128/.well-known/agent.json
```
```bash
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."}]}}'
```
### 5) ืืืช ืืื ืืงืฆื ืืงืฆื (ืืืืืฅ)
```bash
npm run test:protocols:e2e
```
ืืืืื ืื ืืืืชืช ืืจืืืืช ืืืืชืืืช ืฉื MCP ื-A2A ืืื ืืคืืืงืฆืื ืคืืขืืช.
### ืืืืคื: ืืคืขื ืืืืงืืจ
```bash
cp .env.example .env
npm install
PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev
```
---
## ๐ณ ืืืงืจ
OmniRoute ืืืื ืืชืืื ืช Docker ืฆืืืืจืืช ื-[Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
**ืจืืฆื ืืืืจื:**
```bash
docker run -d \
--name omniroute \
--restart unless-stopped \
-p 20128:20128 \
-v omniroute-data:/app/data \
diegosouzapw/omniroute:latest
```
**ืขื ืงืืืฅ ืกืืืื:**
```bash
# Copy and edit .env first
cp .env.example .env
docker run -d \
--name omniroute \
--restart unless-stopped \
--env-file .env \
-p 20128:20128 \
-v omniroute-data:/app/data \
diegosouzapw/omniroute:latest
```
**ืฉืืืืฉ ื-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
```
| ืชืืื ื | ืชื | ืืืื | ืชืืืืจ |
| ------------------------ | -------- | ------ | ---------------------- |
| `diegosouzapw/omniroute` | `latest` | ~250MB | ืืืืืืจื ืืืฆืืื ืืืืจืื ื |
| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | ืืจืกื ื ืืืืืช |
---
## ๐ฅ๏ธ ืืคืืืงืฆืืืช ืฉืืืื ืืขืืืื - ืืืฆื ืื ืืงืืื ืืคืืขื ืชืืื
> ๐ **ืืืฉ!** OmniRoute ืืืื ืืขืช ื**ืืืฉืื ืฉืืืื ืขืืืื ืืงืืจื** ืขืืืจ Windows, macOS ื-Linux.
ืืคืขื ืืช OmniRoute ืืืคืืืงืฆืื ืขืฆืืืืช ืืฉืืืื ืืขืืืื - ืืื ืืกืืฃ, ืืื ืืคืืคื, ืืื ืฆืืจื ืืืื ืืจื ื ืขืืืจ ืืืืื ืืงืืืืื. ืืืคืืืงืฆืื ืืืืกืกืช ืืืงืืจืื ืื ืืืืืช:
- ๐ฅ๏ธ **ืืืื ืืงืืจื** โ ืืืื ืืคืืืงืฆืื ืืืขืืื ืขื ืฉืืืื ืืืฉ ืืืขืจืืช
- ๐ **ืืชืื ืืืืืืื** โ ืืคืขื ืืช OmniRoute ืืื ืืกื ืืืขืจืืช
- ๐ **ืืชืจืืืช ืืงืืืืืช** - ืงืื ืืชืจืืืช ืขื ืืืฆืื ืืืืกื ืื ืืขืืืช ืืกืคืง
- โก **ืืชืงื ื ืืืืืฆื ืืืช** - NSIS (Windows), DMG (macOS), AppImage (Linux)
- ๐ **ืืฆื ืื ืืงืืื** - ืขืืื ืืืฆื ืื ืืงืืื ืืืืืืื ืขื ืฉืจืช ืืฆืืจืฃ
### ืืชืืื ืืืืจื
```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)
```
### ืืืฉ ืืขืจืืช
ืืืฉืจ ืืืืืขืจ, OmniRoute ืื ืืืืฉ ืืืขืจืืช ืฉืื ืขื ืคืขืืืืช ืืืืจืืช:
- ืคืชื ืืช ืืื ืืืืืื ืื
- ืฉื ื ืืฆืืืช ืฉืจืช
- ืฆื ืืืืคืืืงืฆืื
๐ ืชืืขืื ืืื: [**OMNI_TOKEN_153**](electron/README.md)
---
## ๐ฐ ืชืืืืจ ืืืื ืืืืฃ
| ืฉืืื | ืกืคืง | ืขืืืช | ืืืคืืก ืืืกื | ืืืื ืืืืชืจ ืขืืืจ |
| --------------- | --------------------------- | ---------------------------------- | ------------------------ | ------------------------------------------- |
| **๐ณ ืื ืื** | ืงืืื ืงืื (ืคืจื) | 20 ืืืืจ ืืืืืฉ | 5 ืฉืขืืช + ืฉืืืขื | ืืืจ ื ืจืฉืืช |
| | ืงืืืงืก (ืคืืืก/ืคืจื) | $20-200 ืืืืืฉ | 5 ืฉืขืืช + ืฉืืืขื | ืืฉืชืืฉื OpenAI |
| | Gemini CLI | **ืืื ื** | 180K/Mo + 1K/ืืื | ืึผึนื ืึถืึธื! |
| | GitHub Copilot | 10-19 ืืืืจ ืืืืืฉ | ืืืืฉื | ืืฉืชืืฉื GitHub |
| **๐ ืืคืชื API** | NVIDIA NIM | **ืืื ื** (ืคืืชืื ืื ืฆื) | ~40 ืกื"ื | 70+ ืืืืื ืคืชืืืื |
| | ืืืืื | **ืืื ื** (1 ืืืืืื ืืืงื/ืืื) | 60K TPM / 30 RPM | ืืืืืจ ืืขืืื |
| | ืืจืืง | **ืืื ื** (30 ืกื"ื) | 14.4K RPD | ืืืื/ื'ืื ืืืืจื ืืืืืื |
| | DeepSeek V3.2 | $0.27/$1.10 ืืื ืืืืืื | ืืื | ื ืืืืง ืืืืืจ/ืืืืืช ืืืื ืืืืชืจ |
| | xAI Grok-4 ืืืืจ | **$0.20/$0.50 ืืื ืืืืืื** ๐ | ืืื | ืืืืืจื ืืืืชืจ + ืงืจืืืช ืืื, ืืืืืจื ื ืืืื |
| | xAI Grok-4 (ืกืื ืืจืื) | $0.20/$1.50 ืืื ืืืืืื ๐ | ืืื | ืกืคืื ืช ืืืื ืฉื ืืืืืื ื-xAI |
| | ืืืกืืจื | ื ืืกืืื ืืื ื + ืืชืฉืืื | ืชืขืจืืฃ ืืืืื | AI ืืืจืืคืื |
| | OpenRouter | ืชืฉืืื ืืคื ืฉืืืืฉ | ืืื | 100+ ืืืืื ืืืจ. |
| **๐ฐ ืืื** | GLM-5 (ืืจื Z.AI) ๐ | $0.5/1 ืืืืืื | ืื ืืื 10:00 | ืคืื 128K, ืกืคืื ืช ืืืื ืืืืฉื ืืืืชืจ |
| | GLM-4.7 | $0.6/1 ืืืืืื | ืื ืืื 10:00 | ืืืืื ืชืงืฆืืื |
| | MiniMax M2.5 ๐ | $0.3/1 ืืืืืื ืงืื | ืืืืื ืฉื 5 ืฉืขืืช | ื ืืืืง + ืืฉืืืืช ืกืืื |
| | MiniMax M2.1 | $0.2/1 ืืืืืื | ืืืืื ืฉื 5 ืฉืขืืช | ืืืคืฉืจืืช ืืืืื ืืืืชืจ |
| | Kimi K2.5 (Moonshot API) ๐ | ืชืฉืืื ืืคื ืฉืืืืฉ | ืืื | ืืืฉื ืืฉืืจื ื-Monshot API |
| | ืงืืื K2 | 9 $ ืืืืืฉ ืืืจื | 10 ืืืืืื ืืกืืืื ืื ืืืืืฉ | ืขืืืช ืฆืคืืื |
| **๐ ืืื ื** | iFlow | **$0** | ืืื ืืืืื | 5 ืืืืื ืืื ืืืืื |
| | ืงืืื | **$0** | ืืื ืืืืื | 4 ืืืืื ืืื ืืืืื |
| | ืงืืจื | **$0** | ืืื ืืืืื | ืงืืื ืกืื ืื/ืืืืงื (AWS Builder) |
| | LongCat Flash-Lite ๐ | **$0** (50 ืืืืืื ืืืงื ืืืื ๐ฅ) | 1 RPS | ืืืืกื ืืืื ืืืช ืืืืืื ืืืืชืจ ืขื ืคื ื ืืืืจ ืืืจืฅ |
| | ืืืืงืืช AI ๐ | **$0** (ืืื ืฆืืจื ืืืคืชื) | 1 req/15s | GPT-5, ืงืืื, DeepSeek, Llama 4 |
| | Cloudflare Workers AI ๐ | **$0** (10K ื ืืืจืื ืื ืืืื) | ~150 resp/ืืื | 50+ ืืืืื, ืืชืจืื ืขืืืื |
| | Scaleway AI ๐ | **$0** (1 ืืืืืื ืืกืืืื ืื ืืกื ืืื) | ืชืขืจืืฃ ืืืืื | EU/GDPR, Qwen3 235B, Llama 70B |
> ๐ **ืืืืื ืืืฉืื ืฉื ืืกืคื (ืืจืฅ 2026):** ืืฉืคืืช Grok-4 Fast ื-$0.20/$0.50/M (ืืืื ื-1143ms - ืืืืจ ืืืชืจ ื-30% ื-Gemini 2.5 Flash), GLM-5 ืืจื Z.AI ืขื ืคืื ืฉื 128K, ื ืืืืง ืฉื MiniMax M2.5, KimiSeek pr. API ืืฉืืจ.
**๐ก ืขืจืืืช ืืฉืืืืช ืฉื $0 - ืืืืืจื ืืืืื ืืืื ื:**
```
# ๐ Ultimate Free Stack 2026 โ 11 Providers, $0 Forever
Kiro (kr/) โ Claude Sonnet/Haiku UNLIMITED
iFlow (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
```
**ืขืืืช ืืคืกืืช. ืืขืืื ืื ืืคืกืืง ืืงืืื.** ืืืืจ ืืืช ืืืฉืืืืช OmniRoute ืืืช ืืื ืืืฉืืื ืืืืจืื ืืชืจืืฉืื ืืืืคื ืืืืืืื - ืืฃ ืคืขื ืืื ืืืืคื ืืื ืืช.
---
---
## ๐ ืืืืื ืืืื ื โ ืื ืฉืืชื ืืงืื ืืคืืขื
> ืื ืืืืืื ืืืื ืื **100% ืืื ื ืืื ืฆืืจื ืืืจืืืก ืืฉืจืื**. OmniRoute ืื ืชื ืืกืืืืื ืืืืืืืืื ืืื ืืื ืืืฉืจ ืืืกื ืืืช ื ืืืจืช - ืฉืื ืืช ืืืื ืืฉืืืื ืืืชื ืฉืืืจ ืฉื $0.
### ๐ต ืืืืืื ืฉื CLAUDE (ืืจื Kiro โ ืืืื AWS Builder)
| ืืื | ืงืืืืืช | ืืืืื | ืืืืืช ืฉืืขืืจ |
| ------------------- | ------ | ------------- | --------------------- |
| `claude-sonnet-4.5` | `kr/` | **ืืื ืืืืื** | ืืื ืืืกื ืืืืืช ืืืืืืช |
| `claude-haiku-4.5` | `kr/` | **ืืื ืืืืื** | ืืื ืืืกื ืืืืืช ืืืืืืช |
| `claude-opus-4.6` | `kr/` | **ืืื ืืืืื** | ืืืคืืก ืืืจืื ืืจื ืงืืจื |
### ืืืื IFLOW (OAuth ืืืื ื - ืืื ืืจืืืก ืืฉืจืื)
| ืืื | ืงืืืืืช | ืืืืื | ืืืืืช ืฉืืขืืจ |
| ------------------ | ------ | ------------- | -------------- |
| `kimi-k2-thinking` | `if/` | **ืืื ืืืืื** | ืืื ืืืืข ืืืืื |
| `qwen3-coder-plus` | `if/` | **ืืื ืืืืื** | ืืื ืืืืข ืืืืื |
| `deepseek-r1` | `if/` | **ืืื ืืืืื** | ืืื ืืืืข ืืืืื |
| `minimax-m2.1` | `if/` | **ืืื ืืืืื** | ืืื ืืืืข ืืืืื |
| `kimi-k2` | `if/` | **ืืื ืืืืื** | ืืื ืืืืข ืืืืื |
### ๐ก ืืืืืื ืฉื QWEN (ืืืืืช ืงืื ืืืฉืืจ)
| ืืื | ืงืืืืืช | ืืืืื | ืืืืืช ืฉืืขืืจ |
| ------------------- | ------ | ------------- | ------------------- |
| `qwen3-coder-plus` | `qw/` | **ืืื ืืืืื** | ืืื ืืืืข ืืืืื |
| `qwen3-coder-flash` | `qw/` | **ืืื ืืืืื** | ืืื ืืืืข ืืืืื |
| `qwen3-coder-next` | `qw/` | **ืืื ืืืืื** | ืืื ืืืืข ืืืืื |
| `vision-model` | `qw/` | **ืืื ืืืืื** | Multimodal (ืชืืื ืืช) |
### GEMINI CLI (Google OAuth)
| ืืื | ืงืืืืืช | ืืืืื | ืืืืืช ืฉืืขืืจ |
| ------------------------ | ------ | --------------------------- | ----------- |
| `gemini-3-flash-preview` | `gc/` | **180K tok/ืืืืฉ** + 1K ืืืื | ืืืคืืก ืืืืฉื |
| `gemini-2.5-pro` | `gc/` | 180K/ืืืืฉ (ืืจืืื ืืฉืืชืคืช) | ืืืืืช ืืืืื |
### โซ NVIDIA NIM (ืืคืชื API ืืืื ื โ build.nvidia.com)
| ืฉืืื | ืืืืื ืืืืืช | ืืืืืช ืฉืืขืืจ | ืืขืจืืช |
| ------------ | ------------- | ------------ | ------------------------------------------------ |
| ืืื ื (ืคืืชืื) | ืืื ืืืืข ืกืืื | **~40 ืกื"ื** | 70+ ืืืืื; ืืขืืจ ืืืืืืืช ืชืขืจืืคืื ืืืืจืืช ืืืฆืข 2025 |
ืืืืื ืคืืคืืืจืืื ืืืื ื: `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-instruct`, `deepseek/deepseek-r1`
### โช CEREBRAS (ืืคืชื API ืืืื ื โ inference.cerebras.ai)
| ืฉืืื | ืืืืื ืืืืืช | ืืืืืช ืฉืืขืืจ | ืืขืจืืช |
| ---- | -------------------------- | ---------------- | ------------------------------------- |
| ืืื ื | **1 ืืืืืื ืืกืืืื ืื ืืืื** | 60K TPM / 30 RPM | ืืกืงื ืช LLM ืืืืืจื ืืขืืื; ืืชืืคืก ืืื ืืื |
ืืืื ืืืื ื: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b`
### ๐ด GROQ (ืืคืชื API ืืืื ื โ console.groq.com)
| ืฉืืื | ืืืืื ืืืืืช | ืืืืืช ืฉืืขืืจ | ืืขืจืืช |
| ---- | ------------- | ------------ | --------------------------------------- |
| ืืื ื | **14.4K RPD** | 30 ืกื"ื ืืืื | ืืื ืืจืืืก ืืฉืจืื; 429 ืขื ืืืืื, ืื ืืืืื |
ืืืื ืืืื ื: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3`
### ๐ด LONGCAT AI (ืืคืชื API ืืืื ื โ longcat.chat) ๐
| ืืื | ืงืืืืืช | ืืืกื ืืืืืช ืืื ื | ืืขืจืืช |
| ----------------------------- | ------ | ------------------------- | --------------------------------- |
| `LongCat-Flash-Lite` | `lc/` | **50 ืืืืืื ืืกืืืื ืื** ๐ฅ | ืืืืกื ืืืื ืืืช ืืืืืื ืืืืชืจ ืื ืคืขื |
| `LongCat-Flash-Chat` | `lc/` | 500K ืืกืืืื ืื | ืฆ'ืื ืืจืืื ืคื ืืืช |
| `LongCat-Flash-Thinking` | `lc/` | 500K ืืกืืืื ืื | ื ืืืืง / CoT |
| `LongCat-Flash-Thinking-2601` | `lc/` | 500K ืืกืืืื ืื | ืืจืกื ืื ืืืจ 2026 |
| `LongCat-Flash-Omni-2603` | `lc/` | 500K ืืกืืืื ืื | ืืืืืืืืืืื |
> 100% ืืืื ื ืืืื ืืื ืฆืืืืจืืช. ืืืจืฉื ื-[longcat.chat](https://longcat.chat) ืืืืฆืขืืช ืืื"ื ืื ืืืคืื. ืืืคืก ืืื ืืื 00:00 UTC.
### ๐ข POLLINATIONS AI (ืื ื ืืจืฉ ืืคืชื API) ๐
| ืืื | ืงืืืืืช | ืืืืืช ืฉืืขืืจ | ืกืคืง ืืืืืจื |
| ---------- | ------ | ----------- | ---------------- |
| `openai` | `pol/` | 1 req/15s | GPT-5 |
| `claude` | `pol/` | 1 req/15s | ืืื ืชืจืืคื ืงืืื |
| `gemini` | `pol/` | 1 req/15s | Google Gemini |
| `deepseek` | `pol/` | 1 req/15s | DeepSeek V3 |
| `llama` | `pol/` | 1 req/15s | ืืื ืืืื 4 ืฆืืคืืช |
| `mistral` | `pol/` | 1 req/15s | Mistral AI |
> โจ **ืืคืก ืืืืื:** ืืื ืืจืฉืื, ืืื ืืคืชื API. ืืืกืฃ ืืช ืกืคืง ืืืืืงืืช ืขื ืฉืื ืืคืชื ืจืืง ืืื ืืคืขื ืืื.
### ๐ CLOUDFLARE WORKERS AI (ืืคืชื API ืืืื ื โ cloudflare.com) ๐
| ืฉืืื | ื ืืืจืื ืื ืืืืืื | ืฉืืืืฉ ืฉืืื ืขืจื | ืืขืจืืช |
| ---- | --------------- | --------------------------------------- | ---------------------- |
| ืืื ื | **10,000** | ~150 LLM resp / 500s ืืืืื / 15K ืืืืขืืช | ืืชืจืื ืขืืืื, 50+ ืืืืื |
ืืืืื ืคืืคืืืจืืื ืืืื ื: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (ืฉืืข ืืืื ื!), `@cf/qwen/qwen2.5-coder-15b-instruct`
> ืืืจืฉ ืงืื API + ืืืื ืืฉืืื ื-[dash.cloudflare.com](https://dash.cloudflare.com). ืืืกื ืืช ืืืื ืืืฉืืื ืืืืืจืืช ืืกืคืง.
### ๐ฃ SCALEWAY AI (1 ืืืืืื ืืกืืืื ืื ืืืื ื โ scaleway.com) ๐
| ืฉืืื | ืืืกื ืืื ื | ืืืงืื | ืืขืจืืช |
| ---- | --------------------- | ----------------------- | ----------------------------- |
| ืืื ื | **1 ืืืืืื ืืกืืืื ืื** | ๐ซ๐ท ืคืจืื, ืืืืืื ืืืืจืืคื | ืืื ืฆืืจื ืืืจืืืก ืืฉืจืื ืืืืืืืช |
ืืืื ืืืื ื: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324`
> ืชืืื ืืืืืื ืืืืจืืคื/GDPR. ืงืื ืืคืชื API ื-[console.scaleway.com](https://console.scaleway.com).
> **๐ก ืขืจืืืช ืืืื ืืืืช ืืืืืืืืืืืืช (11 ืกืคืงืื, $0 ืื ืฆื):**
>
> ```
> Kiro (kr/) โ Claude Sonnet/Haiku UNLIMITED
> iFlow (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 models UNLIMITED
> Gemini (gemini/) โ Gemini 2.5 Flash โ 1,500 req/day free
> Cloudflare AI (cf/) โ 50+ models โ 10K Neurons/day
> Scaleway (scw/) โ Qwen3 235B, Llama 70B โ 1M free tokens (EU)
> Groq (groq/) โ Llama/Gemma โ 14.4K req/day ultra-fast
> NVIDIA NIM (nvidia/) โ 70+ open models โ 40 RPM forever
> Cerebras (cerebras/) โ Llama/Qwen world-fastest โ 1M tok/day
> ```
## ๐๏ธ ืืฉืืืืช ืชืืืื ืืื ื
> ืชืืื ืื ืืืืื/ืืืืื ืชืืืจืช **$0** โ ืืืืื ื-Deepgram ืขื 200$ ืืืื ื, AssemblyAI 50$ ืืืจื, Groq Whisper ืืืืืื ืืืจืื ืืืชื ืืืืื.
| ืกืคืง | ืงืจืืืืื ืืื ื | ืืืืืื ืืช ืืืืื ืืืืชืจ | ืืืืืช ืฉืืขืืจ |
| ----------------- | --------------------- | --------------------------------------- | ------------------------------ |
| **Deepgram** | **$200 ืืื ื** (ืืจืฉืื) | `nova-3` โ ืืืืืง ืืืื ืืืืชืจ, 30+ ืฉืคืืช | ืืื ืืืืืช RPM ืขื ืืืืืืื ืืืื ื |
| ๐ต **AssemblyAI** | **$50 ืืื ื** (ืืจืฉืื) | `universal-3-pro` โ ืคืจืงืื, ืกื ืืืื ื, PII | ืืื ืืืืืช RPM ืขื ืืืืืืื ืืืื ื |
| ๐ด **ืืจืืง** | **ืืืคืฉื ืื ืฆื** | `whisper-large-v3` โ OpenAI Whisper | 30 ืกื"ื (ืงืฆื ืืืืื) |
**ืฉืืืื ืืืฆืข ื-`/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
```
ืืืืจ ืืื ื-`/dashboard/media` โ ืืจืืืกืืืช **ืชืืืื**: ืืขืื ืื ืงืืืฅ ืฉืืข ืื ืืืืื โ ืืืจ ืืช ื ืงืืืช ืืงืฆื ืืืฉืืืืช ืฉืื โ ืงืื ืชืืืื ืืคืืจืืืื ื ืชืืืื.
## ๐ก ืชืืื ืืช ืขืืงืจืืืช
OmniRoute v2.0 ืื ืืื ืืคืืืคืืจืื ืชืคืขืืืืช, ืื ืจืง ืืคืจืืงืกื ืืืกืจ.
### ๐ ืืืฉ - ืฉืืคืืจืื ืืืฉืจืืช ClawRouter (ืืจืฅ 2026)
| ืชืืื ื | ืื ืื ืขืืฉื |
| ----------------------------- | --------------------------------------------------------------------------------------- |
| โก **Grok-4 Fast Family** | ืืืื xAI ื-$0.20/$0.50/M โ ืืื 1143ms (ืืืืจ ืืืชืจ ื-30% ื-Gemini 2.5 Flash) |
| ๐ง **GLM-5 ืืจื Z.AI** | ืืงืฉืจ ืคืื ืฉื 128K, $0.5/1 ืืืืืื - ืกืคืื ืช ืืืื ืืืืฉื ืืืืชืจ ืืืฉืคืืช GLM |
| ๐ฎ **MiniMax M2.5** | ื ืืืืง + ืืฉืืืืช ืกืืื ื-$0.30/1M โ ืฉืืจืื ืืฉืืขืืชื ื-M2.1 |
| ๐ฏ **ืืื ืงืืจื ืืื ืืื** | ืืื ืืื `toolCalling: true/false` ืืจืืฉืื โ ืืืืืงืืืื ืืืืืช ืขื ืืืืื ืฉืืื ื ืืกืืืืื ืืืืื |
| ๐ **ืืืืื ืืืื ืืช ืจื ืืฉืื ื** | ืืืืืช ืืคืชื PT/ZH/ES/AR ืื ืืงืื AutoCombo โ ืืืืจืช ืืืืื ืืืื ืืืชืจ ืืชืืื ืฉืืื ื ืื ืืื |
| ๐ **ืืกืชืืืืช ืืื ืขืืช ืื ืฆ'ืืจืง** | ืืื ืืืืืจ ืืืืชื ืฉื p95 ืืืื ืืช ืืฉืืืืืช ืฉื ืืงืฉืืช ืืืืช - AutoCombo ืืืื ืื ืชืื ืื ืืคืืขื |
| ๐ **ืืงืฉ ืืืืื ืืคืืืืช** | ืืืื ืืืืื ืืืืื ืืืืกืก-hash - ืืืื ืืจืืื ืกืืื ืื, ืืื ืข ืืืืืื ืืคืืืื |
| ๐ **ืืกืืจืืืืืช ื ืชื ืืชืืืจ** | ืืืฉืง `RouterStrategy` ื ืืชื ืืืจืืื โ ืืืกืฃ ืืืืืงืช ื ืืชืื ืืืชืืืช ืืืฉืืช ืืชืืจ ืชืืกืคืื |
### ๐ ืืจืกื ืงืืืืช 2.0.9+ โ ืืืจืฉ ืืฉืืงืื, CLI ืืืืขืืช ืืฆืืข ื-ACP
| ืชืืื ื | ืื ืื ืขืืฉื |
| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ๐ฎ **ืืืจืฉ ืืฉืืงืื ืืื** | ืืฃ ืืื ืืืืืื ืื ืืืืืงืช ืื ืืื ืืฉืืจืืช - ืืืจืจื ืกืคืง/ืืื/ื ืงืืืช ืงืฆื, ืขืืจื ืืื ืงื, ืกืืจืืืื ื, ืืืืื, ืชืืืื |
| ๐ **CLI ืืชืืืช ืืืืขืืช ืืฆืืข** | ืกืืจ ืืืชืจืช/ืืืฃ ืืคื ืกืคืง ืืื ืืืชืืื ืืชืืืืช CLI ืืงืืจืืืช - ืืืืฃ ืืคื ืกืคืง ืืืืืจืืช > ืืืืื. **IP ื-proxy ืฉืื ื ืฉืืจ** |
| ๐ค **ืชืืืื ื-ACP (ืคืจืืืืงืื ืืงืื ืฉื ืกืืื)** | ืืืืื ืกืืื CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw + 9 ื ืืกืคืื), ืืืฉืจ ืชืืืื, ื ืงืืืช ืงืฆื `/api/acp/agents` |
| ๐ค **ืืื ืืืืืื ืื ืฉื ืกืืื ื ื-ACP** | ื ืืคืื ืืืืื โบ ืืฃ ืกืืื ืื - ืจืฉืช ืฉื 14 ืกืืื ืื ืขื ืกืืืืก ืืชืงื ื, ืืจืกื, ืืืคืก ืกืืื ืืืชืื ืืืฉืืช ืขืืืจ ืื ืืื CLI. ืืฉืชืืฉื **OpenCode** ืืงืืืื ืืคืชืืจ "ืืืจื opencode.json" ืฉืืืฆืจ ืืืืืืืืช ืชืฆืืจื ืืืื ื ืืฉืืืืฉ ืขื ืื ืืืืืื ืืืืื ืื. |
| ๐ง **ืืื ืืืชืื ืืืฉืืช `apiFormat` ื ืืชืื** | ืืืืืื ืืืชืืืื ืืืฉืืช ืขื `apiFormat: "responses"` ื ืืชืืื ืืขืช ืืืืื ืื ืืชืจืื ื-API ืฉื Responses |
| ๐ข **ืืืืื ืกืืืืช ืขืืืื ืืงืืืงืก** | ืกืืืืืช ืขืืืื ืืจืืืืช ืฉื Codex ืืื ืืืืจ ืืืงืืจืื ื - OAuth ืืคืจืื ื ืืื ืืื ืืืืืจืื ืืคื ืืืื ืกืืืืช ืขืืืื |
| ๐ **ืขืืืื ืืืืืืื ืฉื ืืืงืืจืื ืื** | ืืคืืืงืฆืืืช ืฉืืืื ืืขืืืื ืืืืงืช ืขืืืื ืื + ืืชืงื ื ืืืืืืืืช ืืืคืขืื ืืืืฉ |
### ๐ค ืคืขืืืืช ืกืืื ืืคืจืืืืงืื (v2.0)
| ืชืืื ื | ืื ืื ืขืืฉื |
| ------------------------------------- | ------------------------------------------------------------------------------------------------ |
| ๐ง **ืฉืจืช MCP (16 ืืืื)** | ืืื IDE/ืกืืื ืืืืฆืขืืช 3 ืืขืืจืืช: stdio, SSE (`/api/mcp/sse`), HTTP ื ืืชื ืืืืจืื (`/api/mcp/stream`) |
| ๐ค **ืฉืจืช A2A (JSON-RPC + SSE)** | ืืืฆืืข ืืฉืืืืช ืกืืื ืืกืืื ืขื ืืจืืืืช ืกื ืืจืื ืืืจืืื |
| ๐งญ **ืืฃ ื ืงืืืืช ืงืฆื ืืืืืืืช** | ืืฃ ื ืืืื ืขื ืืจืืืกืืืช ืขื ืืจืืืกืืืช Endpoint Proxy, MCP, A2A ื-API |
| ๐๏ธ **ืืคืขื/ื ืืจืื ืฉืืจืืชืื** | ืืชืื ืืคืขืื/ืืืืื ืขืืืจ MCP ื-A2A ืขื ืขืืืื ืืืืืจืืช (ืืจืืจืช ืืืื: ืืืื) |
| ๐ฐ๏ธ ** MCP Runtime Heartbeat** | ืกืืืืก ืชืืืื ืืืืชื (pid, uptime, ืืื ืคืขืืืืช ืื, ืชืืืืจื, ืืฆื ืืืงืฃ) |
| ๐ **ืืกืืื ืืืงืืจืช MCP** | ืืืื ื ืืืงืืจืช ื ืืชื ืื ืืกืื ืื ืขื ืืฆืืื/ืืืฉืืื ืืฉืืื ืืคืชื |
| ๐ **ืืืืคืช ืืืงืฃ MCP** | 9 ืืจืฉืืืช ืืืงืฃ ืคืจืื ืืืช ืืืืฉื ืืืืงืจืช ืืืื |
| ๐ก **ื ืืืื ืืืืืจ ืืืื ืฉื ืืฉืืืืช A2A** | ืจืฉืื/ืกื ื ืืฉืืืืช, ืืืืงืช ืืืจืืขืื/ืืคืฆืื, ืืืืื ืืฉืืืืช ืคืืขืืืช |
| ๐ **ืืืืื ืืจืืืก ืกืืื** | `/.well-known/agent.json` ืืืืืื ืืืืืืื ืฉื ืืืงืื |
| ๐งช **ืจืชืืช ืืืืงืช ืคืจืืืืงืื E2E** | ืืจืืืช ืืงืื MCP SDK + A2A ืืืืชืืช ื-`test:protocols:e2e` |
| โ๏ธ **ืืงืจืืช ืชืคืขืืืืืช** | ืืฉืืืืช ืืืจืจืื, ืืืืช ืคืจืืคืืื ืืืกื, ืืคืก ืืคืกืงืื ืืืฉืื ืืงืจื ืืื |
### ๐ง ื ืืชืื ืืืืืืขืื
| ืชืืื ื | ืื ืื ืขืืฉื |
| ----------------------------- | ------------------------------------------------------------ |
| ๐ฏ **Smart 4-tier Fallback** | ืืกืืื ืืืืืืื: ืื ืื โ ืืคืชื API โ ืืื โ ืืื ื |
| ๐ **ืืขืงื ืืืกืืช ืืืื ืืืช** | ืกืคืืจืช ืืกืืืื ืื ืืื + ืืืคืืก ืกืคืืจื ืืืืืจ ืืื ืกืคืง |
| ๐ **ืชืจืืื ืคืืจืื** | OpenAI โ ืงืืื โ ืืื ืชืืืืื โ ืชืืืืืช ืขื ืืืจืืช ืืืืืืช ืืกืืืื |
| ๐ฅ **ืชืืืื ืืจืืืื ืืฉืืื ืืช** | ืืกืคืจ ืืฉืืื ืืช ืืื ืกืคืง ืขื ืืืืจื ืืืื |
| ๐ **ืจืขื ืื ืืกืืืื ืืืืืืื** | ืืกืืืื ื OAuth ืืชืจืขื ื ืื ืืืืืืืืช ืขื ื ืืกืืื ืืืืจ |
| ๐จ **ืฉืืืืืื ืืืชืืืื ืืืฉืืช** | 6 ืืกืืจืืืืืช ืืืืื + ืืงืจืช ืฉืจืฉืจืช ื ืคืืื |
| ๐ **ื ืชื ืชืืืื ืืืืืื** โโ | `provider/*` ื ืืชืื ืืื ืื |
| ๐ง **ืืฉืืื ืืงืจืืช ืชืงืฆืื** | ืืืืืืช ืืขืืจ, ืืืืืืื, ืืืชืื ืืืฉืืช ืืืกืชืืืืช |
| ๐ **ืืื ืื ืืื** | ืืืืืืช ืืื ืื ืืืืืจื ืืืื ืืช + ืืืื ืืืชืื ืืืฉืืช |
| โก **ืืฉืคืื ืืจืงืข** | ื ืชื ืืฉืืืืช ืจืงืข ืืขืืืคืืช ื ืืืื ืืืืืื ืืืืื ืืืชืจ |
| ๐งช **ื ืืชืื ืืื ืืืืข ืืืฉืืืืช** | ืืืืจื ืืืืืืืืช ืฉื ืืืื ืืคื ืกืื ืชืืื (ืงืืืื/ืืืื/ื ืืชืื/ืกืืืื) |
| ๐ฌ **ืืืจืงืช ืืขืจืืช ืืืืืืช** | ืืงืจืืช ืืชื ืืืืช ืืืืืืืืช ืืืฉืื ืืืืคื ืขืงืื |
| ๐ **ืชืืืืืช API ืฉื ืชืืืืืช** | ืชืืืื ืืืื `/v1/responses` ืขืืืจ Codex ืืืจืืืืช ืขืืืื ืืชืงืืืืช |
### ๐ต ืืืฉืงื API ืจื-ืืืืืืืื
| ืชืืื ื | ืื ืื ืขืืฉื |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ๐ผ๏ธ **ืืฆืืจืช ืชืืื ืืช** | `/v1/images/generations` ืขื ืขื ื ืืืืงืื ืขืืจืคืืื ืืงืืืืื |
| ๐ **ืืืืขืืช** | `/v1/embeddings` ืืืืคืืฉ ืืฆืื ืืจืืช RAG |
| ๐ค **ืชืืืื ืืืืื** | `/v1/audio/transcriptions` โ 7 ืกืคืงืื (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), ืืืืื ืฉืคื ืืืืืืื, ืชืืืื ื-MP4/MP3/WAV |
| ๐ **ืืงืกื ืืืืืืจ** | `/v1/audio/speech` โ 10 ืกืคืงืื (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) ืขื ืืืืขืืช ืฉืืืื ื ืืื ืืช |
| ๐ฌ **ืืฆืืจืช ืืืืื** | `/v1/videos/generations` (ืืจืืืืช ืขืืืื ืฉื ComfyUI + SD WebUI) |
| ๐ต **ืืืจ ืืืืืืงื** | `/v1/music/generations` (ืืจืืืืช ืขืืืื ืฉื ComfyUI) |
| ๐ก๏ธ **ืื ืืื** | `/v1/moderations` ืืืืงืืช ืืืืืืช |
| ๐ **ืืืจืื ืืืืฉ** | `/v1/rerank` ืขืืืจ ื ืืงืื ืจืืืื ืืืืช |
| ๐ **ืืืคืืฉ ืืืื ืืจื ื** ๐ | `/v1/search` โ 5 ืกืคืงืื (Serper, Brave, Perplexity, Exa, Tavily), 6,500+ ืืื ื/ืืืืฉ, ืืฉื ืืืืืืื, ืืืืื |
### ๐ก๏ธ ืืืกื, ืืืืืื ืืืืฉื
| ืชืืื ื | ืื ืื ืขืืฉื |
| ------------------------------------ | --------------------------------------------------------------------------------- |
| ๐ **ืืคืกืงืื ืืขืืืื** | ื ืกืืขื/ืืชืืืฉืฉืืช ืืื ืืื ืขื ืืงืจืืช ืกืฃ |
| ๐ฏ **ืืืืื ืืืืขืื ืื ืงืืืืช ืงืฆื** | ืืืืืื ืืืชืืืื ืืืฉืืช ืืฆืืืจืื ืขื ื ืงืืืืช ืงืฆื ื ืชืืืืช + ืคืืจืื API |
| ๐ก๏ธ **ืขืืจ ื ืื ืจืขืืื** | ืืื ืืช Mutex + ืกืืคืืจ ืืืืจืืขื ื ืืกืืื ืืืืจ/ืืจื |
| ๐ง **ืกืื ืื + ืืืืื ืืชืืื** | ืืคืืชืช ืขืืืช/ืืืืืจ ืขื ืฉืชื ืฉืืืืช ืืืืื |
| โก **ืืงืฉ ืืืืคืืื ืฆืื** | ืืืื ืืื ื ืืฉืืืคื |
| ๐ **ืืืืฃ ืืืืขืืช ืืฆืืข TLS** | ืืืืขืช ืืฆืืข TLS ืืืืืช ืืคืืคื - **ืืคืืืชื ืืช ืืืืื ืืจืืืืืื ืืกืืืื ืืืฉืืื ืืช** |
| ๐ **CLI ืืชืืืช ืืืืขืืช ืืฆืืข** | ืชืืื ืืชืืืืช ืืงืืจืืืช ืฉื ืืงืฉืช CLI - **ืืคืืืช ืืช ืกืืืื ืืืกืืื ืชืื ืฉืืืจื ืขื IP proxy** |
| ๐ **ืกืื ืื IP** | ืฉืืืื ืืจืฉืืืช ืืืืชืจืื/ืืืืงืื ืขืืืจ ืคืจืืกืืช ืืฉืืคืืช |
| ๐ **ืืืืืืช ืชืขืจืืคืื ืื ืืชื ืืช ืืขืจืืื** | ืืืืืืช ืืืืืืืืช/ืืจืืช ืกืคืง ืื ืืชื ืืช ืืืืืจื ืขื ืืชืืื |
| ๐ **ื ืืืื ืืคืชืืืช API + ืืืงืฃ** | ืื ืคืงื/ืกืืืื ืืคืชื ืืืืืื ืืืงืจืืช ืืืื/ืกืคืง |
| ๐ก๏ธ **ืืืื `/models`** | ืืืฉืืจ ืืืคืฆืืื ืื ืืืกืชืจืช ืกืคืง ืขืืืจ ืงืืืื ืืืืื |
### ๐ ืืืืืช ืชืฆืคืืช ืื ืืชืื
| ืชืืื ื | ืื ืื ืขืืฉื |
| ------------------------------------ | ---------------------------------------------- |
| ๐ **ืืงืฉื + ืจืืฉืื ืคืจืืงืกื** | ืืงืฉื/ืชืฉืืื ืืืื ืืจืืฉืื ืคืจืืงืกื |
| ๐ **ืืื ืืืืื ืื ืฉื ืืืื ืื ืืืืืืื** | ืชืฆืืืืช ืืงืฉื, ืคืจืืงืกื, ืืืงืืจืช ืืืกืืฃ ืืขืืื ืืื |
| ๐ **ืืงืฉ ืืืืืจืื** | ืืืืื p50/p95/p99 ืืืขืงื ืืืจ ืืงืฉืืช |
| ๐ฅ **ืืื ืืืืื ืื ืืืจืืืืช** | ืืื ืคืขืืื, ืืฆืื ืืคืกืง, ื ืขืืืืช, ืกืืืืกืืืงืืช ืืืืื |
| ๐ฐ **ืืขืงื ืขืืืืืช** | ืืงืจืืช ืชืงืฆืื ืื ืจืืืช ืชืืืืจ ืืคื ืืื |
| ๐ **ืืืืืืช ืฉื ืื ืืืืืงืก** | ืชืืื ืืช ืฉืืืืฉ ืืืืื/ืกืคืง ืืชืฆืืืืช ืืืื |
| ๐งช **ืืกืืจืช ืืขืจืื** | ืืืืงืช ืกื ืืื ืขื ืืกืืจืืืืืช ืืชืืื ืื ืืชื ืืช ืืืืืจื |
### โ๏ธ ืคืจืืกื ืืคืืืคืืจืื
| ืชืืื ื | ืื ืื ืขืืฉื |
| ---------------------------------- | ------------------------------------------------ |
| ๐ **ืคืจืืก ืืื ืืงืื** | ืกืืืืืช Localhost, VPS, Docker, ืขื ื |
| ๐พ **ืกื ืืจืื ืขื ื** | ืกื ืืจืื ืชืฆืืจื ืืืืฆืขืืช Cloud Worker |
| ๐ **ืืืืื/ืฉืืืืจ** | ืืจืืืืช ืืฆืื/ืืืื ืืืชืืืฉืฉืืช ืืืกืื |
| ๐ง **ืืฉืฃ ืืขืืืื ืืืืืก** | ืืชืงื ื ืืืืจืืช ืืคืขืื ืจืืฉืื ื |
| ๐ง **ืืื ืืืืืื ืื ืฉื ืืื CLI** | ืืืืจื ืืืืืฆื ืืืช ืืืื ืงืืืื ืคืืคืืืจืืื |
| ๐ฎ **ืืืจืฉ ืืฉืืงืื ืืื** | ืืืืง ืื ืกืคืง/ืืื/ื ืงืืืช ืงืฆื ืืืื ืืืืืื ืื |
| ๐ **CLI Fingerprint Toggle** | ืืชืืืช ืืืืขืช ืืฆืืข ืืื ืกืคืง ืืืืืจืืช > ืืืืื |
| ๐ **i18n (30 ืฉืคืืช)** | ืืื ืืืืื ืื ืืื + ืชืืืื ืืฉืคืช ืืกืืืื ืขื ืืืกืื RTL |
| ๐งน **ื ืงื ืืช ืื ืืืืืื** | ื ืืงืื ืจืฉืืืช ืืืืื ืืืืืฆื ืืืช ืืคืจืื ืืกืคืง |
| ๐ **ืชืื ืืืช ืืืืืื** | ืชืื ืืืช GitHub ืกืื ืืจืืืืช ืขืืืจ ืืืืื ืืชืืื ืืช |
| ๐ **ืกืคืจืืืช ื ืชืื ืื ืืืชืืืื ืืืฉืืช** | `DATA_DIR` ืืืืื ืขืืืจ ืืืงืื ืืืกืื |
### ืชืืื ื Deep Deep
#### ืกืชืืจื ืืืื ืขื ืืงืจืช ืขืืืืืช ืืขืฉืืช
```txt
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
```
ืืืฉืจ ืืืืกื, ืืชืขืจืืฃ ืื ืืืจืืืืช ื ืืฉืืื, OmniRoute ืขืืืจ ืืืืืืืืช ืืืืขืื ืืื ืืื ืืขืืจ ืืื ื.
#### ื ืืืื ืคืจืืืืงืื ืืืื ืื ืืชื ืืชืคืขืื
- MCP + A2A ื ืืชื ืื ืืืืืื ืืืืฉืง ืืืฉืชืืฉ ืืืืกืืืื (ืื ืืืกืชืจืื)
- ืืืฉืงื API ืฉื ืกืืืืก ืคืจืืืืงืื ืืืฉืคืื ื ืชืื ืื ืชืคืขืืืืื ืืืื (`/api/mcp/*`, `/api/a2a/*`)
- ืืืืืช ืืืืื ืื ืืืืืื ืคืขืืืืช ืขืืืจ ืคืขืืืืช ืืื 2 (ืืืืคืืช ืืฉืืืืืช, ืืืคืืกื ืืคืกืงืื, ืืืืื ืืฉืืืืช)
#### ืืชืจืื + ืืจืืืช ืขืืืื ืฉื ืืืืืช
ืืืืจ ืืืชืจืื ืืืื:
- **ืืืจืฉ ืืฉืืงืื**: ืืงืฉ ืืืืงืืช ืืจื ืกืคืืจืืฆืื
- **ืืืืง ืฆ'ืื**: ืืงืฉื/ืชืืืื ืืืื ืืืื ืืฉืื
- **ืกืคืกื ืืืื**: ืืงืจืื ืืจืืืื ืืจืืฆื ืืืช
- **ืฆื ืื**: ืชืฆืืืช ืชื ืืขื ืืืื ืืืช
ืื ืืกืฃ ืืืืืช ืคืจืืืืงืื ืขื ืืงืืืืช ืืืืชืืื ืืืืฆืขืืช `npm run test:protocols:e2e`.
> ๐ **[MCP Server README](open-sse/mcp-server/README.md)** - ืืคื ืื ืืืื, ืชืฆืืจืืช IDE ืืืืืืืืช ืืงืื
>
> ๐ **[A2A Server README](src/lib/a2a/README.md)** โ ืืืืื ืืืืช, ืฉืืืืช JSON-RPC, ืกืืจืืืื ื ืืืืืืจ ืืืื ืฉื ืืฉืืืืช
## ๐งช ืืขืจืืืช (ืืขืจืืืช)
OmniRoute ืืืื ืืกืืจืช ืืขืจืื ืืืื ืืช ืืืืืงืช ืืืืืช ืชืืืืช LLM ืืื ืกื ืืืืื. ืืฉ ืืืื ืืจื **Analytics โ Evals** ืืืื ืืืืืื ืื.
### ืกื ืืืืื ืืืื ื
"OmniRoute Golden Set" ืื ืืขื ืืจืืฉ ืืืื ืืงืจื ืืืืงื ืขืืืจ:
- ืืจืืืช, ืืชืืืืงื, ืืืืืืจืคืื, ืืฆืืจืช ืงืื
- ืชืืืืืช ืืคืืจืื JSON, ืชืจืืื, ืืคืงืช ืกืืืื
- ืกืืจืื ืืืืืืชื (ืชืืื ืืืืง), ืกืคืืจื, ืืืืืื ืืืืืื ื
### ืืกืืจืืืืืช ืืขืจืื
| ืืกืืจืืืื | ืชืืืืจ | ืืืืื |
| ---------- | ------------------------------------------ | -------------------------------- |
| `exact` | ืืคืื ืืืื ืืืชืืื ืืืืืง | `"4"` |
| `contains` | ืืคืื ืืืื ืืืืื ืชืช ืืืจืืืช (ืื ืชืืื ืจืืฉืืืช) | `"Paris"` |
| `regex` | ืืคืื ืืืื ืืืชืืื ืืืคืืก ืืจืงืก | `"1.*2.*3"` |
| `custom` | ืคืื ืงืฆืืืช JS ืืืชืืืช ืืืืืจื true/false | `(output) => output.length > 10` |
---
## ๐ ืืืจืื ืืชืงื ื
### ืืืืจืช ืคืจืืืืงืื (MCP + A2A)
๐งฉ ืืืืจืช MCP (ืคืจืืืืงืื ืืงืฉืจ ืืื)
ืืชืื ืืขืืจืช MCP ืืืฆื stdio:
```bash
omniroute --mcp
```
ืืจืืืช ืืืืืช ืืืืืฆืช:
1. ืืืจ ืืช ืืงืื ื-MCP ืฉืื ืืจื stdio.
2. ืืคืขื ืืช `omniroute_get_health`.
3. ืืคืขื ืืช `omniroute_list_combos`.
4. ืคืชื ืืช `/dashboard/mcp` ืืื ืืืฉืจ ืคืขืืืืช ืื, ืคืขืืืืช ืืืืงืืจืช.
ืืืฉืงื API ืฉืืืืฉืืื ืืืืืืืฆืื:
- `GET /api/mcp/status`
- `GET /api/mcp/tools`
- `GET /api/mcp/audit`
- `GET /api/mcp/audit/stats`
๐ค ืืืืจืช A2A (ืกืืื2ืกืืื)
ืืื ืืช ืืกืืื:
```bash
curl http://localhost:20128/.well-known/agent.json
```
ืฉืื ืืฉืืื:
```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."}]}}'
```
ื ืื ืืช ืืืืืจ ืืืืื:
- `GET /api/a2a/status`
- `GET /api/a2a/tasks`
- `GET /api/a2a/tasks/:id`
- `POST /api/a2a/tasks/:id/cancel`
ืืืฉืง ืืฉืชืืฉ ืชืคืขืืื:
- `/dashboard/a2a` ืืฆืคืืื ืืืฉืืื/ืืฆื/ืืจื ืืคืขืืืืช ืขืฉื
๐งช ืืืืืช ืคืจืืืืงืื ืืงืฆื ืืงืฆื
ืืืช ืืช ืฉื ื ืืคืจืืืืงืืืื ืขื ืืงืืืืช ืืืืชืืื:
```bash
npm run test:protocols:e2e
```
ืื ืืืืช:
- ืืืืืจ/ืจืฉืืื/ืืชืงืฉืจืืช ืืืงืื MCP SDK
- ืืืืื/ืฉืื/ืืืจืื/ืงืื/ืืืืื A2A
- ืืืืงืช ืืฆืืืช ื ืชืื ืื ืืืืฉืงื API ืฉื ืืืงืืจืช MCP ืื ืืืื ืืฉืืืืช A2A
๐ณ ืกืคืงื ืื ืืืื
### ืงืื ืงืืื (ืคืจื/ืืงืก)
```bash
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
```
**ืืืค ืืงืฆืืขื:** ืืฉืชืืฉ ื-Opus ืืืฉืืืืช ืืืจืืืืช, ืืกืื ื ืืืืืจืืช. OmniRoute ืขืืงื ืืืจ ืืืกื ืืื ืืื!
### OpenAI Codex (ืคืืืก/ืคืจื)
```bash
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 (5 ืฉืขืืช + ืฉืืืขื)
ืืื ืืฉืืื Codex ืืฉ ืืขืช ืืืืคืช ืืืื ืืืช ื-`Dashboard -> Providers`:
- `5h` (ืืืคืขื/ืืืื): ืืืืคืช ืืืื ืืืช ืกืฃ ืืืืื ืฉื 5 ืฉืขืืช.
- `Weekly` (ืืืคืขื/ืืืื): ืืืืคืช ืืืื ืืืช ืกืฃ ืืืืื ืืฉืืืขื.
- ืืชื ืืืืช ืกืฃ: ืืืฉืจ ืืืื ืืืคืขื ืืืืข ื->=90% ืฉืืืืฉ, ืืืฉืืื ืืื ืืืื.
- ืืชื ืืืืช ืกืืืื: OmniRoute ืื ืชื ืืืืืืืืช ืืืฉืืื ื-Codex ืืืฉืืจ ืืื.
- ืืชื ืืืืช ืืืคืืก: ืืืฉืจ ืืืื ืฉื ืืกืคืง `resetAt` ืขืืืจ, ืืืฉืืื ืืืืืจ ืืืืืช ืืฉืืจ ืืืืคื ืืืืืืื.
ืชืจืืืฉืื:
- `5h ON` + `Weekly ON`: ืืืืื ืขื ืืืฉืืื ืืืฉืจ ืืื ืืืืืื ืืช ืืืืข ืืกืฃ.
- `5h OFF` + `Weekly ON`: ืจืง ืฉืืืืฉ ืฉืืืขื ืืืื ืืืกืื ืืช ืืืฉืืื.
- `5h ON` + `Weekly OFF`: ืจืง ืฉืืืืฉ ืฉื 5 ืฉืขืืช ืืืื ืืืกืื ืืช ืืืฉืืื.
- `resetAt` ืขืืจ: ืืืฉืืื ื ืื ืก ืืืืฉ ืืกืื ืืืืคื ืืืืืืื (ืืื ืืคืขืื ืืืืฉ ืืื ืืช).
### Gemini CLI (180K ืืืื ื ืืืืืฉ!)
```bash
Dashboard โ Providers โ Connect Gemini CLI
โ Google OAuth
โ 180K completions/month + 1K/day
Models:
gc/gemini-3-flash-preview
gc/gemini-2.5-pro
```
**ืืขืจื ืืืื ืืืืชืจ:** ืฉืืืช ืืื ื ืขื ืงืืช! ืืฉืชืืฉ ืืื ืืคื ื ืฉืืืืช ืืชืฉืืื.
### GitHub Copilot
```bash
Dashboard โ Providers โ Connect GitHub
โ OAuth via GitHub
โ Monthly reset (1st of month)
Models:
gh/gpt-5
gh/claude-4.5-sonnet
gh/gemini-3-pro
```
๐ ืกืคืงื ืืคืชื API
### NVIDIA NIM (ืืืฉื ืืืคืชืืื ืืืื ื - 70+ ืืืืื)
1. ืืืจืฉื: [build.nvidia.com](https://build.nvidia.com)
2. ืงืื ืืคืชื API ืืืื ื (ืืืื 1000 ืงืจืืืืื ืืืกืงื)
3. ืืื ืืืืื ืื โ ืืืกืฃ ืกืคืง โ NVIDIA NIM:
- ืืคืชื API: `nvapi-your-key`
**ืืืืื:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` ืืขืื 50+
**ืืืค ืืงืฆืืขื:** API ืชืืื OpenAI - ืขืืื ืืฆืืจื ืืืงื ืขื ืชืจืืื ืืคืืจืื ืฉื OmniRoute!
### DeepSeek
1. ืืืจืฉื: [platform.deepseek.com](https://platform.deepseek.com)
2. ืงืื ืืคืชื API
3. ืืื ืืืืื ืื โ ืืืกืฃ ืกืคืง โ DeepSeek
**ืืืืื:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
### Groq (ืจืื ืืื ื ืืืื ื!)
1. ืืืจืฉื: [console.groq.com](https://console.groq.com)
2. ืงืื ืืคืชื API (ืืืื ืฉืืืช ืืื ื)
3. ืืื ืืืืื ืื โ ืืืกืฃ ืกืคืง โ Groq
**ืืืืื:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
**ืืืค ืืงืฆืืขื:** ืืกืงื ืืืืจื ืืืืืื - ืืืื ืืืืชืจ ืืงืืืื ืืืื ืืืช!
### OpenRouter (100+ ืืืืื)
1. ืืืจืฉื: [openrouter.ai](https://openrouter.ai)
2. ืงืื ืืคืชื API
3. ืืื ืืืืื ืื โ ืืืกืฃ ืกืคืง โ OpenRouter
**ืืืืื:** ืืืฉื ื-100+ ืืืืื ืืื ืืกืคืงืื ืืืืืืื ืืืืฆืขืืช ืืคืชื API ืืืื.
๐ฐ ืกืคืงืื ืืืืื (ืืืืื)
### GLM-4.7 (ืืืคืืก ืืืื, $0.6/1 ืืืืืื)
1. ืืืจืฉื: [Zhipu AI](https://open.bigmodel.cn/)
2. ืงืื ืืคืชื API ื-Coding Plan
3. ืืื ืืืืื ืื โ ืืืกืฃ ืืคืชื API:
- ืกืคืง: `glm`
- ืืคืชื API: `your-key`
**ืืฉืชืืฉ:** `glm/glm-4.7`
**ืืืค ืืืงืฆืืขื ืื:** ืชืืื ืืช ืงืืืื ืืฆืืขื ืืืกื ืฉื 3ร ืืขืืืช ืฉื 1/7! ืืืคืืก ืื ืืื 10:00 ืืืืงืจ.
### MiniMax M2.1 (ืืืคืืก ืฉื 5 ืฉืขืืช, $0.20/1 ืืืืืื ืืืืจ)
1. ืืืจืฉื: [MiniMax](https://www.minimax.io/)
2. ืงืื ืืคืชื API
3. ืืื ืืืืื ืื โ ืืืกืฃ ืืคืชื API
**ืืฉืชืืฉ:** `minimax/MiniMax-M2.1`
**Pro Tip:** Cheapest option for long context (1M tokens)!
### Kimi K2 (ืืืจื ืฉื $9 ืืืืืฉ)
1. ืืืจืฉื: [Moonshot AI](https://platform.moonshot.ai/)
2. ืงืื ืืคืชื API
3. ืืื ืืืืื ืื โ ืืืกืฃ ืืคืชื API
**ืืฉืชืืฉ:** `kimi/kimi-latest`
**Pro Tip:** Fixed $9/month for 10M tokens = $0.90/1M effective cost!
๐ FREE Providers (Emergency Backup)
### iFlow (5 ืืืืื ืืืื ื ืืืืฆืขืืช OAuth)
```bash
Dashboard โ Connect iFlow
โ iFlow 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 ืืืืื ืืืื ื ืืืืฆืขืืช ืงืื ืืืฉืืจ)
```bash
Dashboard โ Connect Qwen
โ Device code authorization
โ Unlimited usage
Models:
qw/qwen3-coder-plus
qw/qwen3-coder-flash
```
### ืงืืจื (ืงืืื ืืืื ื)
```bash
Dashboard โ Connect Kiro
โ AWS Builder ID or Google/GitHub
โ Unlimited usage
Models:
kr/claude-sonnet-4.5
kr/claude-haiku-4.5
```
๐จ Create 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
```
### ืืืืื 2: ืืื ื ืืืื (ืขืืืช ืืคืก)
```
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
### ืกืื IDE
```
Settings โ Models โ Advanced:
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [from OmniRoute dashboard]
Model: cc/claude-opus-4-6
```
### ืงืืื ืงืื
ืืฉืชืืฉ ืืืฃ **ืืื CLI** ืืืื ืืืืืื ืื ืืืืืจืช ืชืฆืืจื ืืืืืฆื ืืืช, ืื ืขืจืื ืืช `~/.claude/settings.json` ืืืืคื ืืื ื.
### Codex CLI
```bash
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"
```
### OpenClaw
**ืืคืฉืจืืช 1 - ืืื ืืืืื ืื (ืืืืืฅ):**
```
Dashboard โ CLI Tools โ OpenClaw โ Select Model โ Apply
```
**ืืคืฉืจืืช 2 โ ืืื ื:** ืขืจืื `~/.openclaw/openclaw.json`:
```json
{
"models": {
"providers": {
"omniroute": {
"baseUrl": "http://127.0.0.1:20128/v1",
"apiKey": "sk_omniroute",
"api": "openai-completions"
}
}
}
}
```
> **ืืขืจื:** OpenClaw ืขืืื ืจืง ืขื OmniRoute ืืงืืื. ืืฉืชืืฉ ื-`127.0.0.1` ืืืงืื ื-`localhost` ืืื ืืื ืืข ืืขืืืช ืืจืืืืืฆืื ืฉื 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
**ืฉืื 1:** ืืืกืฃ OmniRoute ืืกืคืง ืืืชืื ืืืฉืืช:
```bash
opencode
/connect
# Select "Other" โ Enter ID: "omniroute" โ Enter your OmniRoute API key
```
**ืฉืื 2:** ืฆืืจ/ืขืจืื ืืช `opencode.json` ืืฉืืจืฉ ืืคืจืืืงื ืฉืื:
```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)" }
}
}
}
}
```
**ืฉืื 3:** ืืืจ ืืช ืืืื ื-OpenCode:
```bash
/models
# Select any OmniRoute model from the list
```
> **ืืืค:** ืืืกืฃ ืื ืืื ืืืื ืื ืงืืืช ืืงืฆื OmniRoute `/v1/models` ืฉืื ืืืงืืข `models`. ืืฉืชืืฉ ืืคืืจืื `provider/model-id` ืืืื ืืืืืื ืื ืฉื OmniRoute ืฉืื.
---
## ๐ ืคืชืจืื ืืขืืืช
ืืืฅ ืืื ืืืจืืื ืืช ืืืืจืื ืืคืชืจืื ืืขืืืช
**"ืืืื ืืฉืคื ืื ืกืืคืง ืืืืขืืช"**
- ืืืฆืชื ืืืกืช ืืกืคืง โ ืืืืง ืืช ืขืืงื ืืืืกืืช ืฉื ืืื ืืืืืื ืื
- ืคืชืจืื: ืืฉืชืืฉ ื-combo fallback ืื ืขืืืจ ืืฉืืื ืืืื ืืืชืจ
**ืืืืืช ืชืขืจืืคืื**
- ืืืกืช ืื ืืืื ื ืืืจืช โ Fallback ื-GLM/MiniMax
- ืืืกืฃ ืืฉืืืืช: `cc/claude-opus-4-6 โ glm/glm-4.7 โ if/kimi-k2-thinking`
**ืคื ืชืืงืคื ืฉื ืืกืืืื OAuth**
- ืจืขื ืื ืืืืืืื ืขื ืืื OmniRoute
- ืื ืืืขืืืช ื ืืฉืืืช: ืืื ืืืืื ืื โ ืกืคืง โ ืืชืืืจ ืืืืฉ
**ืขืืืืืช ืืืืืืช**
- ืืืืง ืกืืืืกืืืงืช ืฉืืืืฉ ืืืื ืืืืืื ืื โ ืขืืืืืช
- ืืืืฃ ืืช ืืืื ืืจืืฉื ื-GLM/MiniMax
- ืืฉืชืืฉ ืืฉืืื ืืื ืืืช (Gemini CLI, iFlow) ืขืืืจ ืืฉืืืืช ืื ืงืจืืืืืช
**ืืฆืืืืช ืืื ืืืืืื ืื/API ืฉืืืืืช**
- `PORT` ืืื ืืฆืืืช ืืืกืืก ืืงื ืื ืืช (ืืืฆืืืช API ืืืจืืจืช ืืืื)
- `API_PORT` ืขืืงืฃ ืจืง ืืืืื API ืชืืื OpenAI
- `DASHBOARD_PORT` ืขืืงืฃ ืจืง ืืช ืืื ืืืืืื ืื/ืืืืื Next.js
- ืืืืจ ืืช `NEXT_PUBLIC_BASE_URL` ืืืจืื ืืฉืืืื/ืืชืืืช ืืืชืจ ืืฆืืืืจืืช ืฉืื (ืขืืืจ ืืชืงืฉืจืืืืช ืืืืจืืช ื-OAuth)
**ืฉืืืืืช ืกื ืืจืื ืืขื ื**
- ืืื `BASE_URL` ื ืงืืืืช ืืืืคืข ืืจืืฆื ืฉืื
- ืืืช `CLOUD_URL` ื ืงืืืืช ืื ืงืืืช ืืงืฆื ืืฆืคืืื ืฉืื ืืขื ื
- ืฉืืืจ ืขื ืขืจืื `NEXT_PUBLIC_*` ืืืืฉืจืื ืขื ืขืจืื ืฆื ืืฉืจืช
**ืืื ืืกื ืืจืืฉืื ื ืื ืขืืืืช**
- ืืืืง ืืช `INITIAL_PASSWORD` ื-`.env`
- ืื ืื ืืืืืจืช, ืกืืกืืช ืืืืคื ืืื `123456`
**ืืื ืืืื ื ืืงืฉืืช**
- ืืืืจ `ENABLE_REQUEST_LOGS=true` ื-`.env`
**ืืืืงืช ืืืืืจ ืืจืื "ืื ืืืงื" ืขืืืจ ืกืคืงืื ืชืืืื OpenAI**
- ืกืคืงืื ืจืืื ืืื ื ืืืฉืคืื ื ืงืืืช ืงืฆื `/models`
- OmniRoute v1.0.6+ ืืืื ืืืืืช ืืืืจ ืืืืฆืขืืช ืืฉืืืช ืฆ'ืื
- ืืื ืฉืืชืืืช ืืืชืจ ืืืกืืกืืช ืืืืืช ืืช ืืกืืืืช `/v1`
### ๐ OAuth ืืฉืจืช ืืจืืืง
> **โ ๏ธ ืืฉืื ืืืฉืชืืฉืื ืืืจืืฆืื OmniRoute ื-VPS, Docker ืื ืื ืฉืจืช ืืจืืืง**
#### ืืืืข Antigravity / Gemini CLI OAuth ื ืืฉื ืืฉืจืชืื ืืจืืืงืื?
ืกืคืงื **Antigravity** ื**Gemini CLI** ืืฉืชืืฉืื ื-**Google OAuth 2.0**. Google ืืืจืฉืช ืฉื-`redirect_uri` ืืืจืืืช OAuth ืชืชืืื ืืืืืง ืืืื ื-URI ืืจืฉืืืื ืืจืืฉ ื-Google Cloud Console ืฉื ืืืคืืืงืฆืื.
ืืืฉืืจื ื-OAuth ืืืฆืืจืคืื ื-OmniRoute ืจืฉืืืื **ืขืืืจ `localhost` ืืืื**. ืืืฉืจ ืืชื ื ืืืฉ ืื OmniRoute ืืฉืจืช ืืจืืืง (ืืืฉื `https://omniroute.myserver.com`), Google ืืืื ืืช ืืืืืืช ืืืืฆืขืืช:
```
Error 400: redirect_uri_mismatch
```
#### ืคืชืจืื: ืืืืจ ืืช ืืืฉืืจื OAuth ืืฉืื
ืขืืื ืืืฆืืจ **OAuth 2.0 Client ID** ื-Google Cloud Console ืขื URI ืฉื ืืฉืจืช ืฉืื.
#### ืฉืื ืืืจ ืฉืื
**1. ืคืชื ืืช Google Cloud Console**
ืขืืืจ ืื: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)
**2. ืฆืืจ ืืืื ืืงืื ืืืฉ OAuth 2.0**
- ืืืฅ ืขื **"+ Create Credentials"** โ **"OAuth client ID"**
- ืกืื ืืืฉืื: **"ืืืฉืื ืืื ืืจื ื"**
- ืฉื: ืื ืื ืฉืืชื ืืืื (ืืืฉื `OmniRoute Remote`)
**3. ืืืกืฃ URI ืืืจืฉืื ืืืคื ืื ืืืืฉ**
ืืฉืื **"ืืชืืืืช URI ืืืจืฉืืช ืืืคื ืื ืืืืฉ"**, ืืืกืฃ:
```
https://your-server.com/callback
```
> ืืืืฃ ืืช `your-server.com` ืืืืืืื ืื ื-IP ืฉื ืืฉืจืช ืฉืื (ืืืื ืืช ืืืฆืืื ืืืืืช ืืฆืืจื, ืืืฉื `http://45.33.32.156:20128/callback`).
**4. ืฉืืืจ ืืืขืชืง ืืช ืืืืฉืืจืื**
ืืืืจ ืืืฆืืจื, Google ืชืฆืื ืืช **ืืืืื ืืืงืื** ืืืช **ืกืื ืืืงืื**.
**5. ืืืืจ ืืฉืชื ื ืกืืืื**
ื-`.env` ืฉืื (ืื ืืฉืชื ื ืกืืืืช 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. ืืคืขื ืืืืฉ ืืช OmniRoute**
```bash
# npm:
npm run dev
# Docker:
docker restart omniroute
```
**7. ื ืกื ืืืชืืืจ ืฉืื**
ืืื ืืืืื ืื โ ืกืคืงืื โ ืื ืื ืืืืื (ืื Gemini CLI) โ OAuth
Google ืชืคื ื ืืขืช ืืจืืื ืื `https://your-server.com/callback`.
---
#### ืขืงืืคื ืืื ืืช (ืืื ืืืฉืืจืื ืืืชืืืื ืืืฉืืช)
ืื ืืื ื ืจืืฆื ืืืืืืจ ืืืฉืืจืื ืืฉืื ืืขืช, ืืชื ืขืืืื ืืืื ืืืฉืชืืฉ ื**ืืจืืืช ืืชืืืช ืืืชืจ ืืืื ืืช**:
1. OmniRoute ืคืืชื ืืช ืืชืืืช ืืืชืจ ืืืจืฉืื ืฉื Google
2. ืืืืจ ืืืจืฉืื, Google ืื ืกื ืืืคื ืืช ืืืืฉ ืื `localhost` (ืฉื ืืฉื ืืฉืจืช ืืืจืืืง)
3. **ืืขืชืง ืืช ืืชืืืช ืืืชืจ ืืืืื** ืืกืจืื ืืืชืืืืช ืฉื ืืืคืืคื ืฉืื (ืื ืื ืืืฃ ืื ื ืืขื)
4. ืืืืง ืืช ืืชืืืช ืืืชืจ ืืฉืื ืืืืฆื ืืืืืื ืืืืืืจ ืฉื OmniRoute
5. ืืืฅ ืขื **"ืืชืืืจ"**
> ืื ืขืืื ืืืืืื ืฉืงืื ืืืจืฉืื ืืืชืืืช ื-URL ืืืงื ืืื ืงืฉืจ ืื ืืฃ ืืืคื ืื ืืืืฉ ื ืืขื.
---
๐ง๐ท Versรฃo em Portuguรชs
#### ืืื ืืคืฉืจ ืืขืฉืืช ืื ืื ืืืืื / CLI ืืื ืชืืืืื ืขื ืฉืืจืืชืื ืืจืืืงืื?
ืฉืืืืฉ ื-**Antigravity** ื-**Gemini CLI** ืืฉืืืืฉ ื-**Google OAuth 2.0** ืขืืืจ ืืืื ืืืงื. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs prรฉ-cadastradas no Google Cloud Console do aplicativo.
As credenciais OAuth embutidas no OmniRoute estรฃo cadastradas **apenas para `localhost`**. Quando vocรช acessa o OmniRoute em um servidor remoto (ืืืืืื: `https://omniroute.meuservidor.com`), o Google rejeita a autenticaรงรฃo com:
```
Error 400: redirect_uri_mismatch
```
#### ืคืชืจืื: ืืืืจ ืืช ืืชืฆืืจื ืฉื OAuth
ืงืจื ืืืืืง ืืช **OAuth 2.0 Client ID** ืืื Google Cloud Console com a URI do seu service.
#### ืคืกื ืืคืก
**1. ืืืฉื ื-Google Cloud Console**
ืืืจื: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)
**2. Crie um novo OAuth 2.0 ืืืื ืืงืื**
- ืืืฅ ืขื **"+ ืฆืืจ ืืืฉืืจืื"** โ **"ืืืืื ืืงืื OAuth"**
- ืืืคื ืื ืืคืืืงืืืื: **"ืืืฉืื ืืื ืืจื ื"**
- ืฉื: escolha qualquer nome (ืืืืืื: `OmniRoute Remote`)
**3. Adicone ื-URI ืืืจืฉืื ืืืคื ืื ืืืืฉ**
ืืื ืงืืคื **"ืืชืืืืช URI ืืืจืฉืืช ืืืคื ืื ืืืืฉ"**, adicione:
```
https://seu-servidor.com/callback
```
> Substitua `seu-servidor.com` pelo domรญnio ืื IP do seu servidor (ืืืื porta se necessรกrio, ืืืฉื: `http://45.33.32.156:20128/callback`).
**4. ืฉืืืจ ืืช ืืขืืชืง ื-credenciais**
ืืครณืก ืงืจืืืจ, o Google mostrarรก o **ืืืืื ืืงืื** ืื **ืกืื ืืงืื**.
**5. ืืืืจ ื-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**
ืืื ืืืืื ืื โ ืกืคืงืื โ ืื ืื ืืืืื (ืื Gemini CLI) โ OAuth
Agora o Google redirecionarรก corretamente para `https://seu-servidor.com/callback` e autenticaรงรฃo funcionarรก.
---
#### ืืื ื ืคืชืจืื ืืขืงืืคืช ืืืขืื
Se nรฃo quiser criar credenciais prรณprias agora, ainda รฉ possรญvel usar o fluxo **manual de URL**:
1. O OmniRoute abrirรก a URL de autorizaรงรฃo do Google
2. Apรณs vocรช autorizar, o Google tentarรก redirecionar para `localhost` (que falha no servidor remoto)
3. **ืืขืชืง ืืชืืืช URL ืืืื** da barra de endereรงo do seu ืืคืืคื (mesmo que a pรกgina nรฃo carregue)
4. Cole essa URL no campo que aparece no modal de conexรฃo do OmniRoute
5. ืืืฅ ืขื **"ืืชืืืจ"**
> ืคืชืจืื ืขืงืืคืช ืืืขืื ืื ืงืื ืืืืืืื ืฉื ืืชืืืช ื-URL ืื ืขืฆืืืืช ืืืคื ืืช ืืช ืืืฉืืื ืื ืื.
---
## ๐ ๏ธ Tech Stack
ืืืฅ ืืื ืืืจืืื ืืช ืคืจืื ืืืกื ืืช ืืืื ืืืืืื
- **ืืื ืจืืฆื**: Node.js 18โ22 LTS (โ ๏ธ Node.js 24+ **ืื ื ืชืื** - `better-sqlite3` ืงืืฆืื ืืื ืืจืืื ืืงืืจืืื ืืื ื ืชืืืืื)
- **ืฉืคื**: TypeScript 5.9 โ **100% TypeScript** ืขื ืคื ื `src/` ื`open-sse/` (ืืคืก `any` ืืืืืืื ืืืื ืืื v2.0)
- **ืืกืืจืช**: Next.js 16 + React 19 + Tailwind CSS 4
- **ืืกื ื ืชืื ืื**: LowDB (JSON) + SQLite (ืืฆื ืืืืืื + ืืืื ื proxy + ืืืงืืจืช MCP + ืืืืืืช ื ืืชืื)
- **ืกืืืืืช**: Zod (ืืืืืช ืืื MCP I/O, ืืืื API)
- **ืคืจืืืืงืืืื**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
- **ืกืืจืืืื ื**: ืืืจืืขืื ืฉื ืฉืืื ืขื ืืื ืฉืจืช (SSE)
- **ืืืฉืืจ**: OAuth 2.0 (PKCE) + JWT + ืืคืชืืืช API + ืืจืฉืื ืืืืงืฃ MCP
- **ืืืืงืืช**: ืจืฅ ืืืืงื ืฉื Node.js + Vitest (900+ ืืืืงืืช ืืืื ืืืืื, ืืื ืืืจืฆืื, E2E)
- **CI/CD**: ืคืขืืืืช GitHub (ืคืจืกืื ืืืืืืื ืฉื npm + Docker Hub ืืฉืืจืืจ)
- **ืืชืจ**: [omniroute.online](https://omniroute.online)
- **ืืืืื**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
- **ืืืงืจ**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
- **ืืืกื**: ืืคืกืง ืืขืืืื, ืืืืื ืืงืกืคืื ื ืฆืืืื, ืขืืจ ื ืื ืจืขืืื, ืืืืฃ TLS, ืจืืคืื ืขืฆืื ืืฉืืืืช ืืืืืืืืช
---
## ๐ ืชืืขืื
| ืืกืื | ืชืืืืจ |
| ---------------------------------------------- | -------------------------------------------------------- |
| [User Guide](docs/USER_GUIDE.md) | ืกืคืงืื, ืฉืืืืืื, ืฉืืืื CLI, ืคืจืืกื |
| [API Reference](docs/API_REFERENCE.md) | ืื ื ืงืืืืช ืืงืฆื ืขื ืืืืืืืช |
| [MCP Server](open-sse/mcp-server/README.md) | 16 ืืื MCP, ืืืืจืืช IDE, ืืงืืืืช Python/TS/Go |
| [A2A Server](src/lib/a2a/README.md) | ืคืจืืืืงืื JSON-RPC 2.0, ืืืืื ืืืืช, ืกืืจืืืื ื, ื ืืืื ืืฉืืืืช |
| [Auto-Combo Engine](docs/auto-combo.md) | ื ืืงืื 6 ืืืจืืื, ืืืืืืช ืืฆื, ืจืืคืื ืขืฆืื |
| [Troubleshooting](docs/TROUBLESHOOTING.md) | ืืขืืืช ืืคืชืจืื ืืช ื ืคืืฆืื |
| [Architecture](docs/ARCHITECTURE.md) | ืืจืืืืงืืืจืช ืืขืจืืช ืืคื ืื |
| [Contributing](CONTRIBUTING.md) | ืืขืจื ืคืืชืื ืืื ืืืืช |
| [OpenAPI Spec](docs/openapi.yaml) | ืืคืจื OpenAPI 3.0 |
| [Security Policy](SECURITY.md) | Vulnerability reporting and security practices |
| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | ืืืจืื ืฉืื: ืืืืจืืช VM + nginx + Cloudflare |
| [Features Gallery](docs/FEATURES.md) | ืกืืืจ ืืืืชื ืืืื ืืืืืื ืื ืขื ืฆืืืืื ืืกื |
| [Release Checklist](docs/RELEASE_CHECKLIST.md) | ืฉืืื ืืืืืช ืืคื ื ืฉืืจืืจ |
---
## ๐บ๏ธ ืืคืช ืืจืืื
ื-OmniRoute ืืฉ **210+ ืชืืื ืืช ืืชืืื ื ืืช** ืืืืจื ืฉืืื ืคืืชืื ืืจืืืื. ืืืื ืชืืืื ืืืคืชื:
| ืงืืืืจืื | ืชืืื ืืช ืืชืืื ื ืืช | ืืืืจื |
| --------------------- | --------------- | ---------------------------------------------------------------------------------------- |
| ๐ง **ื ืืชืื ืืืืืืขืื** | 25+ | ื ืืชืื ืขื ืืื ืืืืืืจ ืื ืืื ืืืืชืจ, ื ืืชืื ืืืืกืก ืชืืื, ืืืืงื ืืืงืืืช ืฉื ืืืกื, ืืืืจืช ืืฉืืื P2C |
| ๐ **ืืืืื ืืชืืืืืช** | 20+ | ืืงืฉืืช SSRF, ืืกืืืื ืฉื ืืืฉืืจืื, ืืืืืช ืงืฆื ืืื ื ืงืืืช ืงืฆื, ืืืงืฃ ืืคืชื ื ืืืื |
| ๐ **ืฆืคืืืช** | 15+ | ืืื ืืืจืฆืื ืฉื OpenTelemetry, ื ืืืืจ ืืืกืืช ืืืื ืืืช, ืืขืงื ืขืืืืืช ืืื ืืื |
| ๐ **ืฉืืืืื ืกืคืงืื** | 20+ | ืจืืฉืื ืืืืืื ืืื ืืืื, ืฆืื ืื ืกืคืงืื, Codex ืืจืืื ืืฉืืื ืืช, ื ืืชืื ืืืกืช Copilot |
| โก **ืืืฆืืขืื** | 15+ | Dual cache layer, prompt cache, response cache, streaming keepalive, batch API |
| ๐ **ืืขืจืืช ืืงืืืืืืช** | 10+ | WebSocket API, ืืขืื ื ืืืืจืช ืฉื ืชืฆืืจื, ืื ืืช ืชืฆืืจื ืืืืืจืช, ืืฆื ืืกืืจื |
### ๐ ืืงืจืื
- ๐ **ืฉืืืื OpenCode** - ืชืืืื ืืกืคืง ืืงืืจื ืขืืืจ IDE ืงืืืื AI ืฉื OpenCode
- ๐ **TRAE Integration** โ ืชืืืื ืืืื ืืืกืืจืช ืืคืืชืื ืฉื TRAE AI
- ๐ฆ **ืืฆืืื API** - ืขืืืื ืืฆืืื ืืกืื ืืจืื ื ืขืืืจ ืืงืฉืืช ืืืืืช ืืืืื
- ๐ฏ **ื ืืชืื ืืืืกืก ืชืืื** โ ืืงืฉืืช ื ืืชืื ืืืืืกืกืืช ืขื ืชืืื ืืืื ื ืชืื ืื ืืืชืืืื ืืืฉืืช
- ๐ฐ **ืืกืืจืืืืืช ืืขืืืช ืื ืืืื ืืืืชืจ** โ ืืืจ ืืืืืืืืช ืืช ืืกืคืง ืืืืื ืืืื ืืืืชืจ
> ๐ ืืคืจืื ืชืืื ื ืืืืื ืืืื ืื ื-[**OMNI_TOKEN_342**](docs/new-features/) (217 ืืคืจืืื ืืคืืจืืื)
---
## ๐ฅ ืชืืจืืื
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
### ืืืฆื ืืชืจืื
1. ืืืื ืืช ืืืืืจ
2. ืฆืืจ ืืช ืขื ืฃ ืืชืืื ื ืฉืื (`git checkout -b feature/amazing-feature`)
3. ืืฆืข ืืช ืืฉืื ืืืื ืฉืื (`git commit -m 'Add amazing feature'`)
4. ืืืฃ ืืกื ืืฃ (`git push origin feature/amazing-feature`)
5. ืคืชืื ืืงืฉืช ืืฉืืื
ืจืื [CONTRIBUTING.md](CONTRIBUTING.md) ืืื ืืืืช ืืคืืจืืืช.
### ืฉืืจืืจ ืืจืกื ืืืฉื
```bash
# Create a release โ npm publish happens automatically
gh release create v2.0.0 --title "v2.0.0" --generate-notes
```
---
## ๐ ืืืกืืืจืืืช ืืืืืื
## ืฆืืคืื ืืืืืืื ืืืืจื ืืื
## [](https://starchart.cc/diegosouzapw/OmniRoute)
## ๐ ืชืืืืช
ืชืืื ืืืืืืช ื**[9router](https://github.com/decolua/9router)** ืืืช **[decolua](https://github.com/decolua)** - ืืคืจืืืงื ืืืงืืจื ืฉืืืืื ืืฉืจืื ืืืืื ืืื. OmniRoute ืืื ื ืขื ืืืกืืก ืืืืืื ืืื ืขื ืชืืื ืืช ื ืืกืคืืช, ืืืฉืงื API ืจื-ืืืืืืืื ืืฉืืชืื ืืื ืฉื TypeScript.
ืชืืื ืืืืืืช ื**[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** - ืืืืฉืื ืืืงืืจื ืฉื Go ืฉืืืฉ ืืฉืจืื ืืืฆืืืช JavaScript ืืื.
---
## ๐ ืจืืฉืืื
ืจืืฉืืื MIT - ืจืื [LICENSE](LICENSE) ืืคืจืืื.
---