# User Guide (á ááá)
đ **Languages:** đşđ¸ [English](../../../../guides/USER_GUIDE.md) ¡ đ¸đŚ [ar](../../../ar/docs/guides/USER_GUIDE.md) ¡ đŚđż [az](../../../az/docs/guides/USER_GUIDE.md) ¡ đ§đŹ [bg](../../../bg/docs/guides/USER_GUIDE.md) ¡ đ§đŠ [bn](../../../bn/docs/guides/USER_GUIDE.md) ¡ đ§đŚ [bs](../../../bs/docs/guides/USER_GUIDE.md) ¡ đ¨đż [cs](../../../cs/docs/guides/USER_GUIDE.md) ¡ đŠđ° [da](../../../da/docs/guides/USER_GUIDE.md) ¡ đŠđŞ [de](../../../de/docs/guides/USER_GUIDE.md) ¡ đŹđˇ [el](../../../el/docs/guides/USER_GUIDE.md) ¡ đŞđ¸ [es](../../../es/docs/guides/USER_GUIDE.md) ¡ đŞđŞ [et](../../../et/docs/guides/USER_GUIDE.md) ¡ đŽđˇ [fa](../../../fa/docs/guides/USER_GUIDE.md) ¡ đŤđŽ [fi](../../../fi/docs/guides/USER_GUIDE.md) ¡ đŤđˇ [fr](../../../fr/docs/guides/USER_GUIDE.md) ¡ đŽđŞ [ga](../../../ga/docs/guides/USER_GUIDE.md) ¡ đŽđł [gu](../../../gu/docs/guides/USER_GUIDE.md) ¡ đłđŹ [ha](../../../ha/docs/guides/USER_GUIDE.md) ¡ đŽđą [he](../../../he/docs/guides/USER_GUIDE.md) ¡ đŽđł [hi](../../../hi/docs/guides/USER_GUIDE.md) ¡ đđˇ [hr](../../../hr/docs/guides/USER_GUIDE.md) ¡ đđş [hu](../../../hu/docs/guides/USER_GUIDE.md) ¡ đŚđ˛ [hy](../../../hy/docs/guides/USER_GUIDE.md) ¡ đŽđŠ [id](../../../id/docs/guides/USER_GUIDE.md) ¡ đłđŹ [ig](../../../ig/docs/guides/USER_GUIDE.md) ¡ đŽđš [it](../../../it/docs/guides/USER_GUIDE.md) ¡ đŻđľ [ja](../../../ja/docs/guides/USER_GUIDE.md) ¡ đŹđŞ [ka](../../../ka/docs/guides/USER_GUIDE.md) ¡ đ°đ [km](../../../km/docs/guides/USER_GUIDE.md) ¡ đŽđł [kn](../../../kn/docs/guides/USER_GUIDE.md) ¡ đ°đˇ [ko](../../../ko/docs/guides/USER_GUIDE.md) ¡ đąđš [lt](../../../lt/docs/guides/USER_GUIDE.md) ¡ đąđť [lv](../../../lv/docs/guides/USER_GUIDE.md) ¡ đŽđł [ml](../../../ml/docs/guides/USER_GUIDE.md) ¡ đŽđł [mr](../../../mr/docs/guides/USER_GUIDE.md) ¡ đ˛đž [ms](../../../ms/docs/guides/USER_GUIDE.md) ¡ đ˛đš [mt](../../../mt/docs/guides/USER_GUIDE.md) ¡ đ˛đ˛ [my](../../../my/docs/guides/USER_GUIDE.md) ¡ đłđľ [ne](../../../ne/docs/guides/USER_GUIDE.md) ¡ đłđą [nl](../../../nl/docs/guides/USER_GUIDE.md) ¡ đłđ´ [no](../../../no/docs/guides/USER_GUIDE.md) ¡ đŽđł [or](../../../or/docs/guides/USER_GUIDE.md) ¡ đŽđł [pa](../../../pa/docs/guides/USER_GUIDE.md) ¡ đľđ [phi](../../../phi/docs/guides/USER_GUIDE.md) ¡ đľđą [pl](../../../pl/docs/guides/USER_GUIDE.md) ¡ đľđš [pt](../../../pt/docs/guides/USER_GUIDE.md) ¡ đ§đˇ [pt-BR](../../../pt-BR/docs/guides/USER_GUIDE.md) ¡ đˇđ´ [ro](../../../ro/docs/guides/USER_GUIDE.md) ¡ đˇđş [ru](../../../ru/docs/guides/USER_GUIDE.md) ¡ đąđ° [si](../../../si/docs/guides/USER_GUIDE.md) ¡ đ¸đ° [sk](../../../sk/docs/guides/USER_GUIDE.md) ¡ đ¸đŽ [sl](../../../sl/docs/guides/USER_GUIDE.md) ¡ đˇđ¸ [sr](../../../sr/docs/guides/USER_GUIDE.md) ¡ đ¸đŞ [sv](../../../sv/docs/guides/USER_GUIDE.md) ¡ đ°đŞ [sw](../../../sw/docs/guides/USER_GUIDE.md) ¡ đŽđł [ta](../../../ta/docs/guides/USER_GUIDE.md) ¡ đŽđł [te](../../../te/docs/guides/USER_GUIDE.md) ¡ đšđ [th](../../../th/docs/guides/USER_GUIDE.md) ¡ đšđˇ [tr](../../../tr/docs/guides/USER_GUIDE.md) ¡ đşđŚ [uk-UA](../../../uk-UA/docs/guides/USER_GUIDE.md) ¡ đľđ° [ur](../../../ur/docs/guides/USER_GUIDE.md) ¡ đşđż [uz](../../../uz/docs/guides/USER_GUIDE.md) ¡ đťđł [vi](../../../vi/docs/guides/USER_GUIDE.md) ¡ đłđŹ [yo](../../../yo/docs/guides/USER_GUIDE.md) ¡ đ¨đł [zh-CN](../../../zh-CN/docs/guides/USER_GUIDE.md) ¡ đšđź [zh-TW](../../../zh-TW/docs/guides/USER_GUIDE.md)
---
đ **Languages:** đşđ¸ [English](../../../../guides/USER_GUIDE.md) ¡ đ¸đŚ [ar](../../../ar/docs/guides/USER_GUIDE.md) ¡ đŚđż [az](../../../az/docs/guides/USER_GUIDE.md) ¡ đ§đŹ [bg](../../../bg/docs/guides/USER_GUIDE.md) ¡ đ§đŠ [bn](../../../bn/docs/guides/USER_GUIDE.md) ¡ đ§đŚ [bs](../../../bs/docs/guides/USER_GUIDE.md) ¡ đ¨đż [cs](../../../cs/docs/guides/USER_GUIDE.md) ¡ đŠđ° [da](../../../da/docs/guides/USER_GUIDE.md) ¡ đŠđŞ [de](../../../de/docs/guides/USER_GUIDE.md) ¡ đŹđˇ [el](../../../el/docs/guides/USER_GUIDE.md) ¡ đŞđ¸ [es](../../../es/docs/guides/USER_GUIDE.md) ¡ đŞđŞ [et](../../../et/docs/guides/USER_GUIDE.md) ¡ đŽđˇ [fa](../../../fa/docs/guides/USER_GUIDE.md) ¡ đŤđŽ [fi](../../../fi/docs/guides/USER_GUIDE.md) ¡ đŤđˇ [fr](../../../fr/docs/guides/USER_GUIDE.md) ¡ đŽđŞ [ga](../../../ga/docs/guides/USER_GUIDE.md) ¡ đŽđł [gu](../../../gu/docs/guides/USER_GUIDE.md) ¡ đłđŹ [ha](../../../ha/docs/guides/USER_GUIDE.md) ¡ đŽđą [he](../../../he/docs/guides/USER_GUIDE.md) ¡ đŽđł [hi](../../../hi/docs/guides/USER_GUIDE.md) ¡ đđˇ [hr](../../../hr/docs/guides/USER_GUIDE.md) ¡ đđş [hu](../../../hu/docs/guides/USER_GUIDE.md) ¡ đŚđ˛ [hy](../../../hy/docs/guides/USER_GUIDE.md) ¡ đŽđŠ [id](../../../id/docs/guides/USER_GUIDE.md) ¡ đłđŹ [ig](../../../ig/docs/guides/USER_GUIDE.md) ¡ đŽđš [it](../../../it/docs/guides/USER_GUIDE.md) ¡ đŻđľ [ja](../../../ja/docs/guides/USER_GUIDE.md) ¡ đŹđŞ [ka](../../../ka/docs/guides/USER_GUIDE.md) ¡ đ°đ [km](../../../km/docs/guides/USER_GUIDE.md) ¡ đŽđł [kn](../../../kn/docs/guides/USER_GUIDE.md) ¡ đ°đˇ [ko](../../../ko/docs/guides/USER_GUIDE.md) ¡ đąđš [lt](../../../lt/docs/guides/USER_GUIDE.md) ¡ đąđť [lv](../../../lv/docs/guides/USER_GUIDE.md) ¡ đŽđł [ml](../../../ml/docs/guides/USER_GUIDE.md) ¡ đŽđł [mr](../../../mr/docs/guides/USER_GUIDE.md) ¡ đ˛đž [ms](../../../ms/docs/guides/USER_GUIDE.md) ¡ đ˛đš [mt](../../../mt/docs/guides/USER_GUIDE.md) ¡ đ˛đ˛ [my](../../../my/docs/guides/USER_GUIDE.md) ¡ đłđľ [ne](../../../ne/docs/guides/USER_GUIDE.md) ¡ đłđą [nl](../../../nl/docs/guides/USER_GUIDE.md) ¡ đłđ´ [no](../../../no/docs/guides/USER_GUIDE.md) ¡ đŽđł [or](../../../or/docs/guides/USER_GUIDE.md) ¡ đŽđł [pa](../../../pa/docs/guides/USER_GUIDE.md) ¡ đľđ [phi](../../../phi/docs/guides/USER_GUIDE.md) ¡ đľđą [pl](../../../pl/docs/guides/USER_GUIDE.md) ¡ đľđš [pt](../../../pt/docs/guides/USER_GUIDE.md) ¡ đ§đˇ [pt-BR](../../../pt-BR/docs/guides/USER_GUIDE.md) ¡ đˇđ´ [ro](../../../ro/docs/guides/USER_GUIDE.md) ¡ đˇđş [ru](../../../ru/docs/guides/USER_GUIDE.md) ¡ đąđ° [si](../../../si/docs/guides/USER_GUIDE.md) ¡ đ¸đ° [sk](../../../sk/docs/guides/USER_GUIDE.md) ¡ đ¸đŽ [sl](../../../sl/docs/guides/USER_GUIDE.md) ¡ đˇđ¸ [sr](../../../sr/docs/guides/USER_GUIDE.md) ¡ đ¸đŞ [sv](../../../sv/docs/guides/USER_GUIDE.md) ¡ đ°đŞ [sw](../../../sw/docs/guides/USER_GUIDE.md) ¡ đŽđł [ta](../../../ta/docs/guides/USER_GUIDE.md) ¡ đŽđł [te](../../../te/docs/guides/USER_GUIDE.md) ¡ đšđ [th](../../../th/docs/guides/USER_GUIDE.md) ¡ đšđˇ [tr](../../../tr/docs/guides/USER_GUIDE.md) ¡ đşđŚ [uk-UA](../../../uk-UA/docs/guides/USER_GUIDE.md) ¡ đľđ° [ur](../../../ur/docs/guides/USER_GUIDE.md) ¡ đşđż [uz](../../../uz/docs/guides/USER_GUIDE.md) ¡ đťđł [vi](../../../vi/docs/guides/USER_GUIDE.md) ¡ đłđŹ [yo](../../../yo/docs/guides/USER_GUIDE.md) ¡ đ¨đł [zh-CN](../../../zh-CN/docs/guides/USER_GUIDE.md) ¡ đšđź [zh-TW](../../../zh-TW/docs/guides/USER_GUIDE.md)
á á
áŤá˘áá˝á áááááᣠáĽáá¨áśá˝á áááá áᣠá¨CLI ááŁáŞáŤáá˝á ááááááľ áĽá OmniRouteá ááá°ááŤáľ á¨á°áá áááŞáŤá˘
---
## á¨áááľ áááŤ
- [á¨áá á ááŁáĽ á á ááŠ](#-pricing-at-a-glance)
- [á¨á á ááá áááłáá˝](#-use-cases)
- [á¨á á
áŤá˘ áááá](#-provider-setup)
- [á¨CLI áá
á°áľ](#-cli-integration)
- [áá°ááŤáľ](#-deployment)
- [á¨ááá áá´áá˝](#-available-models)
- [á¨áá áŁá
áŞáŤáľ](#-advanced-features)
- [áŤáľ-á°á ááľá°ááá (áŤá áá
á¨áľ)](#-auto-routing-zero-config)
- [á¨MCP áĽá A2A áá
á°áľ](#-mcp--a2a-integration)
- [á¨áá
ááśá˝ áĽáááľ](#-skills-system)
- [á¨ááľáłááť áĽáááľ](#-memory-system)
- [Webhooks](#-webhooks)
- [á¨á°áá ááŞáá˝](#-cloud-agents)
- [ááŽááŤáá á áľá°áłá°á](#-programmatic-management)
- [ááľáŁá CLI](#-internal-cli)
- [á¨á´áľááśá áá°áá áŞáŤ (Electron)](#-desktop-application-electron)
---
## đ° á¨áá á ááŁáĽ á á ááŠ
| á°á¨á | á á
áŤá˘ | á᪠| á¨áŽáł áłáá ááľáááŞáŤ | á áŁá á°áľáá á¨ááá á |
| ------------------- | ----------------- | ------------- | --------------------- | ------------------ |
| **đł á¨á°áá áááľ ááááŁ** | Claude Code (Pro) | $20/á áá | 5 á°ááľ + á á¨áłáááą | á áľááľáá áá°áááᥠ|
| | Codex (Plus/Pro) | $20-200/á áá | 5 á°ááľ + á á¨áłáááą | á¨OpenAI á°á áááá˝ |
| | GitHub Copilot | $10-19/á áá | á á¨áአ| á¨GitHub á°á áááá˝ |
| **đ API ááá** | DeepSeek | á á á ááá áá áá፠| á¨áá | ááŤá˝ á¨ááááá á˝ááł |
| | Groq | á á á ááá áá áá፠| á¨áá | áĽá
á ááŁá á˘ááá¨ááľ |
| | xAI (Grok) | á á á ááá áá áá፠| á¨áá | á¨Grok 4 á¨ááááá á˝ááł |
| | Mistral | á á á ááá áá áá፠| á¨áá | á EU á¨á°áľá°áááą áá´áá˝ |
| | Perplexity | á á á ááá áá áá፠| á¨áá | á ááá á¨á°á áá¨á¨ |
| | Together AI | á á á ááá áá áá፠| á¨áá | áááľ-ááá áá´áá˝ |
| | Fireworks AI | á á á ááá áá áá፠| á¨áá | ááŁá á¨FLUX ááľáá˝ |
| | Cerebras | á á á ááá áá áá፠| á¨áá | á¨ááá-á°á¨á ááĽááľ |
| | Cohere | á á á ááá áá áá፠| á¨áá | Command R+ RAG |
| | NVIDIA NIM | á á á ááá áá áá፠| á¨áá | á¨áľáá
áľ áá´áá˝ |
| | Baidu Qianfan | á á á ááá áá áá፠| á¨áá | ERNIE áá´áá˝ |
| **đ° ááŤá˝** | GLM-4.7 | $0.6/1M | á á¨áá 10AM | áá
á°á á ááľ áá áŁá á፠|
| | MiniMax M2.1 | $0.2/1M | á á¨5 á°ááą á°áá¨áŁáá | á áŁá ááŤáš á ááŤá |
| | Kimi K2 | $9/á áá áá | 10M áśá¨áá˝/á áá | áá°áá á á¨áá˝á á᪠|
| **đ áá** | Qoder | $0 | á¨á á
áŤá˘á áá°áŚá˝ á°ááťá áááá | á¨á ááá áŤáłáá áŤá¨ááᥠ|
| | Kiro | $0 | ~50 ááŹá˛áśá˝/á áá | Claude á áá |
---
## đŻ á¨á á ááá áááłáá˝
### áááł 1: "á¨Claude Pro á¨á°áá áááľ áááᣠá áá"
**á˝áá:** áŽáłá áĽá
á áá áłááá áŤá ááᤠá¨áŁáľ á¨áŽáľ áĽáŤ á˛á ፠á¨ááĽááľ áá°áŚá˝ áááŤá
```
áĽáá¨áľ: "maximize-claude"
1. cc/claude-opus-4-7 (á¨á°áá áááľ ááááŁáá áá á áá áá áá)
2. glm/glm-4.7 (áŽáłá á˛áŤáá
ááŤá˝ áá áŁá ááŤ)
3. if/qwen3.8-max-preview (áá á¨á á°á áá á ááŤá)
áááá ááŞ: $20 (á¨á°áá áááľ ááááŁ) + ~$5 (áá áŁá ááŤ) = á áľáአ$25
ᨠ$20 + áá°áŚá˝ áá ááľá¨áľ = áĽáľááľ áá á˛ááťá¸á
```
### áááł 2: "ááá á᪠áĽááłááá áĽááááá"
**á˝áá:** á¨á°áá áááľ ááááŁáá˝á áááá á áá˝ááᤠá áľá°ááá á¨AI áŽáľ áĽáŤ áĽááááá
```
áĽáá¨áľ: "zero-cost"
1. if/kimi-k2.7-code (á áááአááľáĽ áá ááłá¨áťá¤ á¨ááĽááľ áá°áŚá˝ áá°áá አáá˝áá)
2. kr/qwen3-coder-next (á¨Kiro áá á ááŤá)
áááá ááŞ: $0
áĽáŤáľ: ááĽáŤá áá´ááᣠáá°áŚášáᣠáááááąá áĽá SLAáá áŤá¨áááĄ
```
### áááł 3: "áŤáááá¨áĽ 24/7 áŽáľ ááťá áĽááááá"
**á˝áá:** á¨áá áá°áŚá˝ á áᤠá¨áĽáŤ ááá¨áĽá áááá á áá˝áá
```
áĽáá¨áľ: "always-on"
1. cc/claude-opus-4-7 (ááἠáĽáŤáľ)
2. cx/gpt-5.5 (ááá°á á¨á°áá áááľ ááááŁ)
3. glm/glm-4.7 (ááŤá˝áŁ á á¨áá áłáá ááááŤá)
4. minimax/MiniMax-M2.1 (á áŁá ááŤášáŁ á 5 á°ááľ áłáá ááááŤá)
5. if/deepseek-v4-flash (á áááአááľáĽ áá ááłá¨áťá¤ á¨ááĽááľ áá°áŚá˝ áá°áá አáá˝áá)
áá¤áľ: 5 á¨áá áŁá á፠ááĽááĽáŽá˝ á¨áááá á á
áá áŤá°ááᤠá¨áá á á
áŤá˘áá˝ á°ááááľ ááľáľá á¨ááá
áááá ááŞ: $20-200 (á¨á°áá áááľ ááááŁáá˝) + $10-20 (áá áŁá ááŤ)
```
### áááł 4: "á OpenClaw ááľáĽ áá AI áĽááááá"
**á˝áá:** á áááááľ áá°áá áŞáŤáá˝ ááľáĽ áá á áá áá á¨áá á¨AI á¨áłáľ áĽááááá
```
áĽáá¨áľ: "openclaw-free"
1. if/qwen3.8-max-preview (á áááአááľáĽ áá ááłá¨áťá¤ á¨ááĽááľ áá°áŚá˝ áá°áá አáá˝áá)
2. if/deepseek-v4-flash (á áááአááľáĽ áá ááłá¨áťá¤ á¨ááĽááľ áá°áŚá˝ áá°áá አáá˝áá)
3. if/kimi-k2.7-code (á áááአááľáĽ áá ááłá¨áťá¤ á¨ááĽááľ áá°áŚá˝ áá°áá አáá˝áá)
áááá ááŞ: $0
ááłá¨áť á : WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
```
---
## đ á¨á á
áŤá˘ áááá
á¨CSV ááá JSON ááá á¨API ááá áááááśá˝á á á
áá ááá¨áá **Dashboard â Providers â Import from file** áá ááᢠáááśáš á áŚáł á°ááľá áá (`provider,name,apiKey,baseUrl,priority`)ᤠ`provider` áĽáá° á¨áá°áłá°á á á
áŤá˘ ááá á°áłáá ááľ á áľááľá ááá á áá áľá˘ [á á
áŤá˘áá˝á á¨CSV ááá JSON ááá á áľááŁ](../providers/CSV-IMPORT.md) áááá¨áąá˘
### đ á¨áááᣠá á
áŤá˘áá˝
#### Claude Code (Pro/Max)
```bash
Dashboard â Providers â Connect Claude Code
â á¨OAuth ááá˘áŤ â áŤáľ-á°á á¨áśá¨á áĽáľáłáľ
â á¨5 á°ááľ + áłáááłá áŽáł ááľáľá
áá´áá˝:
cc/claude-opus-4-7
cc/claude-sonnet-4-6
cc/claude-haiku-4-5-20251001
```
**á¨áŁáá፠ááááŚ** áááľáĽáľáĽ áĽáŤáá˝ OpusᣠáááĽááľ Sonnet áá ááᢠOmniRoute áŽáłá á áá´á áá¨áłá°áá!
á OmniRoute á áľá°ááá
áá á áłá˝ á¨áá? Claude Code á¨ááŁá áľá áŚáł áá `claude setup-token` áŤáľáŞáąá á¨á ááľ áááľ áśá¨áá áá° **Setup Token** áľá áááĽáᢠ[Claude Code á¨ááááŞáŤ áśá¨á áá](../providers/CLAUDE_CODE_SETUP_TOKEN.md) áááá¨áąá˘
á¨Claude áĽá Claude Code áá á°áłáá á¨áá ááľááŽá˝ áOpus áĽá Sonnet
áá´áá˝ `max` á¨á áľá°áłá°áĽ áĽá¨áľá áĽáá°á°á á á áŤáľáááŁáᢠá¨Haiku áá´áá˝
á¨`max` áĽá¨áľ á°á¨áá á ááá ááᤠáľááá
OmniRoute áá
á áĽáŤá
áá° á¨áá°á á¨á áľá°áłá°áĽ á ááľ áá
á áľáá áá° áááá á áááááľ ááá¨ááá˘
#### OpenAI Codex (Plus/Pro)
```bash
Dashboard â Providers â Connect Codex
â á¨OAuth ááá˘áŤ (áááľ 1455)
â á¨5 á°ááľ + áłáááłá áłáá ááľááá
áá´áá˝:
cx/gpt-5.5
cx/gpt-5.4
cx/gpt-5.3-codex
cx/gpt-5.3-codex-spark
```
#### GitHub Copilot
```bash
Dashboard â Providers â Connect GitHub
â á GitHub á áŠá OAuth
â áááá áłáá ááľááá (á áአ1á áá)
áá´áá˝:
gh/gpt-5.5
gh/gpt-5.4
gh/claude-sonnet-4.6
gh/claude-opus-4.7
gh/gemini-3.1-pro-preview
```
**á¨AI ááŹá˛áśá˝ (á áśá¨á áá á¨á°áá á¨á° áááŤ)á˘** GitHub ááááŤá
`credits_used` á˛áŤáłáá
ᣠá¨á á
áŤá˘ áá°áŚá˝ áŤááą á á áá á¨áá፠áá ááľáĽ
á¨á°á áááľá ááŹá˛áśá˝ á¨ááŤáłá **á¨AI ááŹá˛áśá˝** á¨áľá áŤáłáŤáᤠáá
á
áŤáá°áá°áĄ á¨áľáá
áľ áá
áśá˝á á¨áᎠáá áŤáá˘
**á¨á áŤáŁá˘ á¨AI ááŹá˛áśá˝ áá°áĽá˘** á¨GitHub áááááľá áŤááľáá **á áááŤ
áá ááľáĽ á¨AI ááŹá˛áśá˝ áá°áĽ** (`providerSpecificData.githubCreditLimit`) áŤáááá˘
áŁáś á¨áá áŤá°áááááᤠ`0` á¨áá áááááąá áááá ááááᢠá¨áá¨á¨áťá
á¨á á ááá ááŁáĽ á¨áá°áĄ áá áĽáŠá ááá á¨á፠á áá á˛ááᣠá¨áá፠áááŤ
áá
á áááááľ ááááᤠááľááŤá ááľá¨áá áá° ááá˝ áááááśá˝á ááááłááŁ
áá áĽáá° á¨áŽáł ááᲠááá¨áŤá˘ ááááŤá á á¨ááá á¨áŽáł áĽáľáłáľ ááľá
á¨áá°á áľá áá á á ááá áŤááŁá â á áĽáŤá ááááľ áá GitHubá á áášá
á áá áŤá â áĽáá˛áá á áááľ áááł áá°áŤáጠá¨áá°á ááá áŤá¨á ááŁáĽ
(á¨15 á°áá á áá á¨ááᣠááá ááľá áłáá á¨á°ááᨠá¨áá፠áá á¨ááŁ)
áááááąá á áá¨ááááᢠáá
á¨á áŤáŁá˘ áĽá á áá´ áĽáá **á¨á°á¨ááá
á¨á᪠áŁáŞáŤ á áá°áá**ᤠá¨GitHub áŞáááľ áááá¨áśá˝áŁ á¨áĽáľáłáľ áá ááŠááľáŁ
á áá°áľ áá áŤá áĽáŤááá˝ áĽá á¨OmniRoute áá áŤá á á ááá á¨áá
áá ááĄ
áá˝ááᢠá ááŤáŤ áá°áĽ áááľá¨á á¨GitHub á¨áŤáąá á¨á᪠ááĽáĽáŽá˝ áá ááá˘
### đ° ááŤá˝ á á
áŤá˘áá˝
#### GLM-4.7 (á á¨áá áłáá ááľáááᣠ$0.6/1M)
1. áááááĄáŚ [Zhipu AI](https://open.bigmodel.cn)
2. á¨Coding Plan á¨API ááá áŤáá
3. Dashboard â Add API Key: á á
áŤá˘áŚ `glm`ᣠAPI áááጠ`your-key`
**á á ááááŚ** `glm/glm-4.7` â **á¨áŁáá፠ááááŚ** Coding Plan á 1/7 á᪠3Ă áŽáł áŤáááŁá! á á¨áá 10:00 AM áłáá ááááŤáá˘
#### MiniMax M2.1 (á 5 á°ááľ áłáá ááľáááᣠ$0.20/1M)
1. áááááĄáŚ [MiniMax](https://www.minimax.io)
2. á¨API ááá áŤáá â Dashboard â Add API Key
**á á ááááŚ** `minimax/MiniMax-M2.1` â **á¨áŁáá፠ááááŚ** áá¨á
á á ááľ (1M áśá¨áá˝) á áŁá ááŤáš á ááŤá áá!
#### Kimi K2 ($9/áá áá)
1. áááááĄáŚ [Moonshot AI](https://platform.kimi.ai?aff=omniroute)
2. á¨API ááá áŤáá â Dashboard â Add API Key
**á á ááááŚ** `kimi/kimi-k2.5` â **á¨áŁáá፠ááááŚ** á10M áśá¨áá˝ áá $9/áá = á á°ááŁá $0.90/1M ááŞ!
#### Baidu Qianfan / ERNIE
1. áááááĄáŚ [Baidu AI Cloud Qianfan](https://cloud.baidu.com/product/wenxinworkshop)
2. á¨Qianfan API ááá ááá አâ Dashboard â Add API Key: á á
áŤá˘áŚ `qianfan`
**á á ááááŚ** `qianfan/ernie-5.1`ᣠ`qianfan/ernie-x1.1`ᣠááá áá á¨Qianfan áá á°áłáá á¨OpenAI áá´á IDá˘
### đ áá á á
áŤá˘áá˝
áá¨áá፠á¨ááááá áá á á
áŤá˘áá˝ á á á
áŤá˘ ááťá¸á áá **áá¨áá፠á áŤáľáááá** á¨ááá á á áἠáááŤá¨áŞáŤ á áá¸áá˘
áá
á ááĽááľ á á
áŤá˘áá áŤá°ááááᣠá¨á°ááአá á
áŤá˘áá˝/á áá áĽááłáá˝ áŤáľááá°áááŁ
áĽáá˛áá áá´áášá á¨`/v1/models` áŤáľáááłáá˘
#### Qoder (9 áá áá´áá˝)
```bash
Dashboard â Connect Qoder â á¨OAuth ááá˘áŤ â ááłá¨áťá á áá áŁá á¨á á
áŤá˘á áá°áŚá˝ ááá°áá
áá´áá˝: if/qwen3.8-max-preview, if/qwen3.7-max, if/qwen3.7-plus, if/kimi-k3, if/kimi-k2.7-code, if/glm-5.2, if/deepseek-v4-pro, if/deepseek-v4-flash, if/minimax-m3
```
#### Kiro (Claude áá)
```bash
Dashboard â Connect Kiro â AWS Builder ID ááá Google/GitHub â á áá áá° 50 ááŹá˛áśá˝
áá´áá˝: kr/claude-sonnet-4.5, kr/claude-haiku-4.5
```
---
## đ¨ áĽáá¨áśá˝
á áĽáŤááłááą áŤááľ áá áŤááá ááŤáŁ á ááá°áľáŁ á¨áĽáá¨áľ áŤááśá˝á á ááĽáł á **áłá˝áŚááľ â áĽáá¨áśá˝** ááľáĽ áĽáá°áá áá°áŤááľ áá˝ááᢠá
á°á á°á¨á°á á SQLite ááľáĽ ááááŁáᣠáłáá á˛áŤáá ááááłáá˘
### ááłá 1ጠá¨á°áá áááľ ááááŁá á¨áá°á á á ááá â ááŤá˝ ááľáŹ
```
áłá˝áŚááľ â áĽáá¨áśá˝ â á á˛áľ áá á
áľáጠpremium-coding
áá´áá˝áŚ
1. cc/claude-opus-4-7 (áá á¨á°áá áááľ ááááŁ)
2. glm/glm-4.7 (ááŤá˝ ááľáŹáŁ $0.6/1M)
3. minimax/MiniMax-M2.7 (á áŁá ááŤáš á ááŤáᣠ$0.3/1M)
á CLI ááľáĽ áá ááጠpremium-coding
```
### ááłá 2ጠáá-áĽáť (áᎠááŞ)
```
áľáጠfree-combo
áá´áá˝áŚ
1. if/kimi-k2.7-code (áá ááłá¨áť áĽááłáá á°ááááŻáᤠá¨á á
áŤá˘á áá°áŚá˝ áá°áá አáá˝áá)
2. kr/qwen3-coder-next (áá á¨Kiro ááľáŹ)
ááŞáŚ á á áá áá $0 á°áĽá á°ááááŻáᤠááá˝á á°ááááľ áááᥠáá˝áá
```
---
## đ§ á¨CLI áá
á°áľ
### Cursor IDE
**Cursorá áĽáá° OmniRoute á°áá á áá áá** (á¨Cursor ááááľá á OmniRoute á áŠá ááľá°ááá)áŚ
```
á
ááĽáŽá˝ â áá´áá˝ â á¨áááŚ
OpenAI API áá á¨áłá URLጠhttp://localhost:20128/v1
OpenAI API áááጠ[á¨omniroute áłá˝áŚááľ]
áá´áጠcc/claude-opus-4-7
```
**OmniRouteá áĽáá° Cursor á á
áŤá˘ áá áá** (OmniRoute áá°áá áŤááá Cursor áá áŤá)áŚ
**áłá˝áŚááľ â á á
áŤá˘áá˝ â Cursor â á Cursor ááŁ** á¨ááá ááá¨áŁáᢠá Docker ááľáĽ
[`docs/providers/CURSOR-DOCKER.md`](../providers/CURSOR-DOCKER.md)á áááá¨áąá˘
### Claude Code
`~/.claude/settings.json`á áŤááľááŚ
```json
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:20128",
"ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key"
}
}
```
áĽáá
Claude-á°áłáá á¨áááá áá endpoint áá ááᢠáá° `ANTHROPIC_BASE_URL` `/v1`á á áá¨ááŠá˘
### Codex CLI
```bash
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"
```
### OpenClaw
`~/.openclaw/openclaw.json`á áŤááľááŚ
```json
{
"agents": {
"defaults": {
"model": { "primary": "omniroute/if/kimi-k2.7-code" }
}
},
"models": {
"providers": {
"omniroute": {
"baseUrl": "http://localhost:20128/v1",
"apiKey": "your-omniroute-api-key",
"api": "openai-completions",
"models": [{ "id": "if/kimi-k2.7-code", "name": "Kimi K2.7 Code" }]
}
}
}
}
```
**ááá áłá˝áŚááľá áá áááŚ** CLI ááŁáŞáŤáá˝ â OpenClaw â áŤáľ-á°á áá
á
### Cline / Continue / RooCode
```
á á
áŤá˘áŚ á¨OpenAI áá á°áłáá
áá á¨áłá URLጠhttp://localhost:20128/v1
API áááጠ[á¨áłá˝áŚááľ]
áá´áጠcc/claude-opus-4-7
```
---
## đ áá°ááŤáľ
### ááá á áá npm ááŤá (á¨ááá¨á)
```bash
npm install -g omniroute
# Create config directory
mkdir -p ~/.omniroute
# Create .env file (see .env.example)
cp .env.example ~/.omniroute/.env
# Start server
omniroute
# Or with custom port:
omniroute --port 3000
```
CLI á áŤáľá°á `.env` ᨠ`~/.omniroute/.env` ááá `./.env` ááááᢠá áľáŤ áááŤá ááľáĽ áŤáá `./.env` á áá á¨á°ááá° ááá áááá áĽáť ááŤááá
áá˝áá (áá°áŚá˝ ᣠ`REQUIRE_API_KEY`ᣠá¨á áŤáŁá˘ áĽá á¨ááá á
áá
áśá˝)ᢠáááá ááá á `~/.omniroute/.env` ááľáĽ áŤáľáááĄ. [CLI ááľáááŞáŤ ááá˝á](CLI-LAUNCH-CONTRACTS.md#working-directory-env) áááá¨áąá˘
### á¨áľáŞ áááł
á áľáááľ ááŁá˘áŤá ááľáĽ OmniRoute ááá
```bash
omniroute serve --tray
```
áľááá á áááአáĽá áľáŞá ááá á¨áá á áá ááááłáá˘
á áááአáŤá á°áááá áááĽááá˘
áľáŹá áááł macOS, Windows, áĽá á ááŤáá Linux ááá áááá˝á áá°ááá. á¨áľáŹá áááł áłá˝áŚááąá á áŤáľ á°á á áá¨ááľáá˘
ááĽááá
áľáááśá˝ á¨áľáŞ ááááá áá áááĄ-
- áłá˝áŚááąá ááááąá˘
- `/dashboard/logs` á ááááąá˘
- áŤáľ-á°á á
ááá ááááŠá˘
- OmniRoute á áá .
`--tray` á¨áĽááá
á ááŤáŽá˝ áá á áłáŁáááĄ-
- `--daemon`
- `--log`
- `--no-recovery`
áĽááá
áááłáá˝ á¨á°ááŤá¨ á¨áá°áľ áŁáá¤áľááľ áŤáľáááá¸ááá˘
á áááĽáá á¨áá˝á ááá˘áŤ áá á
ááá á áááĄ-
```bash
omniroute autostart enable
```
áŤáľ-ááá á macOSᣠWindows áĽá á ááŤáá Linux ááá-áááá˝ áá á¨ááłá˘áŤ áááłá áá áááᢠááá
ááľ á¨ááá Linux áŤááá á¨áľáááľ á°á áá á áááááľ áá áááá˘
á ááá˘áŤá áá á
ááá áŤá°ááááĄ
```bash
omniroute autostart disable
```
### á ááŤáá áá
OmniRoute á áááááá áľ ááᣠáááá
ááľááá áááľ ááŁá áľááŞááśá˝á áĽááááŁááá˘
| áľááá | áľáááľ |
| ------------------------ | ---------------------------------------------------------------------- |
| `npm run uninstall` | á¨áľáááľ áá°áá áŞáŤá áŤáľáááłá áá** á¨áĽááľáá DB áĽá áá
áŽá˝ áá áĽááá˘** á `~/.omniroute`. |
| `npm run uninstall:full` | áá°áá áŞáŤá AND á ááááľ áŤáľáááłá** áááá á ááááŽá˝áŁ áááá˝ áĽá á¨ááἠááłáá˝á áá°ááá** . |
> ááłá°á˘áŤáĄ áĽááá
á áľáááá˝ áááľáŹáľ áá° OmniRoute ááŽáááľ áá
á°á (áááľ áŤá°á¨ááľ) áááą áĽá áŤááąá˘ á á ááŤáᣠá á ááá áá á°á¨á á¨á°áŤá á ááá `npm uninstall -g omniroute` áááľ áá˝ááá˘
### VPS áá°ááŤáľ
```bash
git clone https://github.com/diegosouzapw/OmniRoute.git
cd OmniRoute && npm install && npm run build
export JWT_SECRET="your-secure-secret-change-this"
export INITIAL_PASSWORD="your-password"
export DATA_DIR="/var/lib/omniroute"
export PORT="20128"
export HOSTNAME="0.0.0.0"
export NODE_ENV="production"
export NEXT_PUBLIC_BASE_URL="http://localhost:20128"
export API_KEY_SECRET="endpoint-proxy-api-key-secret"
npm run start
# Or: pm2 start npm --name omniroute -- start
```
### PM2 áá°ááŤáľ (áá
á°á áá
á°á¨ áľááľáł)
ááľá RAM ááá¸á á ááááŽá˝ á¨áá
á°á¨ áľááľáł áá°áĽ á ááŤáŠá áá áááĄ-
```bash
# With 512MB limit (default)
pm2 start npm --name omniroute -- start
# Or with custom memory limit
OMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start
# Or using ecosystem.config.js
pm2 start ecosystem.config.js
```
`ecosystem.config.js` ááá áŠ:
```javascript
module.exports = {
apps: [
{
name: "omniroute",
script: "npm",
args: "start",
env: {
NODE_ENV: "production",
OMNIROUTE_MEMORY_MB: "512",
JWT_SECRET: "your-secret",
INITIAL_PASSWORD: "your-password",
},
node_args: "--max-old-space-size=512",
max_memory_restart: "300M",
},
],
};
```
### Docker
```bash
# Build image (default = runner-cli with codex/claude/droid preinstalled)
docker build -t omniroute:cli .
# Portable mode (recommended)
docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cli
```
áá áľá°ááá
á¨á°ááá° áá᳠ᨠCLI áááľáŽážá˝ ááᣠá ááá á°ááśá˝ ááľáĽ ᨠDocker áááá áááá¨áąá˘
### áŁáś Linux (xbps-src)
áŁáś Linux á°á áááὠᨠ`xbps-src` áá áá፠ááááá á áá áá OmniRoute áá¸á áĽá ááŤá áá˝ááᢠáá
ᨠNode.js áĽáťáá áááŁáł á¨ááááá `better-sqlite3` á¤á°á áá°áŞáŤáá˝ áá á áŤáľ á°á áŤá°ááááá˘
ᨠxbps-src á áĽááľ áááá¨áą
```bash
# Template file for 'omniroute'
pkgname=omniroute
version=3.8.0
revision=1
hostmakedepends="nodejs python3 make"
depends="openssl"
short_desc="Universal AI gateway with smart routing for multiple LLM providers"
maintainer="zenobit "
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
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
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
rm -rf .next/standalone/node_modules/@img
# 7) Copy pino runtime deps omitted by Next.js static analysis:
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 APP_LOG_TO_FILE="${APP_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
}
```
### á¨á áŤáŁá˘ á°ááááŽá˝
| á°áááá | ááŁáŞ | ááá፠|
| --------------------------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------- |
| `JWT_SECRET` | _(á áŤáľ-á°á á¨á°áá á¨)_ | JWT ááá ááľáĽáŤá â á áŤáľ á¨ááᨠá ááááŞáŤ áŠáŤ áĽá áĽáľá¨ `server.env` áľá¨áľ áá á; á¨ááἠáááŤá áááŤá á áááá áľ áá á ááá˝ áŤáľáááĄáľá˘ |
| `INITIAL_PASSWORD` | _(áŤáá°ááá á¨)_ | ááááŞáŤ á¨ááá˘áŤ á¨ááá áá. npm/source áááśá˝ á `CHANGEME` ááááŤá: áá°áŠ. á áá°ááá¨áᥠá¨ááłáá á áá |
| `DATA_DIR` | `~/.omniroute` | á¨ááἠáá፠(á˛á˘áŁ á á áááᣠáááἠááľáłááťáá˝) |
| `PORT` | áááá ááŁáŞ | á¨á áááááľ áá°áĽ (`20128` á ááłááá˝) |
| `HOSTNAME` | áááá ááŁáŞ | á áľá¨á á áľá°ááá
(Docker ááŁáŞ áá° `0.0.0.0`) |
| `NODE_ENV` | á¨áŠáŤ áá ááŁáŞ | ááá°ááŤáľ `production` á ááá
|
| `NEXT_PUBLIC_BASE_URL` | `http://localhost:20128` | á¨á
áἠáá°á¨áľ URL áá° áłá˝áŚááą áᣠáĽá áá áááአá°ááá§á (á¨áᨠ`BASE_URL` áá°áŤáá) |
| `NEXT_PUBLIC_CLOUD_URL` | `https://omniroute.dev` | á¨ááááľ áááłá°á á¨áá¨á¨áť ááĽáĽ á¤á URL (á¨áᨠ`CLOUD_URL` á áá°áŤáá) |
| `API_KEY_SECRET` | _(á áŤáľ-á°á á¨á°áá á¨)_ | HMAC ááľáĽá áá°áá አAPI áááá˝ â á áŤáľ á°á á¨á°áá ᨠáĽá á `server.env` á¸ááˇá |
| `REQUIRE_API_KEY` | `false` | Bearer API áááá á `/v1/*` áá áŤáľáá˝á |
| `ALLOW_API_KEY_REVEAL` | `false` | á¨á°á¨ááᥠá¨áłá˝áŚááľ á°á áááá˝ áá á¨á°á¨ááš API ááá áĽá´áśá˝á á ááááľ áĽáá˛áŤáłáŠ ááááąáá¸á |
| `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES` | `70` | áá°á¸áá á¨á á
áŤá˘ áá°áĽ ááἠá¨á áááá-áá á áľáľ áá¨áááŤ; UI á áľáľ á ááŤáŽá˝ á ááá á áĽá
áááłá°áá ááá°á
áłá |
| `DISABLE_SQLITE_AUTO_BACKUP` | `false` | ᨠwrites/import/restore á ááľ á ááśáá˛á SQLite á
á˝á á°-ááśáá˝á á á°ááá; á áĽá
ááľáŹáá˝ á ááá áá°áŤá |
| `APP_LOG_TO_FILE` | `true` | á¨áá°áá áŞáŤ áĽá á¨áŚá˛áľ áááἠááľáłááťá áá° á˛áľá áŤáááᢠ|
| `AUTH_COOKIE_SECURE` | `false` | `Secure` auth áŠáŞá á áľááľáľ (ᨠHTTPS á°ááá˘áŚá˝ ááŽáᲠáááŁ) |
| `CLOUDFLARED_BIN` | á áá°ááá¨áᢠ| á¨áá°áłá°á ááá¨áľ ááá
ááŁá `cloudflared` áááľáŽá˝ áá áá |
| `CLOUDFLARED_PROTOCOL` | `http2` | ááá°áłá°áŠ ááŁá ááťáá˝ áááᣠ(`http2`ᣠ`quic` ááá `auto`) |
| `OMNIROUTE_MEMORY_MB` | `512` | Node.js ááá áá°áĽ á MB |
| `PROMPT_CACHE_MAX_SIZE` | `50` | á¨áá°áá ááŁá áá¸á፠áá¤áśá˝ |
| `SEMANTIC_CACHE_MAX_SIZE` | `100` | á¨áá°áá á¨áľááá áá¸á፠áá¤áśá˝ |
ááá á áŤáŁá˘ á°áááá ááŁááťáŁ [README](../README.md) áááá¨áąá˘
---
## đ áŤá áá´áá˝
áŤá áááá áá´áá˝ áááá¨áą
> ᨠ`open-sse/config/providerRegistry.ts` á v3.8.0 á¨á°áá¨á áááá ááᢠá¨Cloud áŤáłááá˝ (GeminiᣠOpenRouterᣠááá°) á á°áááá áááłá°áá â áááá á¨ááĽáł áŤáłáá áááááľ **áłá˝áŚááľ â á á
áŤá˘áá˝ â [provider] â áŤá áá´áá˝** áááą ááá `GET /api/models/catalog` ááĽáŠá˘
>
> á¨á ááľ á á
áŤá˘ á áĽáŽ á¨á°á°áŤ áááá á¨ááĽáł áŤáłáá áá áŤáá°ááłá°áᣠá á፠áá˝ áá **ᨠ/models á áľááŁ** á¨áááá áá áá (ááá **áŤáľ-á°á áááłá°á**á áŤáá)ᤠáá
á á¨ááĽáł á¨upstream áŤáłááá áŤááŁáᢠáá
á v3.8.50 á LLM7.io (`gemini-3.1-flash-lite`) áĽá UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) á°á¨ááá§áᤠPollinations á¨áááłáá
ááłá¨áť á ááŤá á¨áá¨áŤ áá áá
áľ á upstream á¨á°áá°á áá áááˇáá˘
**Claude Code (`cc/`)** â Pro/Max OAuthጠ`cc/claude-opus-4-8`, `cc/claude-opus-4-7`, `cc/claude-opus-4-6`, `cc/claude-opus-4-5-20251101`, `cc/claude-sonnet-4-6`, `cc/claude-sonnet-4-5-20250929`, `cc/claude-haiku-4-5-20251001`
**Codex (`cx/`)** â Plus/Pro OAuthጠ`cx/gpt-5.5` (+ á¨áĽá¨áľ á°á¨ááá˝áŚ `gpt-5.5-xhigh`, `gpt-5.5-high`, `gpt-5.5-medium`, `gpt-5.5-low`), `cx/gpt-5.4`, `cx/gpt-5.4-mini`, `cx/gpt-5.3-codex`, `cx/gpt-5.3-codex-spark`
**GitHub Copilot (`gh/`)** â OAuthጠ`gh/gpt-5.5`, `gh/gpt-5.4`, `gh/gpt-5.4-mini`, `gh/gpt-5-mini`, `gh/gpt-5.3-codex`, `gh/claude-opus-4.7`, `gh/claude-opus-4.6`, `gh/claude-opus-4-5-20251101`, `gh/claude-sonnet-4.6`, `gh/claude-sonnet-4.5`, `gh/claude-haiku-4.5`, `gh/gemini-3.1-pro-preview`, `gh/gemini-3-flash-preview`, `gh/oswe-vscode-prime`
**Kiro (`kr/`)** â áá OAuthጠá **áłá˝áŚááľ â á á
áŤá˘áá˝ â Kiro â áŤá áá´áá˝** áľá á¨ááłá¨áá á¨ááĽáł áŤáłáá áá ááᢠá°ááááą á áááŤá áĽá á áá
áą ááá°ááá˘
**Qoder (`if/`)** â áá OAuthጠ`if/qwen3.8-max-preview`, `if/qwen3.7-max`, `if/qwen3.7-plus`, `if/kimi-k3`, `if/kimi-k2.7-code`, `if/glm-5.2`, `if/deepseek-v4-pro`, `if/deepseek-v4-flash`, `if/minimax-m3`
**GLM (`glm/`, `glm-cn/`, `zai/`, `glmt/`)** â $0.2â0.6/1Mጠ`glm/glm-5.1`, `glm/glm-5`, `glm/glm-5-turbo`, `glm/glm-4.7`, `glm/glm-4.7-flash`, `glm/glm-4.6`, `glm/glm-4.6v`, `glm/glm-4.5`, `glm/glm-4.5v`, `glm/glm-4.5-air`
**MiniMax (`minimax/`, `minimax-cn/`)** â $0.2/1Mጠ`minimax/MiniMax-M2.7`, `minimax/MiniMax-M2.7-highspeed`, `minimax/MiniMax-M2.5`, `minimax/MiniMax-M2.5-highspeed`
**Kimi (`kimi/`, `kimi-coding/`, `kimi-coding-apikey/`)** â $9/áá áá áá፠ááá á á á áááጠ`kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** â á¨API áááጠ`ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** â áĽá
á ááŁáጠ`groq/llama-3.3-70b-versatile`, `groq/meta-llama/llama-4-maverick-17b-128e-instruct`, `groq/qwen/qwen3-32b`, `groq/openai/gpt-oss-120b`
**xAI (`xai/`)** â á°ááĽáŻá Grokጠ`xai/grok-4.3`, `xai/grok-4.20-multi-agent-0309`, `xai/grok-4.20-0309-reasoning`, `xai/grok-4.20-0309-non-reasoning`
**Mistral (`mistral/`)** â á EU á¨ááľá°áááľáŚ `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/codestral-latest`
**Perplexity (`pplx/`)** â á ááá á¨á°á¨áá¨áŚ `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** â áááľ áááጠ`together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (áá), `together/meta-llama/Llama-Vision-Free`, `together/deepseek-ai/DeepSeek-R1-Distill-Llama-70B-Free`, `together/deepseek-ai/DeepSeek-R1`, `together/Qwen/Qwen3-235B-A22B`, `together/meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8`
**Fireworks AI (`fireworks/`)** â ááŁá á˘ááá¨ááľáŚ `fireworks/accounts/fireworks/models/kimi-k2p6`, `fireworks/accounts/fireworks/models/minimax-m2p7`, `fireworks/accounts/fireworks/models/qwen3p6-plus`, `fireworks/accounts/fireworks/models/glm-5p1`, `fireworks/accounts/fireworks/models/deepseek-v4-pro`
**Cerebras (`cerebras/`)** â á ááá áááጠ`cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** â á RAG áá áŤá°áŽá¨áŚ `cohere/command-a-reasoning-08-2025`, `cohere/command-a-vision-07-2025`, `cohere/command-a-03-2025`, `cohere/command-r-08-2024`
**NVIDIA NIM (`nvidia/`)** â ááľáá
áśá˝áŚ `nvidia/google/gemma-4-31b-it`, `nvidia/nvidia/nemotron-3.5-super-vl-120b-a12b`, `nvidia/nvidia/nemotron-3-ultra-550b-a55b`, `nvidia/nvidia/nemotron-3.5-lightning-30b-a3b`
**Baidu Qianfan (`qianfan/`)** â ERNIEጠ`qianfan/ernie-5.1`, `qianfan/ernie-5.0-thinking-latest`, `qianfan/ernie-x1.1`
**Ollama Cloud (`ollama-cloud/`)**ጠ`ollama-cloud/deepseek-v4-pro`, `ollama-cloud/deepseek-v4-flash`, `ollama-cloud/kimi-k2.6`, `ollama-cloud/glm-5.1`, `ollama-cloud/minimax-m2.7`, `ollama-cloud/gemma4:31b`, `ollama-cloud/qwen3.5:397b`
**Gemini (Google Cloud `gemini/`)**ጠá Google á áŠá ááĽáŤááłááą API ááá á ááĽáł áááłá°áá â áá áááá á¨áááᢠááá á **áłá˝áŚááľ â á á
áŤá˘áá˝** áŤáááᣠá¨á፠**áŤá áá´áá˝**á á áá áá á¨á ááá áŤáłáá áŤáľáᥠ(áááłá `gemini/gemini-3-pro`, `gemini/gemini-3-flash`)á˘
**ááá˝ á°áłáá á á
áŤá˘áá˝** (á¨á°áá¨áĄ)ጠ`cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (á `aws-bedrock` á áŠá), `azure-ai`, `openrouter` (á¨ááŤáá áŤáłáá), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`ᢠáĽáŤááłááą á `providerRegistry.ts` ááľáĽ á¨áŤáąá á¨áá´á áááá áŤáľá°áłáľáŤáᣠáĽá á á
áŤá˘á `/models` á¨áá endpoint áŤáá¨á á áŤáľ-á°á áááłá°á áá˝ááá˘
**áľá áá´á áááŤáá˝ ááľáłááťáŚ** OmniRoute á¨á á
áŤá˘áá á°ááĽáŻá áááŤáá˝ áá ááá (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)ᢠá ááłááľ áááŤáá˝ ááĽáĽ á¨áŤá áľáŞáśá˝á áŤáŤáľáłáᤠááááŤáąá á¨upstream API áĽáá˛á áĽáá˛áá áľááá áĽá
ááᢠá ááľ áá´á á¨áá á á°áá¨áá¨á ááľáĽ áŤáá°áŤá°á°áŁ á°ááááąá ááá¨ááἠ`omniroute models --search ` áŤáľáŞáą ááá `GET /api/models/catalog` áá ááá˘
---
## đ§Š á¨áá áŁá
áŞáŤáľ
### áĽá áá´áá˝
á¨áá°áá áŞáŤ áááá áłáá áĽá áááááá áá´á ID áá° ááááá á á
áŤá˘ áŤááá˘
```bash
# Via API
curl -X POST http://localhost:20128/api/provider-models \
-H "Content-Type: application/json" \
-d '{"provider": "openai", "modelId": "gpt-5.2", "modelName": "GPT-5.2"}'
# List: curl http://localhost:20128/api/provider-models?provider=openai
# Remove: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2"
```
ááá áłá˝áŚááľá á°á áááĄ-** á á
áŤá˘áá˝ â [á á
áŤá˘] â áĽá áá´áá˝** .
ááľáłááťáá˝áĄ-
- OpenRouter áĽá OpenAI/Anthropic-compatible á á
áŤá˘áá˝ á¨áá°áłá°áŠáľ á¨** á¨ááá áá´áá˝** áĽáťá˘ áááá ááŹáľ á á°ááłáłá áá´á áááá ááľáĽ á áĽá
áŤáá ᣠáŤáľáᥠáĽá á áŤáľ-á ááłáľá ᣠáľááá
ááĽáá፠á á
áŤá˘áá˝ á¨á°áᨠá¨áĽá áá´áá˝ ááá á¨ááá˘
- á¨** áĽá áá´áá˝** ááá á¨áá°áłá°áŠ á¨ááá-áá´á ááľááŁáśá˝á áááŤááᥠá á
áŤá˘áá˝ á¨áłá°á ááá˘
### áĽá áááľ AI-á°áłáá á á
áŤá˘áá˝
OpenAI API (á áŤáľ á¨ááŤáľá°áááľ ááŽáá˛áŁ vLLMᣠá¨áśáľá°á ááá á°áĽáłá˘) á¨áááá ááááá ááá˘áŤ áĽáá° á¨áŤáą á¨á á
áŤá˘ ááľááá ááááľ áá¨áá ááťáááĄ-
1. **á á
áŤá˘áá˝ â á áá OpenAI á¨ááľáá** .
2. **áľá** á ááľááá ááááľ ááłáŤ áááŤá˘
3. **á
áľá á
áĽáŤ** : á¨áááŞáŤ áľá. á°áá áá˝ áá´áá˝á `/` áĽáá áá áŠáłáᣠáľááá
`mygw` á
áľá á
áĽáŤ áŤáá ááľááá ááááľ `mygw/gpt-4o-mini` áŤáááááᢠá¨ááŤáľááá; ááá á¨áŁá
᪠áá°áĽ á¨áá.
4. **API á áááľ** ááá˘áŤ á á á¨ááŤááááá á¨áá¨á¨áťá ááĽáĽ á¤á°á°áĽ (á¨ááááľ áá ááááŤáá˝áŁ ááážá˝áŁ ááá°áťáá˝áŁ áŚá˛áŽáŁ ááľáá˝)á˘
5. **á¤á URL** ᨠAPI áĽáᣠáĽáľá¨ `/v1` áľá¨áľ (áááłá `https://gateway.example.com/v1`)ᣠááá `/chat/completions` ááááľ á áá°ááᢠáá°á á áŤááá áąáŤáá˝ áŤáá¸á á áŽá˝ áŤáľáááŁá¸ááá˘** á¨áá á
ááĽáŽá˝** (á¨ááááľ ááááľáŁ á¨áá´áá˝ ááááľ)á˘
6. á¨**API ááá (áááá°á˝)** ááľá áááááąá áĽáť áááľáťá. ááľááá ááááľá á¨áá አá áá ááááąáľ áĽá áá áá** áááááľ á¨áá** á¨áá áááá ááá ááá¨áá¸áľá˘
ááľááá ááááľ `openai-compatible--` áŤááá ááľáŁá ááłáá፠áŤááá; áĽáąá áá°á¨áĽ á ááŤá˝ á áŤáľáááááľá ᣠá
áľá á
áĽáŤá á¨á
áἠáľá ááá˘
#### á¨á°á á á á
áľá á
áĽáŤáá˝
á
áľá á
áĽáŤ á áĽáŽ á¨á°á°áŤ á á
áŤá˘ ááłáá፠ááá á°ááá áľá (áááłá `openai`ᣠ`cf`) ááá á¨áĄá¨áł á áááááľ á°áŞ ááłáá፠ááá á áá˝ááᢠá¨áá´á áááá á áĽáŽááἠááłáááŤáá˝á áĽá á°ááá áľáá˝á á¨áĽá á áááá˝ á ááľ áááľáťáᣠáľááá
á¨ááá
á
áľá á
áĽáŤáá˝ ááľáĽ á ááąá á¨áá áá ááľááá ááááľ á ááŤá˝ áľáŤáá á ááá áá `/model` á ááľáŠ áá° á áĽáŽááἠá áááááľ á á
áŤá˘ áááłáᣠááá ፠á á
áŤá˘ áĄá¨áł á¨áᣠá ááááᢠáĽáá°áá
áŤá á
áľá á
áĽáŤ áŤáá ááľááá ááááľ ááá á ááá áááľá á áá¨á°ááľ ááľá
á°á°ááááĄ-
```text
prefix: "" is a reserved provider prefix â choose a different prefix (reserved ids/aliases cannot be used for custom nodes because requests like /model route to a built-in provider or fail closed when retired)
```
á¨á°áᨠá
áľá á
áĽáŤ ááá¨áĄ (`mygw`ᣠ`acme-proxy`)ᢠá¨áĽá ááľááá ááááľ áĽáŤááá˝ á áĽáŽ á¨á°á°áŤáá á á
áŤá˘á ááá ááłáááŤáášá á áá°áá áľá
á°áľ áŤáá°áłáŤáŁ á¨ááľááá ááááľ á
áľá-á
áĽáŤ á¨á°áŤá áááá áŤá¨áááĄáĄ áá
á°áἠá¨ááአá ááľ á¨á°ááᥠá áááá˝ á ááá ááááŁáᣠááá áá á
áľá á
áĽáŤ ááááśáťá¸á áá° á áĽáŽááἠá á
áŤá˘á áááŁáᢠááľááá ááááľá áŤááľá áĽá á á˛áľ á
áľá á
áĽáŤ ááľáĄáľá˘
#### á¨áááááśá˝ ááá˘áŤ á ááŤáŽá˝
áĽááá
áááá˝ á áááááľ `providerSpecificData` ááľáĽ áááłá (áááłá á `PUT /api/providers/{id}`)áĄ-
- `toolNameMaxLength` (á˘áá˛ááᣠ1â1024) â á OpenAI á¨ááááľ-á
áá¸áľ á°áłáá áááááśá˝ áá°ááááŤá¸á á¨á
á á¨ááłáŞáŤ áľáá˝á á¨áááá áᢠá¨áŁáĽá áľáá˝ áĽáá° á áá á°ááá áľá áááŤá áĽá á áááš áá°áá áŠá áľ ááááłáá˘
- `quotaEndpoint` â á¨ááá˘áŤ ááááą quota/credits áá¨á¨áť ááĽáĽáŁ ááłá˝áŚááľ áŽáł áľáľáŞá áĽá áŽáł-á áá ááááá áŤááĽáĄá˘ á áááąá á OpenAI- áĽá Anthropic-á°áłáá áááááśá˝ áá áá°áŤá; ááá á
áá˝ á `open-sse/services/usage/openaiCompatible.ts` ááľáĽ á°áááá§á.
```json
{
"toolNameMaxLength": 64,
"quotaEndpoint": {
"url": "https://gateway.example.com/key/info",
"auth": "bearer",
"quotas": {
"budget": { "used": "$.info.spend", "total": "$.info.max_budget", "currency": "USD" }
}
}
}
```
### á°áá°ááľ OmniRoute áĽáŠáŽá˝
áá OmniRoute ááá˘áŤ á á áĽáá° á áá¨áá áá˝ááá˘** áĽá OpenAI-á°áłáá** á á
áŤá˘. á¨á áťáá `/v1` áá°á¨áľ URL áĽá á á áĽáŠáŤ á¨á°á°á áľáá˝ áአááĽáľ áŤáá API ááá á°á ááá˘
áá°ááá˘áŚá˝ ááá ááĽá-áá á°áá°ááśá˝ á¨ááጠááá˘áŤ ááááąá á áĽáŤááłááą ááá˘áŤ á á áá áŤáááľáĄ-
```bash
# gateway-a
OMNIROUTE_INSTANCE_ID=gateway-a
OMNIROUTE_PEER_URLS=http://gateway-b:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4
```
```bash
# gateway-b
OMNIROUTE_INSTANCE_ID=gateway-b
OMNIROUTE_PEER_URLS=http://gateway-a:20128/v1
OMNIROUTE_PEER_MAX_HOPS=4
```
á ááá˝ áá°ááá° á áť URL á¨á°áአáĽáŤááá˝ áĽáť ᨠ`X-OmniRoute-Peer-Trace` áŤáľá ááá ááᢠááá˘áŤ á á á°á°ááá ááłá ID ááá á¨á°áłá¨á á¨áá á áᾠᨠHTTP `508 Loop Detected` áá ááľá
áŤá°áááᢠá°áŤ á
á¨áľ á á
áŤá˘áá˝ ááá á áť á˛á áłáł á ááá ááá˘
á¨á áť á°áá°ááľ ááŁááľ ááá á áľá°ááá
á áááłáŤáľ á¨ááἠááł á áá°ááᢠáĽáŤááłááą ááá˘áŤ á á áŤáąá á¨áťá SQLite áááłáᣠáá¸ááŤáá˝áᣠá¨áá ááŁáŞáá˝á áĽá ááá áááá˝á áŤááŤáᢠá active/passive ááá active/active á°ááááľ á á¤á á¨á°á¨ááá á¨á°ááá˘áŚá˝ ááŽáᲠááá á¨á°áá á ááľááľá á°á áá áĽá ááźá á ááľ SQLite áłáłá¤á áá° áĽá á ááľ OmniRoute á áĽááśá˝ á áľáŤáá˘
### á¨áá°á á á
áŤá˘ ááááśá˝
á¨áá´á áá¨áá፠áá° á ááľ á¨á°áá°á á áááááľ á á
áŤá˘ ááľáá áĽáŤááá˝á áŤáááŁááĄ-
```bash
POST http://localhost:20128/v1/providers/openai/chat/completions
POST http://localhost:20128/v1/providers/openai/embeddings
POST http://localhost:20128/v1/providers/fireworks/images/generations
```
á¨á á
áŤá˘á á
áľá á
áĽáŤ á¨á á á áŤáľ-á°á áłáááᢠá¨áááááą áá´áá˝ `400` ááááłá.
### á¨á ááłá¨ áá¨áĽ á°áŞ áá
á
```bash
# Set global proxy
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'
# Per-provider proxy
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'
# Test proxy
curl -X POST http://localhost:20128/api/settings/proxy/test \
-d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}'
```
**á
áľááŤ:** ááá-á°áŽá â áĽáá-á°áŽá â á á
áŤá˘-á°áŽá â áááŁá â á áŤáŁá˘á˘
### á¨áá´á áŤáłáá API
```bash
curl http://localhost:20128/api/models/catalog
```
á á á
áŤá˘á á¨á°á§á°á áá´áá˝á á¨á áááśá˝ (`chat`ᣠ`embedding`ᣠ`image` ááááłá)á˘
### á¨á°áá áááłá°á
- á ááłáŞáŤáá˝ áá á á
áŤá˘áá˝áᣠáĽááĽáŽá˝á áĽá á
ááĽáŽá˝á áŤááłáľáá˘
- á áŤáľ-á°á á¨á áľá°ááᣠáááłá°á á áá ááĽá፠+ á ááĽááľ á áá°áłáŤáá˘
- á áááľ ááľáĽ á¨á áááá áá `NEXT_PUBLIC_BASE_URL`/`NEXT_PUBLIC_CLOUD_URL` ááá¨áĄ
### Cloudflare ááŁá ááżááŞáŤ
- ááľáĽ áááá** áłá˝áŚááľ â á¨áá¨á¨áť ááĽáŚá˝** á Docker áĽá ááá˝ á áŤáłá¸á á¨ááľá°áááą áá°ááŤáľ
- áá° á¨á áá á¨OpenAI-á°áłáá `/v1` á¨áá¨á¨áť ááĽáĽá á¨ááŤáľá°ááá áááŤá `https://*.trycloudflare.com` URL áááĽáŤá
- á ááááŞáŤ á˛ááá áĽáť `cloudflared` áááśá˝á á áá; á áá áĽáá°áá ááááŤá á°ááłáłáŠá á¨áá°áłá°á áááľáŽá˝ áĽáá°áá áá áá
- ááŁá ááťáá˝ OmniRoute ááá ááŤáŁ áĽáá°áá á¨ááአá áá á áŤáľ-á°á áá°áá áŠá áľ á ááááąáᢠá áľááá áá á˛áá á¨áłá˝áŚááą áĽáá°áá á ááá¸á
- Tunnel URLs áááŤá áá¸á áĽá ááżááŞáŤáá stop/start ááĽá áááááŁáá˘
- á¨áá°áłá°áŠ ááŁá ááťáá˝ á á°á¨áá¨á áŽáá´áááŽá˝ ááľáĽ áŤáŤáł áŤááá QUIC UDP ááľ ááľá ááááŤáá˝á áááľáá¨áľ áá° HTTP/2 áľáŤááľáááľ ááŁáŞá˘
- á¨áá°áłá°á¨áá á¨áľáŤááľáááľ áá፠áááťá á¨ááá `CLOUDFLARED_PROTOCOL=quic` ááá `auto` áŤááá
- á¨áá°áłá°á¨á ááá¨á ááá
ááľá á¨á°áŤá `cloudflared` áááľáŽá˝ áá áá á¨áá¨áĄ `CLOUDFLARED_BIN` áŤááá
- Cloudflare Quick TunnelᣠTailscale Funnel áĽá ngrok Tunnel panels ááłáŠ ááá áá°á á áá˝ááá˘** á
ááĽáŽá˝ â ááá** . áááá áá°á á
ááżááŞáŤ ááŽáĄá á áŤáááá˘
### LLM ááľáá á˘áá°ááááľ (á°á¨á 9)
- **á¨áľááá áá¸ááŤ** - á áŤáľ-á°á áá¸ááŤáá˝ á¨áááááᣠá¨áááľ = 0 ááážá˝ (á `X-OmniRoute-No-Cache: true` ááá)
- **áŤáááťáá á áá
** - áĽáŤááá˝á á 5s ááľáĽ á `Idempotency-Key` ááá `X-Request-Id` áŤáľá áŤá áá
- **á¨áá°áľ ááľáľá** - á `X-OmniRoute-Progress: true` áŤáľá ááá á ááᥠSSE `event: progress` ááľá°áśá˝
---
### á°ááá á¨ááŤááť ááł
á á áŠá ááľá¨áľ** áłá˝áŚááľ â á°ááá** . OmniRoute á á á
áŤá˘áá˝ ááŤá¨á API áĽáŤááá˝á áĽáá´áľ áĽáá°áá°á¨áá áá¨á áĽá á ááá áááá
á°ááá¨áľá˘
| áááł | ááá |
| ------------- | ------------------------------------------------------------------- |
| **á¨ááŤááť ááł** | source/target á
áá¸áśá˝á ááá¨áĄáŁ áĽáŤá áááĽá áĽá á¨á°á°á¨áááá áá¤áľ áá˛áŤáá áááá¨áą |
| **á¨ááááľ ááŤáŞ** | á¨ááĽáł á¨ááááľ áááĽááśá˝á á ááŽáá˛á á áŠá ááአáĽá áááá request/response áá°áľ áááľáš |
| **á¨áá¨áŤ á¤áá˝** | á¨áľááá áľááááááľá ááá¨ááἠá á ááŤáł á¨á
áá¸áľ áĽááŽá˝ áá á¨áĄáľá áá¨áŤáá˝á áŤááą |
| **á¨ááĽáł ááľáľá** | áĽáŤááá˝ á ááŽáá˛á á áŠá á˛ááľ á
á˝á áłá áľáááá˝á áááá¨áą |
**ááłáŽá˝á á°á áááĄ**
- ááá á¨á°áá°á client/provider áĽáá¨áľ áĽááłáá°áłáŤ áŤáá
- á¨á áľá°áłá°áĽ áááŤáá˝áŁ á¨ááłáŞáŤ áĽáŞáá˝ áĽá á¨áľáááľ áĽáŤááá˝ á áľááá áĽáá°áá°á¨áá áŤá¨áááĄ
- OpenAIᣠClaudeᣠGemini áĽá ááážá˝ API á
áá¸áśá˝ ááŤá¨á á¨á
áá¸áľ ááŠááśá˝á áŤááłáľáŠ
---
### á¨áááŞáŤ áľááśá˝
á á áŠá áŤáá
áŠ** áłá˝áŚááľ â Settings â Routing** . áłá˝áŚááą á áŁá áĽá
á áá á¨áá áľáľáľáľ áľááśá˝á áŤáááŁá; combos áĽá áŤáľ-áŤáá°á á¨ááľáĽ á°á áŤá áľáĽáľáĽá áá°áááá˘
**áłá˝áŚááľ-á¨ááłáŠ áľááśá˝ (á¨áá፠á°á¨á ááááá)**
| áľááľ | ááá፠|
| ------------------------ | ------------------------------------------------------------------------- |
| **ááááŞáŤ áá** | áááŤáá˝á á á
áľá፠á
á°á á°á¨á°á áá ááá - ááá áá፠áĽáľáŤáá°áá áľá¨áľ áááá áĽáŤááá˝ áŤáľá°áááłáᢠ|
| **áἠáŽá˘á** | áááá á áá˝á á°ááŁá áá°áĽ á ááá áááŤáá˝ ááľáĽ áá°áśá˝ (á ááŁáŞáĄ 3 áĽáŞáá˝ á á ááľ áááŤ) |
| **P2C (á¨áááľ áááŤáá˝ ááá)** | 2 á¨áááá° ááłáŚá˝á áĽá áá° á¤ááá ááááľ ááááŁá - á¸ááá á á¤á áááᤠáá áŤáľá°áŤááá |
| **á áááá°** | Fisher-Yates shuffleá á áá áá ááĽáŤááłááą áĽáŤá á áááá° áá፠ááááŁá |
| **á áľááš áĽá
á áá á¨áá** | áľáŤááá á áĽáŠá á áá°áŤá¨áľ á áŁá áĽááłá á ááá `lastUsedAt` á¨áá áá
á°á áá° áááŤá á¨áááľáą ááááśá˝ |
| **á᪠á°ááťá˝áˇáá˘** | áá
á°áá á¨á
áľá፠áá áŤáá áá° áááŤá á¨áááľáą ááááśá˝áŁ ááá
á°á á᪠á á
áŤá˘áá˝ áááťá¸áľ |
**á¨áá áĽáá áĽá áŤáľ-á°á áľáľáŤá´ááá˝** (á á ááľ áĽáá ááá á `auto/*` á
áľá-á
áĽáŤáá˝ áááá á¨áá˝á - [AUTO-COMBO.md](../routing/AUTO-COMBO.md) áááá¨áą):
- `priority` - áĽáĽá
á
á°á á°á¨á°á, á ááŤá˝ ááĽ-áŽá˘á
- `weighted` - á¨á°ááŁáŁá áľáŤáá á áĽáŤááłááą áá´á ááĽá°áľ á¨á°á¨áá
- `fill-first` - áá°áŚá˝ áĽáľáŞá°ááą áľá¨áľ á¨ááááŞáŤáá áá´á áŤáĽá
- `round-robin` / `strict-random` / `random`
- `p2c` (á¨áááľ áááŤáá˝ ááá)
- `least-used` áĽá `cost-optimized`
- `auto` - á ááá áĽáŠáá˝ áá á¨áááŤ
- `lkgp` (ááá¨á¨áť áá á¨áłááá áĽáŠ á á
áŤá˘) - ááá¨á¨áťá áľáŹáłá á áááááľ á á
áŤá˘ áá ᣠá¨á፠áá° á
áá˝ ááááłá
- `context-optimized` - áá´áá á áľáá áá á ááľ ááľáŽáľ ááááŁá
- `context-relay` - á°áá°ááśá˝ á¨á
á á ááľ áá´áá˝ áááŁá áááŞáŤáá˝
#### ááŤá á°ááŁá ááá áá áŤáľá
áááŤá ááá áá áááľá (áááłááĄ- Claude Code/Codex ááŞáá˝ á á°ááá˘áŚá˝ ááŽáá˛áá˝ áááŁ)ᣠáááŠáĄ-
```http
X-Session-Id: your-session-key
```
OmniRoute áĽáá˛á `x_session_id` ááá áá áĽá á `X-OmniRoute-Session-Id` ááľáĽ áá¤áłááá á¨ááá áá ááá ááááłáá˘
Nginxá á¨á°á áá áĽá á¨áľá á áłá˝ á áááľáśá˝á á¨ááŠáŁ á áááĄ-
```nginx
underscores_in_headers on;
```
#### Wildcard áá´á á°ááá áľáá˝
á¨áá´á áľáá˝á áááá¨á á¨áąá áŤááľ ááľáá˝á ááá áŠáĄ
```
Pattern: claude-sonnet-* â Target: cc/claude-sonnet-4-6
Pattern: gpt-* â Target: gh/gpt-5.3-codex
```
Wildcards `*` (áááááá ááááá˝) áĽá `?` (áá á ááá) áá°áááá˘
#### á¨ááá°á
á°áá°ááśá˝
á ááá áĽáŤááá˝ áá á¨áá°áá አá ááá áá á¨ááá°á
á°áá°ááśá˝á áááášáĄ
```
Chain: production-fallback
1. cc/claude-opus-4-7
2. gh/gpt-5.3-codex
3. glm/glm-4.7
```
---
### á¨á°áááą á¨á á
áŤá˘áá˝ áĽáá áĽá á¨áááŞáŤ á
áŚá˝
á OmniRoute ááľáĽ áĽá á á
áŤá˘áá˝á áááŁáá áĽá á ááŤá¨áá¸á áááľáŹáľ ááłá ááłááá˝ áĽáá
á áá˘
#### 1. á¨áŽá˛áá ááŞá áŽááŚáĄ á¨áá°á-áá¨á¨áť ááááŤáľ ᨠCost/Speed Fallback áá
ááŽá˛áá ááŞáá˝ (OpenCode, Claude áŽáľ, Cursor, Cline) á°áľáá. ááááŞáŤ áá° áľáá á á áááᎠáá´áá˝ á¨áááľáą ááááśá˝áŁ á áŽáł áľáŤá ááá áľá
á°áśá˝ áá áá° ááŁá áŽáľ ááľá¨á፠áá´áá˝ ááááłáá˘
- **áłá˝áŚááľ** Combos â á á˛áľ áĽáá â áľá `agent-coding` â áľááľ `Priority`
- **áá´áá˝** :
1. `claude/claude-sonnet-4-6` (áá áŽáľ ááľá¨á፠ááŞá)
2. `openai/gpt-4o` (ááá°á á¨áá°á á á
á áŤáá ááľááľ)
3. `deepseek/deepseek-v4-flash` (á¨áá°á á
ááĽááᣠá᪠ááŁá˘ ááľááľ)
```bash
# Example via API
curl -X POST http://localhost:20128/api/combos \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "agent-coding",
"strategy": "priority",
"models": [
{ "model": "claude/claude-sonnet-4-6" },
{ "model": "openai/gpt-4o" },
{ "model": "deepseek/deepseek-v4-flash" }
]
}'
```
#### 2. áá-á°á¨á á ááśáá˛á ááľááľ áĽáá
áŤá API ááŞáá˝ á¨áľáŤ ááá á¨á áááľá¨á áĽá áá-á°á¨á áĽá ááá á¨ááá¸á á á
áŤá˘áá˝á áŤá°áŤáá˘
- **áľááľ** `Least Used` ááá `Round Robin` (áááąá á áŽáłáá˝ áá áŤá¨áááá)
- **áá´áá˝** :
1. `groq/llama-3.3-70b-versatile`
2. `gemini/gemini-2.5-flash`
3. `cerebras/gpt-oss-120b`
```bash
# Example via CLI
omniroute combo create free-stack \
--models "groq/llama-3.3-70b-versatile,gemini/gemini-2.5-flash,cerebras/gpt-oss-120b" \
--strategy round-robin
```
#### 3. ááá˛ááłá / áŤáá áĽá á¨á˝áá á§áá§
á¨ááľá áááá¤á áĽá áŽáľ áááá¨áľá áááŤáŤáľáą á¨áľáŤ áá°áśá˝ áአá¨áĽááł áá´áá˝á á¨á¨áá°á ááĽááľ á¨á˝áá áááá¨áľ áá ááŁááá˘
- **áľááá°-áĽááľ** : áŤáá-á¨áá˝á áá´áá˝á ááááŞáŤ á¨ááá¨áá `Priority` áĽáá áĽá á¨áá°á-áááľ áŤáá text/code áá´á á¨áá¨á¨áťáá˘
- **áá´áá˝** :
1. `gemini/gemini-2.5-pro` (á ááŤáŤ image/multimodal á¨áá¨áłáľ á˝ááł)
2. `openai/gpt-4o` (á¨á°ááŁá á áĽááł áĽá á¨ááłáŞáŤ á á ááá)
3. `deepseek/deepseek-v4-flash` (Text/code áľáááľ)
---
### á¨áááá áĽá á¨áá¨áł á¨ááá°á
á á áŠá áŤáá
áŠ** áłá˝áŚááľ â á
áá
áśá˝ â á¨áááá á˝ááł** .
OmniRoute á¨á ááľáľ á áŤááľ áá á á á
áŤá˘ á°á¨á á¨áááá á˝ááłá á°ááŁáŤá áŤá°ááá
1. **áá¨á á áá
áĽá ááŽáĽ** - á¨áĽáááľ-á°á¨á áĽáŤá áá
á¨á˝
- **áĽáŤááá˝ á á°áá (RPM)** - á¨áá°á áĽáŤááá˝ á á°áá á á ááľ áááŤ
- **á áĽáŤááá˝ ááŤá¨á áŤáá á°áá** - á áĽáŤááá˝ ááŤá¨á áŤáá á ááľá°á ááá°áľ á ááá°á¨ááśá˝
- **á¨áá°á á¨á°áŁáŁá áĽáŤááá˝** - á á ááľ áá፠á¨áá°áá á á ááľ áá á¨áá°á¨á áĽáŤááá˝
2. **á¨áááááľ ááááá** - á áľáá ááá¨áŠ á¨áá˝á ááľááśá˝ á áá áá ááľ áá á áááááľ á áááľ á áááľ áá
ááĄ
- **á¨áá á¨áľ ááááá** - ááłáá ááá¨á ááá˝á á¨áá áĽá¨áľ ááľááśá˝ ááŁáŞ á¨ááááá ááľáŽáľ
- **áá°áá áĽáá°áá ááá áááŽá˝á á°á áá** - áľááŁá áŤáá `Retry-After` áŤá¨áĽáŤá ááá á˛á°áĽ áááŽá˝á áłáá áŤáľáááŠ
- **á¨áá°á á¨áá áŁá á፠áĽááááá˝** - áá°á°ááá ááľááśá˝ á¨áá°áá ááá á¨áá ááááá á°á¨á
3. **á á
áŤá˘ á¨áá¨áł á°ááá** â á¨áŤá áĽáľá¨ áŤá á¨á á
áŤá˘áá˝ á áááłáŤáśá˝á áá¨áłá°ááᣠá á
áŤá˘á á¨á°áá¨á°áá á¨ááľá ááá፠áá°áĽ áá ááááľ áŤá°áááᣠáĽá á¨á°ááá¨á á¨ááľááľ áŁáŤ áá á˛á°ááľ á°áŁáŞáá áá¨ááłáá˘
- **á¨ááá¨áľ áá°áĽ** - áá° `DEGRADED` á¨áááŁáľá á ááľ á°á¨áłáłá á á
áŤá˘áá˝ ááľááśá˝
- **á¨ááá°á
áá°áĽ** - áá° `OPEN` á¨áááŁáľá á ááľ á°á¨áłáłá á á
áŤá˘áá˝ ááľááśá˝
- **ááá áŤááá áľá áłáá á áľááá** - á á
áŤá˘á áĽáá°áá á¨ááá¨áŠ á ááľ á¨á°ááľ ááľáŽáľ
- **CLOSED** (á¤áá) - á¨áĽáŤááá˝ áá°á á áá°áľ
- **DEGRADED** - á¨á áŤá ááľááśá˝ ááľáľá á áá°á¨áá áľ áá áĽáŤááá˝ á ááá áááľáłá
- **OPEN** - á¨á°á°ááá ááľááśá˝ á áá á á
áŤá˘á áááá áłááˇá
- **HALF_OPEN** - á á
áŤá˘á áŤááá á ááá¨á áá
á áááááľ áľááľ áŤáá `429` á°áá áá°áŚá˝ áááŤáá˘** á¨áááááľ ááááá** áĽá áá° á á
áŤá˘á á°áŁáŞ á ááá áŠá˘
á¨á á
áŤá˘á á°áŁáŞ á¨á ááľ áá áááł á áá ááłáŤá** áłá˝áŚááľ â á¤á** áĽáťá˘
4. **áĽáľáŞááá
á áá áĽá** â áĽáŤááłááą áĽáŠ áááááľ ááľááá áĽá¨áááá á¨ááᣠOmniRoute á¨ááááŞáŤáá ááááá áá á á
áĽá á°ááłáłá á¨á°áá á áĽáŤáá á áŤáľ-á°á áĽáá°áá ááá¨á áá˝ááá˘
5. **á¨ááĽááľ áá°áĽ áŤáľ-ááááŤ** - á¨áá áĽá¨áľ á á
áŤá˘áá˝ ááá˝ á¨áá á¨áá áŁá á
ááľáŽáśá˝á á˛áááąáŁ á
ááĽáŠ á˛áá áĽáá፠áááŽá˝ á¨á áŤáŁá˘áŤá áááááľ á
áááá áá˝á¨ááá˘
**á áá ááááĄ** á¨áááá á°á áá** á¤á** á¨á°áá¨á á áá á¨ááĽáł á áááááľ á°áŞ áááťáá˝á áááááá áĽá áááľááá áá˝á˘ ᨠResilience áá˝ áá
á¨áľá áĽáť ááááŁáá˘
---
### á¨ááἠááł áá° á᪠áá / á áľááŁ
á¨ááἠááł ááľáŹáá˝á á ááľáĽ áŤáááĽáŠ** áłá˝áŚááľ â á
ááĽáŽá˝ â áľáááľ áĽá áá¨ááť** .
| áľáááľ | ááá፠|
| --------------------------- | ---------------------------------------------------------------------------------------------------------- |
| **á¨ááἠááł áá° á᪠áá** | á¨á ááá SQLite áłáłá¤á áĽáá° `.sqlite` ááá áŤáááłá |
| **áááá áá° á᪠áá (.tar.gz)** | áá á¨áá áŁá á፠áá
á°áá áŤáááłáᥠáłáłá¤áᣠááźáśá˝áŁ áĽááĽáŽá˝áŁ á¨á á
áŤá˘ áááááśá˝ (ááá ááľááááśá˝)ᣠAPI ááá á˛á ááἠ|
| **á¨ááἠááł á áľááŁ** | á¨á ááá áłáłá¤á ááá°áŤáľ `.sqlite` ááá ááľááᢠ`DISABLE_SQLITE_AUTO_BACKUP=true` áŤááá á áľá°áá á¨ááľááŁáľ ááľáŹ á áŤáľ-á°á ááá áŤáᢠ|
```bash
# API: Export database
curl -o backup.sqlite http://localhost:20128/api/db-backups/export
# API: Export all (full archive)
curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll
# API: Import database
curl -X POST http://localhost:20128/api/db-backups/import \
-F "file=@backup.sqlite"
```
**á¨ááľááŁáľ áá¨áááŤáĄ** á¨áá á¨ááŁá ááá á¨á°á¨ááá á ááášá
ááľ (SQLite pragma check)ᣠá áľááá á°áá á¨áŚá˝ (`provider_connections`ᣠ`provider_nodes`ᣠ`combos`ᣠ`api_keys`) áĽá áá á (á¨áá°á 100 ááŁ) ááá˘
**ááłáŽá˝á á°á áá**
- á áá˝áá˝ ááŤá¨á OmniRoute áŤáááŠ
- áá á°á áááá፠ááŤá ááľáŹáá˝á ááá áŠ
- á áĄáľá á áŁááľ ááŤá¨á á ááááŽá˝á á á፠(áááá â áááŤáľ áá
á°á áá° áá áá)
---
### á
ááĽáŽá˝ áłá˝áŚááľ
á¨á
ááĽáŽá˝ áá˝ á¨á°á°áŤáá áá° ááľáĽ ááá˘** 7 áľáŽá˝** áááá á á°áłáĄ-
| áľá | áááśá˝ |
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **á á ááá** | á¨áľáááľ áá¨ááť ááłáŞáŤáá˝áŁ ááŁáŞ áŁá
áŞáŁ á¨áá¨á¨áť ááĽáĽ ááť áłáááľ |
| **ááá** | á¨áá˝áł áááŁá áŞáŤáá˝ (light/dark/system)ᣠá¨áá á áá áłáááľáŁ á Cloudflare/Tailscale/ngrok ááť áŤááśá˝ á¨ááá ááá¨áŞáŤáá˝ |
| **AI** | á¨á áľá°áłá°áĽ á ááľ (ááá፠/ áŤáľ-á°áá / áĽá / á áľáá - [THINKING_BUDGET.md](./THINKING_BUDGET.md) áááá¨áą) ᣠááá á áá á¨áľáááľ áá á¨á፠ᣠááŁá áá¸á፠áľáłá˛áľá˛ááľ |
| **á°á
áááľ** | Login/Password ááźáśá˝áŁ IP á¨ááłá¨áť áááŁá áŞáŤáŁ API auth á `/models`ᣠá á
áŤá˘á áááľáŁ á¨ááŁá ááá á áŁá |
| **ááááá** | áááá°áá á¨áááŞáŤ áľááľ (ááááŞáŤ áá / áá áŽá˘á / P2C / á áááá° / á áľááš áĽá
á áá á¨áá / á᪠á¨á°ááťá¸)ᣠá¨áąá áŤááľ áá´á á°ááá áľáá˝áŁ á¨ááááť á°áá°ááśá˝áŁ áĽáá ááŁáŞáá˝ |
| **á¨áááá á˝ááł** | áá¨á áá áá ᣠá¨áááááśá˝ ááááá ᣠá¨á á
áŤá˘ ááŤá áá
á¨áľ áĽá á¨áá áŁá á
áŁá
᪠|
| **á¨áá** | á¨á ááá áá ááŽáᲠáá
á (HTTP/SOCKS5)ᣠá á á
áŤá˘á á°áŞ áá˝áŤáᢠ|
á á ááá á¨á áá á áá á°ááŁá˘-áĽáť áááἠááľáłááťáá˝á áĽá á¨áá¸á፠ááľáłááťáá˝á á ááŁááᢠá¨ááἠááł ááá¨áľ áĽá á¨áááťá¸áľ á
áá
áśá˝ á `/api/settings/database` á áŠá áááŤá; á áĽá
áá¸á፠áá˝áłáľ `DELETE /api/cache` áá ááá. áĽáŤá áĽá á¨á°áŞ áá á¨áľáá˝ á `CALL_LOGS_TABLE_MAX_ROWS` áĽá `PROXY_LOGS_TABLE_MAX_ROWS` ááĽáĽá áá°á¨ááŁá¸ááá˘
---
### ááŞáá˝ áĽá á¨á ááľ á áľá°áłá°á
á á áŠá ááľá¨áľ** áłá˝áŚááľ â ááŞáá˝** .
| áľá | ááá |
| ------------ | ----------------------------------------------------------------- |
| **á ááľ** | á á ááľ API ááá á¨á᪠áá°áŚá˝á á daily/weekly/monthly á ááśá˝ áĽá á á
á˝á áľ áá¨áłá°á |
| **á¨áá á á°áŁáĽ** | á¨áá´á á¨áá áá¤áśá˝á áááá¨áą áĽá áŤááľá â áá á 1 ᪠input/output áśá¨áá˝ á á á
áŤá˘ |
```bash
# API: Set a budget
curl -X POST http://localhost:20128/api/usage/budget \
-H "Content-Type: application/json" \
-d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}'
# API: Get current budget status
curl http://localhost:20128/api/usage/budget
```
**á᪠áá¨áłá°ááĄ** áĽáŤááłááą áĽáŤá á¨áśá¨á á á áááá áááááŁá áĽá á¨áá á°áá á¨áĄá á áá áá á᪠áŤá°ááᢠááľáĽ ááááŽá˝á áááá¨áą** áłá˝áŚááľ â á á ááá** á á á
áŤá˘áŁ áá´á áĽá API áááá˘
---
### á¨áľáá˝ á
á
OmniRoute á OpenAI-á°áłáá á¨áá¨á¨áť ááĽáĽ á áŠá á¨áľáá˝ á
áá áá°ááááĄ-
```bash
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
# Example with curl
curl -X POST http://localhost:20128/v1/audio/transcriptions \
-H "Authorization: Bearer your-api-key" \
-F "file=@audio.mp3" \
-F "model=openai/whisper-1"
```
`deepgram/nova-3` á¤á°á Deepgram ááááľ áá áĽá Deepgram API ááá áŤáľáááááᢠOpenRouter áĽáť á¨á°ááᨠ`openrouter/deepgram/nova-3` áá ááá˘
**áááá-áá°-á˝áá (á¨á˝áá áááŁá)** á á
áŤá˘áá˝áĄ-
- `openai/` (ášáášááł á¨ááľáá)
- `groq/` (Groq ášáášááł áąááŚ)
- `deepgram/` (á¨á፠á¤á°á°áĽ)
- `assemblyai/`
- `nvidia/` (ááŤáŹáľáŁ áŤááŞ)
- `huggingface/` (á¨ášáášááł ááŠááśá˝)
- `qwen/`
**á˝áá-áá°-áááá (`POST /v1/audio/speech`)** á á
áŤá˘áá˝áĄ-
- `openai/` (tts-1ᣠtts-1-hd)
- `hyperbolic/`
- `deepgram/` (áŚáŤ)
- `nvidia/` ( Magpie TTS)
- `elevenlabs/`
- `huggingface/`
- `inworld/`
- `cartesia/`
- `playht/`
- `kie/`
- `aws-polly/`
- `xiaomi-mimo/`
- `coqui/`, `tortoise/`
- `qwen/`
á¨áá°áá á¨áľáá˝ á
áá¸áśá˝ áá˝áá áááŁá `mp3`, `wav`, `m4a`, `flac`, `ogg`, `webm`. TTS á¨áá¤áľ á
áá¸áśá˝ á á á
áŤá˘á (mp3, wav, opus, pcm, mulaw) áá ááá°áá.
---
### áĽáá áááŁá á áľááśá˝
á á¨áĽáá áááŁá á áŤáá
áŠ** áłá˝áŚááľ â Combos â Create/Edit â** .
| áľááľ | ááá፠|
| ------------------- | ----------------------------------------------------- |
| **áá-áŽá˘á** | á á
á°á á°á¨á°á áá´áá˝ ááľáĽ áá˝á¨á¨á¨áŤá |
| **á
áľááŤ** | áááá á¨ááááŞáŤáá áá´á ááááŤá; á¨áááá°á á áľá
á°áľ áá áĽáť ááᢠ|
| **á áááá°** | ááĽáŤááłááą áĽáŤá á¨áááá° áá´á á¨áŽááŚá ááááŁá |
| **á¨á°ááá** | á áĽáŤááłááą áá´á á á°áá°á á ááĽá°áľ áá á á°ááŁáŁá ááááľ ááľááŽá˝ |
| **á áľááš áĽá
á áá á¨áá** | áá° á ááłáŤá á¨áááľáąáľ áĽááľ á¨á
áἠáá áĽáŤááá˝ (áĽáá áááŞáŤáá˝á áá ááá) |
| **ááŞ-á¨á°ááťá¸** | á áŁá ááŤá˝ áá°áá áá´á á¨áááľáą ááááśá˝ (á¨áá á áá á¨áĽá áá ááá) |
áááá°áá áĽáá ááŁáŞáá˝ áááአáá˝ááá˘** áłá˝áŚááľ â Settings â Routing â áĽáá ááŁáŞáá˝** . áĽáá á˘áá áá ááĽááŤáá˝ á¨á ááá á¨áĽáŤá áá ááĽá፠á ááŁáŞ ááááłáᢠá°á áá** á¨ááá áá ááĽá፠(á°á¨ááśá˝)** á áŽáጠááŁáŞáá˝ ááá á ááá°áĽ áĽáá áá á áá á á ááľ ááá áá°áĽ ááŁá ááľááľá á˛áŤáľááł áĽáť ááá˘
á¨áᎠáááá¨áľ áĽáá ááľáŁáśá˝ ááá á ááĽá°ááᢠá°áá** á¨áᎠáááá¨áľ ááľáŁáśá˝** áĽááá
á¨áááá¨áľ áŁá
áŞáŤáľ á¨ááľáľá áá° áá ááááľ ááááá˝ áĽááłáááᣠTTFT áłáŞá áá á°ááľáá°á á˘áááá˝á ááááᣠááá á¨á°áááľ áĽáŤááá˝á á¨áááá
ááá¨áá¨á á¨á°á°áá¨áᤠáĽáąá ááááľ á¨á°ááᨠá áĽáá ᣠáááłá TTFT ááááá˝á áĽá á¨áá á¨ááá°á
áááá
ááá
á°á á¨á
áŤáľ áááá¨áľ routing/request áłááááľá áááá áŤá¨áľ áŤáľá˝ááá˘
á á°ááá** ááľáá°áŤ ááľ áááŤáá** á¨ááááš á á
áŤá˘áá˝ áĽáĽá
`max_tokens` / `maxOutputTokens` áá°áŚá˝á á˛áááᢠá˛áá áŽáጠááááá á¨ááłáá
á¨áá¤áľ áἠááá¸á áá´áá˝ á¨ááááá-áá´á áá áááá áĽáť áá¨ááŤá áĽá á°á
áááą á¨á°á á áá áĽá´áľ á¨á፠áŤá á áá á áááá áľ áá á¨á°áá áá ááľáá°áŤ áá°áĽ áłááá¨á áá°áááᢠá¨á°áá áá áá°áĄ ááľááá á¨ááłáá
áŽá፠á áá á¨ááᣠOmniRoute á¨ááááá áĽáŤá á¨áááá á ááľ áá°á፠áŤá áŤááá˘
---
### á¨á¤á áłá˝áŚááľ
á á áŠá ááľá¨áľ** áłá˝áŚááľ â á¤á** . á¨áĽááá°á áá áľáááľ á¨á¤á á á ááá áĽááł á¨6 áŤááśá˝ áááĄ-
| áŤááľ | áá áŤáłáŤá |
| --------------------- | ---------------------------------------- |
| **á¨áľáááľ áááł** | á¨áá áááłáŁ áľáŞáľáŁ á¨áá
á°á¨ áľááľáł á á áááᣠá¨ááἠáá፠|
| **á á
áŤá˘ á¤á** | ááá á áá á á
áŤá˘ á¨áá¨áł á¨ááá°á á¨á ááľ áá áááł |
| **á¨áá áá°áŚá˝** | ááŁáŞ á¨áááááľ áááááŁáá˝ á á ááľ áá፠á¨ááŞá áá áá |
| **áá áááááŤáá˝** | ááŁáŞ áá´á áľááľ áŤáá¸á áááááŤáá˝ áĽá áááŤá ááááŤáá˝ |
| **á¨ááá áá¸ááŤ** | á¨ááŁááľ áá¸á፠áľáłá˛áľá˛ááľ (áá áááá˝áŁ á¨áááłáľ áá á) |
| **Latency Telemetry** | p50/p95/p99 áááá¨áľ áľáá á á á
áŤá˘ |
**á áá ááááĄ** á¨á¤á ááš á á¨10 á°á¨ááľ á áŤáľ-á°á ááłá°áłáᢠá¨áľáááš á á
áŤá˘áá˝ á˝ááŽá˝ áĽáŤáá áá¸á áĽáá°áá áááá¨áľ á¨áá¨áł á¨ááá°á áŤááąá áá ááá˘
---
## đ¤ áŤáľ-á°á ááááá (áŤá áá
á)
OmniRoute á ááá á¨á°ááá á á
áŤá˘áá˝ ááľáĽ ááĽáŤááłááą áĽáŤá áááĄá áá´á á¨áááἠ**á áá¤áľ-ááĽáĽ á¨áá፠áŤáľ-á°á áááááŞáŤ** áá áááŁá â á¨ááá¨áŁá¨áĄáľ áĽáá¨áľ á¨ááᢠáĽáŤááá á¨`auto/*` á
áľá-á
áĽáŤáá˝ á á ááą áĽáť áááŠá¤ OmniRoute á á
á˝á áľ áááŁá áĽáá¨áľ ááááŁáᣠáĽáŠáá˝áá á áááá¨áľáŁ ááŞáŁ á¨áľáŹáľ áá áᣠá¨áááą áá ááŁáŁáᣠáá´á áá°ááŁáŠ áŤáá áĽááľáŁ á¨á
áἠáá ááľááśá˝áŁ áŽáł áĽá á¨áá¨áł-ááŤá áááł áá á¨áľ áááááá˘
| á
áľá-á
áĽáŤ | á¨ááŤááťá¸á |
| -------------- | -------------------------------------------------------------------------- |
| `auto` | áááá ááŁáŞ (áááá¨áľ Ă á᪠à á¨áľáŹáľ áá á) |
| `auto/coding` | á¨áŽáľ áĽáŤáá˝áŚ ClaudeᣠGPT-5ᣠGLMᣠKimiᣠQwen Coder áĽá DeepSeek codersá ááááŁá |
| `auto/cheap` | áá
á°áá $/tokenᣠá¨áá°á áááá¨áľá ááá áá |
| `auto/fast` | áá
á°áá áááá¨áľáŁ ááŞá á˝á ááá |
| `auto/offline` | á á áŤáŁá˘á áŤá á á
áŤá˘áá˝ áĽáť (OllamaᣠvLLMᣠllama.cpp) â á¨á ááłá¨ áá¨áĽ áá°áአáá
áŽá˝ á áá áá |
| `auto/smart` | ááááŞáŤ á¨ááááá áĽáŤáľ (OpusᣠGPT-5 xhighᣠR1ᣠGLM 5.1 reasoning) |
| `auto/lkgp` | "á¨áá¨á¨áťá á¨áłáá áĽáŠ á á
áŤá˘" â á áá¨á¨áť áá°áłáŤá á á
áŤá˘ áŤáľáááŁáᣠá¨ááŤá áá° á°ááŚá˝ ááááłá |
ááłááŚ
```bash
curl -X POST http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer $OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "auto/coding",
"messages": [{ "role": "user", "content": "Refactor this Python function" }],
"stream": true
}'
```
áŤáľ-á°á áááááŞáŤá á [AUTO-COMBO.md](../routing/AUTO-COMBO.md) ááľáĽ áá á áá á°áááżá â áá
á á¨áá¤áľ-ááĽáĽ ááĽá°áśá˝á áĽáá´áľ ááľá°áŤá¨áᣠá á
áŤá˘áá˝á á áĽáá áááá ááľááŁáľ áĽá á **áłá˝áŚááľ â áŤáľ-á°á áĽáá¨áľ** ááľáĽ á¨ááááá ááłááá˝á áááááá áŤáŤáľáłáá˘
---
## đ á¨MCP & A2A áá
á°áľ
OmniRoute **á¨MCP á áááá** (Model Context Protocol) áĽá **á¨A2A á áááá** (Agent-to-Agent JSON-RPC 2.0) ááᢠááááá á¨MCP áá á°áłáá á¨áá IDE ááá á¨ááŞá á áľá°ááá
á¨OmniRoute ááŁáŞáŤáá˝á á ááĽáł áá ፠áá˝áá â á°á¨á᪠áá á
á፠á áŤáľááááá˘
### á¨MCP ááááŁáá˝
- **SSE**ጠ`http://localhost:20128/api/mcp/sse`
- **áááá
á¨áá˝á HTTP**ጠ`http://localhost:20128/api/mcp/stream`
- **stdio**ጠ`omniroute --mcp` (stdioá ááááᥠá¨IDE á°á°áŞáá˝)
### Claude Desktopá áááááľ
á macOS áá `~/Library/Application Support/Claude/claude_desktop_config.json`á ááá á Windows/Linux áá á°ááŁáŁáá ááá áŤááľááŚ
```json
{
"mcpServers": {
"omniroute": {
"command": "omniroute",
"args": ["--mcp"]
}
}
}
```
### Cursor / Continue / VS Code MCPá áááááľ
á¨SSE URL `http://localhost:20128/api/mcp/sse`á áĽá á **áłá˝áŚááľ â API áááá˝** ááľáĽ á¨á°áá ᨠBearer API ááá áá ááá˘
### á¨áááľ áá°áá˝
MCP á á áá áá 32 áľáŤá áŤáá¸á á¨áááľ áá°áá˝á ááááťáᢠáĽáŤááłááą Bearer ááá áá°áá°á á¨áááľ áá°áá˝ áĽáť ááá°áĽ áá˝áá â áááá á¨áááľ áá°áá á¨ááŁáŞáŤ áááá [MCP-SERVER.md](../frameworks/MCP-SERVER.md)áᣠáJSON-RPC áááááĽá á°áá [A2A-SERVER.md](../frameworks/A2A-SERVER.md)á áááá¨áąá˘
---
## đ§ á¨áá
ááľ áľáááľ
OmniRoute á¤áááśá˝ áĽá á¨A2A áááá ááĽáĽ áá°áá°á áááá˝ á¨á°ááá áá°áśá˝á (áááłáጠ`code-review`ᣠ`summarize`ᣠ`extract-facts`ᣠ`web-research`) ááľáŹáľ áĽáá˛á˝á ááľáá á¨áá˝á **á¨áá
ááľ áááá** (`src/lib/skills/`) áŤáááŁáá˘
- **á¨áá ፠áŚáł á áááá˝** â áá
ááśá˝á á¨**Dashboard â Skills** áŤáľáą áĽá ááŤá
- **á¨á¨ááá áá°áá˝** â á¨áľááš API áááá˝ á¨áľáášá áá
ááśá˝ ááĽáŤáľ áĽáá°áá˝á áááľáĄ
- **áĽá áá
ááśá˝** â á¨TypeScript áááá á `src/lib/a2a/skills/` ááľáĽ áŤáľáááĄáŁ áááááĄáľáŁ á¨ááŤá áá˛áŤáá á A2A á áŠá áá ፠áá˝áá
áá ááŁááťáŚ [SKILLS.md](../frameworks/SKILLS.md)á˘
---
## đž á¨ááľáłááť áľáááľ
OmniRoute á áľáĽáá
á°ááľáŽ áááŁáľ á ááŤáááľ **á¨á¨á
á áá á¨ááááľ ááľáłááťá** á ááááľ áŤá¨ááťááŚ
- **SQLite FTS5** áŁáá á¨ááááľ á°áŤáá˝ ááľáĽ á ááá áá ááááá
- **Qdrant vector store** (á ááŤá) ááľáááá ááľáłááľ
- **áŤáľ-á°á á¨áĽáááł áááŁáľ** â á áŤááľáŁ áááŤáá˝ áĽá ááłááá˝ á¨áĽáŤááłááą ááá áá á áá á°á ááá á `memory_facts` á°áá á¨áĽ ááľáĽ ááááŁá
- ááľáłááťáá˝ á áĽáŤááłááą API ááá áĽá ááá áá á¨á°áá°á áá¸á
ááľáłááťáá˝á á **Dashboard â Memory** ááľáĽ áŤáľá°áłáľáŠ (ááááᣠáŤááľáᣠáá° áá áááŠáŁ áŤá˝áą)ᢠá¨HTTP á áááá˝ (`/api/memory/*`) á¤áááśá˝ áĽáááłáá˝á á ááŽááŤá áĽáá˛á¨áአáĽá áĽáá˛á áá áŤáľá˝áá¸áá â [MEMORY.md](../frameworks/MEMORY.md) áááá¨áąá˘
---
## đ Webhooks
áá
á˝á áłá ááľáľá áĽá áŤáľ-á°á á á°áŤá á¨OmniRoute ááľá°áśá˝á áááááĄá˘
- á **Dashboard â Webhooks** ááľáĽ á¨ááľá¨áť URL áĽá á¨HMAC ááá ááľáĽá á áá áá webhook ááá áŠ
- á¨ááá ááľá°áśá˝áŚ `request.completed`ᣠ`request.failed`ᣠ`provider.unavailable`ᣠ`budget.exceeded`ᣠ`combo.switched`ᣠ`circuit_breaker.opened`ᣠ`circuit_breaker.closed`
- áĽáŤááłááą á¨ááἠáááľ ááá¨áá፠`X-OmniRoute-Signature` (HMAC-SHA256) áŤáŤáľáłá
- áłáá áá¨áŤáá˝áŚ áĽá¨á¨áᨠá áááľ á¨áĽá á áá 3 áá¨áŤáá˝áŁ á¨ááŤá áŤáá°áłáŠ áááááśá˝ áá¨á
ááá áĽá
áľ á [WEBHOOKS.md](../frameworks/WEBHOOKS.md) ááľáĽ ááááá˘
---
## âď¸ á¨á°áá á¤áááśá˝
OmniRoute á¨á
á áá á¨áááľáą á°ááŁáŤáľá á¨á áŤáŁá˘áá ááľá°ááá፠á¨ááŤáľá°áłáľá¨á á°ááłáłá áłá˝áŚááľ áááá áĽáá˛á˝á á¨á°áá á¨áŽáľ á¤áááśá˝ (**OpenAI Codex Cloud**ᣠ**Devin**ᣠ**Jules**ᣠ**Antigravity**) áá ááááłáá˘
- á°ááŁáŤáľá á **Dashboard â Cloud Agents** ááľáĽ ááá á `POST /api/v1/agents/tasks` á áŠá ááá áŠ
- á¨áĽáŤááłááąá á°ááŁá áááłáŁ ááááŚá˝ áĽá áá¤áśá˝ áá¨áłá°á
- ááĽáŤááłááą á á
áŤá˘ á¨áŤáľáá API ááá áá áá â á¨ááá˘áŤ ááľá¨ááá˝ á¨OmniRoute á áĽááľ áá˝á á áááĄá
áá ááŁááťáŚ [CLOUD_AGENT.md](../frameworks/CLOUD_AGENT.md)á˘
---
## đ ď¸ ááŽááŤáá á áľá°áłá°á
**á¨`manage` scope áŤááá Bearer key** á áá áá áĽáŤááłááąá á¨OmniRoute ááĽáľ (providersᣠcombosᣠkeysᣠsettings) á HTTP ááľá°áłá°á áá˝ááá˘
Keyáá á **Dashboard â API Keys â New Key â Scope: manage** ááľáĽ ááá áŠáŁ á¨ááŤáŚ
```bash
# Providersá áááá
curl http://localhost:20128/api/providers \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"
# á¨provider áááááľ á¨áá
curl -X POST http://localhost:20128/api/providers \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
-H "Content-Type: application/json" \
-d '{ "provider": "openai", "apiKey": "sk-...", "name": "main" }'
# Combo áá á
curl -X POST http://localhost:20128/api/combos \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "premium", "strategy": "priority", "models": [{ "model": "cc/claude-opus-4-7" }, { "model": "glm/glm-5.1" }] }'
# API keysá áááá/áá á
curl http://localhost:20128/api/keys -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"
curl -X POST http://localhost:20128/api/keys -H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY" \
-d '{ "name": "ci-bot", "scopes": ["chat"] }'
```
áááá á¨endpoint áŤáłáá áĽá á¨request/response schemas ááá¨áľ [API_REFERENCE.md](../reference/API_REFERENCE.md)á áááá¨áąá˘
---
## đť ááľáŁá CLI
OmniRoute áááááᣠáááá፠áĽá ááá°áľ áá ááĽáĽá á¨ááľáĽ CLI (`omniroute âŚ`) áá áááŁáᢠáá
á¨áśáľá°á ááá CLIáá˝á (Claude Code, Cursor, Codex, Cline, âŚ) á¨OmniRoute áá áĽáá˛ááá á¨ááŤáá
á¨á **á áłá˝áŚááą ááľáĽ áŤáá "CLI ááŁáŞáŤáá˝" áá˝ á¨á°áᨠáá**á˘
```bash
omniroute setup # ááľá°ááĽáŤá ááááŞáŤ (á¨ááá ááᣠá á
áŤá˘áá˝áŁ áĽáá¨áśá˝)
omniroute setup --non-interactive # áCI ááš
omniroute doctor # á¨á¤á ááááŤáá˝ (á¨ááἠáááŤáŁ DBᣠá á
áŤá˘áá˝áŁ áá°áŚá˝)
omniroute providers available # á¨áá°áá á á
áŤá˘áá˝á áááá
omniroute providers list # á¨á°ááአáááááśá˝á áááá
omniroute providers test # á¨á á
áŤá˘ áááááľá á ááĽáł ááľá˝
omniroute combos list # áĽáá¨áśá˝á áááá
omniroute combos switch # ááŁáŞ áĽáá¨áľá á ááá
omniroute models # á¨ááá áá´áá˝á áááá (--json, --search)
omniroute keys add | list | remove # á¨API áááá˝á á¨á°áááá á áľá°áłáľá
omniroute backup # á¨áá
á + DB á
á˝á áłá á
á
omniroute restore [] # á¨á
á˝á áłá á
á áááľ
omniroute health # áááá á¨á¤á áááł (á°áŁáŞáá˝áŁ áá¸ááŤáŁ áá
á°á¨ áľááľáł)
omniroute quota # á¨á á
áŤá˘ áŽáł á á ááá
omniroute mcp status # á¨MCP á áááá áááł
omniroute a2a status # á¨A2A á áááá áááł
omniroute tunnel list|create|stop # Cloudflare/Tailscale/ngrok ááťáá˝
omniroute reset-password # á¨á áľá°áłáłáŞáá á¨ááá áá áłáá á áľááá
omniroute --mcp # á¨MCP á ááááá á stdio áá á áľááá
omniroute --port 3000 # á ááááŠá á áĽá áá°áĽ áá á áľááá
```
á áá áááጠá¤áá áŤááá á¨á á
áŤá˘ áááááśá˝ á˛áአááá፠áááááľ `omniroute doctor --json`á á¨ááľáľá ááŁáŞáŤá áá áŤáŁááŠá˘
---
## đĽď¸ á¨á´áľááśá áá°áá áŞáŤ (Electron)
OmniRoute áWindowsᣠmacOS áĽá Linux áĽáá° á¤á°á á¨á´áľááśá áá°áá áŞáŤ ááááá˘
### ááŤá
```bash
# á¨electron áááŤáŚ
cd electron
npm install
# á¨áááľ áááł (á áá°áľ áá áŤá Next.js á¨áááľ á áááá áá ááááá)áŚ
npm run dev
# á¨áááľ áááł (áŤáąá á¨áťá áááŁáłá áá ááá)áŚ
npm start
```
### áŤááá˝á ááááŁáľ
```bash
cd electron
npm run build # á¨á áá ááľá¨á
npm run build:win # Windows (.exe NSIS)
npm run build:mac # macOS (.dmg áááá°áá)
npm run build:linux # Linux (.AppImage)
```
áá¤áľ â `electron/dist-electron/`
### ááá áŁá
áŞáŤáľ
| áŁá
᪠| ááá፠|
| ------------------ | ---------------------------------------------------- |
| **á¨á áááá áááááľ** | ááľáŽáąá á¨ááłá¨áą á ááľ á ááááŠá á á°á°ááá áááľáťá (áŁáś á፠áá˝ á áááá) |
| **á¨áľáááľ áľáŞ** | áá° áľáŞ á áłááľáŁ áá°áĽ áááᣠá¨áľáŞ áááá áᣠ|
| **á¨áá°áĽ á áľá°áłá°á** | á¨á ááááŠá áá°áĽ á¨áľáŞá ááá (á ááááŠá á áŤáľ-á°á áłáá áŤáľáááŤá) |
| **á¨áááľ á°á
áááľ ááá˛** | á ááá áá áŤáľááá˝ á áŠá áĽáĽá
CSP |
| **áá á á áĽááľ** | á á ááľ áá á ááľ á¨áá°áá áŞáŤ á áĽááľ áĽáť áá ፠áá˝áá |
| **á¨ááľáá áá áááł** | á áĽáŽ á¨áłá¸áá Next.js á áááá áŤáá áááá¨áĽ áá áŤá |
### á¨á áŤáŁá˘ á°ááááŽá˝
| á°áááá | ááŁáŞ | ááá፠|
| --------------------- | ------- | ----------------------------- |
| `OMNIROUTE_PORT` | `20128` | á¨á áááá áá°áĽ |
| `OMNIROUTE_MEMORY_MB` | `512` | á¨Node.js áá áá°áĽ (64â16384 MB) |
đ áá á°ááľáŚ [`electron/README.md`](../../electron/README.md)