# User Guide (Igbo)
🌐 **Languages:** 🇺🇸 [English](../../../../guides/USER_GUIDE.md) · 🇪🇹 [am](../../../am/docs/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) · 🇮🇹 [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) · 🇪🇹 [am](../../../am/docs/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) · 🇮🇹 [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)
Nduzi zuru ezu maka ịhazi ndị na-enye ọrụ, imepụta combo, ijikọ ngwa CLI, na ibunye OmniRoute.
---
## Ndepụta Ihe Dị n’Ime
- [Ọnụahịa na Nlele Ngwa Ngwa](#-pricing-at-a-glance)
- [Ọnọdụ Ojiji](#-use-cases)
- [Nhazi Provider](#-provider-setup)
- [Njikọ CLI](#-cli-integration)
- [Mbugharị](#-deployment)
- [Ụdị Model Dị](#-available-models)
- [Atụmatụ Dị Elu](#-advanced-features)
- [Auto-Routing (Nhazi efu)](#-auto-routing-zero-config)
- [Njikọ MCP & A2A](#-mcp--a2a-integration)
- [Sistemụ Skills](#-skills-system)
- [Sistemụ Memory](#-memory-system)
- [Webhooks](#-webhooks)
- [Cloud Agents](#-cloud-agents)
- [Nlekọta Site na Mmemme](#-programmatic-management)
- [CLI Dị n’Ime](#-internal-cli)
- [Ngwa Desktop (Electron)](#-desktop-application-electron)
---
## 💰 Ọnụahịa na Nlele Ngwa Ngwa
| Ọkwa | Provider | Ọnụahịa | Ntọgharị Quota | Nke Ọ Kachasị Mma Maka |
| ------------------- | ----------------- | -------------------- | -------------------------- | --------------------------- |
| **💳 NDEBANYE AHA** | Claude Code (Pro) | $20/ọnwa | 5h + kwa izu | Ndị debanyerela aha |
| | Codex (Plus/Pro) | $20-200/ọnwa | 5h + kwa izu | Ndị ọrụ OpenAI |
| | GitHub Copilot | $10-19/ọnwa | Kwa ọnwa | Ndị ọrụ GitHub |
| **🔑 API KEY** | DeepSeek | Kwụọ ka i si jiri ya | Enweghị | Ntụgharị uche dị ọnụ ala |
| | Groq | Kwụọ ka i si jiri ya | Enweghị | Inference dị oke ọsọ |
| | xAI (Grok) | Kwụọ ka i si jiri ya | Enweghị | Ntụgharị uche Grok 4 |
| | Mistral | Kwụọ ka i si jiri ya | Enweghị | Model ndị a na-akwado na EU |
| | Perplexity | Kwụọ ka i si jiri ya | Enweghị | Nke ọchụchọ kwalitere |
| | Together AI | Kwụọ ka i si jiri ya | Enweghị | Model ndị open-source |
| | Fireworks AI | Kwụọ ka i si jiri ya | Enweghị | Onyonyo FLUX dị ọsọ |
| | Cerebras | Kwụọ ka i si jiri ya | Enweghị | Ọsọ wafer-scale |
| | Cohere | Kwụọ ka i si jiri ya | Enweghị | Command R+ RAG |
| | NVIDIA NIM | Kwụọ ka i si jiri ya | Enweghị | Model ụlọ ọrụ |
| | Baidu Qianfan | Kwụọ ka i si jiri ya | Enweghị | Model ERNIE |
| **💰 ỌNỤ ALA** | GLM-4.7 | $0.6/1M | Kwa ụbọchị n’elekere 10AM | Ndabere mmefu ego |
| | MiniMax M2.1 | $0.2/1M | Ọ na-atụgharị kwa awa 5 | Nhọrọ kacha ọnụ ala |
| | Kimi K2 | $9/ọnwa kpọmkwem | 10M tokens/ọnwa | Ọnụahịa a pụrụ ibu amụma |
| **🆓 N’EFU** | Qoder | $0 | Oke provider na-emetụta ya | Nyochaa katalọgụ dị ugbu a |
| | Kiro | $0 | ~50 credits/ọnwa | Claude n’efu |
---
## 🎯 Ọnọdụ Ojiji
### Ọnọdụ 1: "Enwere m ndenye aha Claude Pro"
**Nsogbu:** Quota na-ekubi ume n’ejighị ya, a na-enwe oke ọnụego n’oge ide code siri ike
```
Ngwakọta: "maximize-claude"
1. cc/claude-opus-4-7 (jiri ndenye aha ahụ mee ihe n’uju)
2. glm/glm-4.7 (ndabere dị ọnụ ala mgbe quota gwụrụ)
3. if/qwen3.8-max-preview (ndabere mberede n’efu)
Ọnụahịa kwa ọnwa: $20 (ndenye aha) + ~$5 (ndabere) = $25 n’ozuzu
ma e jiri ya tụnyere $20 + iru oke = iwe
```
### Ọnọdụ 2: "Achọrọ m ka ọ ghara ịdị ọnụ"
**Nsogbu:** Enweghị m ike ịkwụ ụgwọ ndenye aha, achọrọ m AI a pụrụ ịdabere na ya maka ide code
```
Ngwakọta: "zero-cost"
1. if/kimi-k2.7-code (edepụtara nnweta n’efu; oke ọnụego nwere ike ịdị)
2. kr/qwen3-coder-next (ndabere Kiro n’efu)
Ọnụahịa kwa ọnwa: $0
Ogo: nyochaa model ahụ, oke ya, nzuzo ya, na SLA ya maka ibu ọrụ gị
```
### Ọnọdụ 3: "Achọrọ m ide code 24/7, na-enweghị nkwụsị"
**Nsogbu:** Oge ngwụcha ọrụ, enweghị m ike ịnabata oge sistemụ anaghị arụ ọrụ
```
Ngwakọta: "always-on"
1. cc/claude-opus-4-7 (ogo kacha mma)
2. cx/gpt-5.5 (ndenye aha nke abụọ)
3. glm/glm-4.7 (dị ọnụ ala, na-atụgharị kwa ụbọchị)
4. minimax/MiniMax-M2.1 (kacha ọnụ ala, ntọgharị 5h)
5. if/deepseek-v4-flash (edepụtara nnweta n’efu; oke ọnụego nwere ike ịdị)
Nsonaazụ: Ọkwa ndabere 5 na-eme ka nkwụsi ike gbasaa; anaghị ekwe nkwa nnweta sitere n’aka ndị na-enye ọrụ elu
Ọnụahịa kwa ọnwa: $20-200 (ndenye aha) + $10-20 (ndabere)
```
### Ọnọdụ 4: "Achọrọ m AI N’EFU na OpenClaw"
**Nsogbu:** Achọrọ m onye enyemaka AI n’ime ngwa izipu ozi, n’efu kpamkpam
```
Ngwakọta: "openclaw-free"
1. if/qwen3.8-max-preview (edepụtara nnweta n’efu; oke ọnụego nwere ike ịdị)
2. if/deepseek-v4-flash (edepụtara nnweta n’efu; oke ọnụego nwere ike ịdị)
3. if/kimi-k2.7-code (edepụtara nnweta n’efu; oke ọnụego nwere ike ịdị)
Ọnụahịa kwa ọnwa: $0
Nweta site na: WhatsApp, Telegram, Slack, Discord, iMessage, Signal...
```
---
## 📖 Nhazi Onye Na-enye Ọrụ
Iji tinye ọtụtụ njikọ igodo API n'otu oge site na faịlụ CSV ma ọ bụ JSON, jiri **Dashboard → Providers → Import from file**. Ọnọdụ kọlụm ndị ahụ bụ nke a kapịrị ọnụ (`provider,name,apiKey,baseUrl,priority`); `provider` ga-adịrịrị dị ka onye na-enye ọrụ a na-achịkwa ma ọ bụ node dakọtara. Lee [Mbubata ndị na-enye ọrụ site na faịlụ CSV ma ọ bụ JSON](../providers/CSV-IMPORT.md).
### 🔐 Ndị Na-enye Ọrụ Ndebanye Aha
#### Claude Code (Pro/Max)
```bash
Dashboard → Providers → Jikọọ Claude Code
→ Nbanye OAuth → Imelite token na-akpaghị aka
→ Nsochi oke awa 5 + nke izu ụka
Ụdị:
cc/claude-opus-4-7
cc/claude-sonnet-4-6
cc/claude-haiku-4-5-20251001
```
**Ndụmọdụ Ọkachamara:** Jiri Opus maka ọrụ ndị dị mgbagwoju anya, jiri Sonnet maka ọsọ. OmniRoute na-esochi oke maka ụdị ọ bụla!
Ọ dịghị ihe nchọgharị na host OmniRoute? Gbaa `claude setup-token` n'ebe ọ bụla e banyere na Claude Code, ma mado token otu afọ ahụ na taabụ **Setup Token**. Lee [Claude Code nwere setup token](../providers/CLAUDE_CODE_SETUP_TOKEN.md).
Ụzọ Claude na ndị dakọtara na Claude Code na-edobe ike iche echiche `max` maka ụdị Opus na Sonnet. Ụdị Haiku anaghị anabata ọkwa ike `max`, ya mere OmniRoute na-ewedata arịrịọ ahụ gaa na mmefu iche echiche dị elu tupu o zipụ ya n'elu usoro.
#### OpenAI Codex (Plus/Pro)
```bash
Dashboard → Providers → Jikọọ Codex
→ Nbanye OAuth (ọdụ ụgbọ mmiri 1455)
→ Ntọgharị awa 5 + nke izu ụka
Ụdị:
cx/gpt-5.5
cx/gpt-5.4
cx/gpt-5.3-codex
cx/gpt-5.3-codex-spark
```
#### GitHub Copilot
```bash
Dashboard → Providers → Jikọọ GitHub
→ OAuth site na GitHub
→ Ntọgharị kwa ọnwa (ụbọchị mbụ nke ọnwa)
Ụdị:
gh/gpt-5.5
gh/gpt-5.4
gh/claude-sonnet-4.6
gh/claude-opus-4.7
gh/gemini-3.1-pro-preview
```
### 💰 Ndị Na-enye Ọrụ Dị Ọnụ Ala
#### GLM-4.7 (Ntọgharị kwa ụbọchị, $0.6/1M)
1. Debanye aha: [Zhipu AI](https://open.bigmodel.cn)
2. Nweta igodo API site na Coding Plan
3. Dashboard → Tinye Igodo API: Onye na-enye ọrụ: `glm`, Igodo API: `your-key`
**Jiri:** `glm/glm-4.7` — **Ndụmọdụ Ọkachamara:** Coding Plan na-enye oke 3× n'ọnụahịa bụ 1/7! Ọ na-atọgharị kwa ụbọchị n'elekere 10:00 nke ụtụtụ.
#### MiniMax M2.1 (Ntọgharị awa 5, $0.20/1M)
1. Debanye aha: [MiniMax](https://www.minimax.io)
2. Nweta igodo API → Dashboard → Tinye Igodo API
**Jiri:** `minimax/MiniMax-M2.1` — **Ndụmọdụ Ọkachamara:** Nhọrọ kacha ọnụ ala maka context ogologo (token 1M)!
#### Kimi K2 ($9/ọnwa n'enweghị mgbanwe)
1. Debanye aha: [Moonshot AI](https://platform.kimi.ai?aff=omniroute)
2. Nweta igodo API → Dashboard → Tinye Igodo API
**Jiri:** `kimi/kimi-k2.5` — **Ndụmọdụ Ọkachamara:** $9/ọnwa a kapịrị ọnụ maka token 10M = ọnụahịa dị irè nke $0.90/1M!
#### Baidu Qianfan / ERNIE
1. Debanye aha: [Baidu AI Cloud Qianfan](https://cloud.baidu.com/product/wenxinworkshop)
2. Mepụta igodo API Qianfan → Dashboard → Tinye Igodo API: Onye na-enye ọrụ: `qianfan`
**Jiri:** `qianfan/ernie-5.1`, `qianfan/ernie-x1.1`, ma ọ bụ ID ụdị Qianfan ọzọ dakọtara na OpenAI.
### 🆓 Ndị Na-enye Ọrụ N'EFU
Ndị na-enye ọrụ efu ndị anaghị achọ nkwenye nwere mgba ọkụ n'akụkụ **Achọghị nkwenye** na peeji onye na-enye ọrụ ha.
Ịgbanyụ ya na-eme ka onye na-enye ọrụ ahụ kwụsị ịrụ ọrụ, na-ewepụ ya na nlele ndị na-enye ọrụ ahaziri/nkenke, ma
na-ewepụkwa ụdị ya na `/v1/models`.
#### Qoder (ụdị 9 N'EFU)
```bash
Dashboard → Jikọọ Qoder → Nbanye OAuth → Nnweta dabere n'oke ndị onye na-enye ọrụ nwere ugbu a
Ụdị: 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 N'EFU)
```bash
Dashboard → Jikọọ Kiro → AWS Builder ID ma ọ bụ Google/GitHub → ~kredit 50/ọnwa
Ụdị: kr/claude-sonnet-4.5, kr/claude-haiku-4.5
```
---
## 🎨 Ngwakọta
Ị nwere ike ịhazigharị kaadị ngwakọta ozugbo na **Dashboard → Combos** site n’ịdọrọ aka njide dị na kaadị ọ bụla. A na-echekwa usoro ahụ na SQLite ma weghachite ya mgbe ebughachiri ibe ahụ ọzọ.
### Ọmụmaatụ 1: Mee Ka Ndebanye Aha Ruo Oke → Nkwado Ndabere Dị Ọnụ Ala
```
Dashboard → Combos → Mepụta Nke Ọhụrụ
Aha: premium-coding
Ụdị:
1. cc/claude-opus-4-7 (Ndebanye aha bụ isi)
2. glm/glm-4.7 (Nkwado ndabere dị ọnụ ala, $0.6/1M)
3. minimax/MiniMax-M2.7 (Nhọrọ ikpeazụ kacha dị ọnụ ala, $0.3/1M)
Jiri na CLI: premium-coding
```
### Ọmụmaatụ 2: Naanị Nke Efughị Ego (Ọnụ Ahịa Efughị Ihe)
```
Aha: free-combo
Ụdị:
1. if/kimi-k2.7-code (edepụtara na enwere ike iji ya n’efu; oke onye na-eweta ọrụ nwere ike ịdị)
2. kr/qwen3-coder-next (Nhọrọ ndabere Kiro n’efu)
Ọnụ ahịa: edepụtara ugbu a dị ka $0; usoro na nnweta nwere ike ịgbanwe
```
---
## 🔧 Njikọta CLI
### Cursor IDE
**Iji Cursor dịka onye ahịa OmniRoute** (zipụ nkata Cursor site na OmniRoute):
```
Ntọala → Ụdị → Nke Di Elu:
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [si na dashboard omniroute]
Ụdị: cc/claude-opus-4-7
```
**Iji OmniRoute dịka onye na-eweta Cursor** (OmniRoute na-akpọ Cursor upstream): họrọ
**Dashboard → Providers → Cursor → Login with Cursor**. Na Docker, lee
[`docs/providers/CURSOR-DOCKER.md`](../providers/CURSOR-DOCKER.md).
### Claude Code
Dezie `~/.claude/settings.json`:
```json
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:20128",
"ANTHROPIC_AUTH_TOKEN": "your-omniroute-api-key"
}
}
```
Jiri root endpoint kwekọrọ na Claude ebe a. Etinyekwala `/v1` na `ANTHROPIC_BASE_URL`.
### Codex CLI
```bash
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"
```
### OpenClaw
Dezie `~/.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" }]
}
}
}
}
```
**Ma ọ bụ jiri Dashboard:** CLI Tools → OpenClaw → Auto-config
### Cline / Continue / RooCode
```
Onye na-eweta: Dakọtara na OpenAI
Base URL: http://localhost:20128/v1
API Key: [si na dashboard]
Ụdị: cc/claude-opus-4-7
```
---
## 🚀 Mbugharị
### Nwụnye npm zuru ụwa ọnụ (A tụrụ aro)
```bash
npm install -g omniroute
# Mepụta ndekọ nhazi
mkdir -p ~/.omniroute
# Mepụta faịlụ .env (lee .env.example)
cp .env.example ~/.omniroute/.env
# Bido sava
omniroute
# Ma ọ bụ jiri ọdụ ụgbọ mmiri nke gị:
omniroute --port 3000
```
CLI na-ebunye `.env` na-akpaghị aka site na `~/.omniroute/.env` ma ọ bụ `./.env`.
### Ọnọdụ tray
Bido OmniRoute na tray sistemụ:
```bash
omniroute serve --tray
```
Iwu ahụ ga-akwụsị mgbe sava na tray dị njikere.
Sava ahụ na-aga n’ihu na-enweghị terminal.
Ọnọdụ tray na-akwado macOS, Windows, na nnọkọ Linux nwere eserese. Ọnọdụ tray anaghị emepe dashboard na-akpaghị aka.
Jiri menu tray maka omume ndị a:
- Mepee dashboard.
- Mepee `/dashboard/logs`.
- Gbanwee mbido akpaka.
- Kwụsị OmniRoute.
Ejikọla `--tray` na nhọrọ ndị a:
- `--daemon`
- `--log`
- `--no-recovery`
Ọnọdụ ndị a chọrọ njikwa usoro dị iche iche.
Kwado ka ọ malite n'oge nbanye kọmputa na-esote:
```bash
omniroute autostart enable
```
Mbido akpaka na-eji ọnọdụ tray na macOS, Windows, na nnọkọ Linux nwere eserese. Linux na-enweghị interface eserese na-eji ọrụ onye ọrụ systemd dịbu adị.
Gbanyụọ mbido n'oge nbanye:
```bash
omniroute autostart disable
```
### Iwepụ Nwụnye
Mgbe ị chọghịzi OmniRoute, anyị na-enye script abụọ ngwa ngwa maka iwepụ ya nke ọma:
| Iwu | Omume |
| ------------------------ | ---------------------------------------------------------------------------------------- |
| `npm run uninstall` | Na-ewepụ ngwa sistemụ ahụ mana **na-edobe DB na nhazi gị** na `~/.omniroute`. |
| `npm run uninstall:full` | Na-ewepụ ngwa ahụ MA na-adịgide adịgide **na-ehichapụ nhazi, igodo, na database niile**. |
> Rịba ama: Iji mee iwu ndị a, gaa na folda ọrụ OmniRoute (ọ bụrụ na i mere clone ya) wee mee ha. N’ụzọ ọzọ, ọ bụrụ na arụnyere ya n’ụwa niile, ị nwere ike naanị ime `npm uninstall -g omniroute`.
### Mbugharị 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
# Ma ọ bụ: pm2 start npm --name omniroute -- start
```
### Mbugharị PM2 (Nchekwa Dị Ala)
Maka sava nwere RAM pere mpe, jiri nhọrọ oke nchekwa:
```bash
# Jiri oke 512MB (ndabara)
pm2 start npm --name omniroute -- start
# Ma ọ bụ jiri oke nchekwa nke gị
OMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start
# Ma ọ bụ jiri ecosystem.config.js
pm2 start ecosystem.config.js
```
Mepụta `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
# Wuo image (ndabara = runner-cli nke etinyerela codex/claude/droid)
docker build -t omniroute:cli .
# Ọnọdụ enwere ike ibugharị (a tụrụ aro)
docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cli
```
Maka ọnọdụ ejikọtara na host nke nwere binary CLI, lee ngalaba Docker na akwụkwọ ndu ndị bụ isi.
### Void Linux (xbps-src)
Ndị ọrụ Void Linux nwere ike ịkwakọba ma wụnye OmniRoute n'ụzọ sistemụ site n’iji usoro cross-compilation `xbps-src`. Nke a na-eme ka owuwu standalone nke Node.js yana native bindings `better-sqlite3` ndị achọrọ rụọ ọrụ na-akpaghị aka.
Lee template xbps-src
```bash
# Faịlụ template maka 'omniroute'
pkgname=omniroute
version=3.8.0
revision=1
hostmakedepends="nodejs python3 make"
depends="openssl"
short_desc="Ọnụ ụzọ AI zuru ụwa ọnụ nwere routing nwere ọgụgụ isi maka ọtụtụ ndị na-enye LLM"
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() {
# Chọpụta ụkpụrụ ụlọ CPU ezubere maka 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) Wụnye dependencies niile – mafere scripts
NODE_ENV=development npm ci --ignore-scripts
# 2) Wuo standalone bundle nke Next.js
npm run build
# 3) Detuo static assets n'ime standalone
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true
# 4) Kpọkọta native binding nke better-sqlite3
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) Tinye binding a kpọkọtara n'ime 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) Wepụ sharp bundles ndị akọwapụtara maka ụkpụrụ ụlọ
rm -rf .next/standalone/node_modules/@img
# 7) Detuo runtime dependencies nke pino nke static analysis nke Next.js hapụrụ:
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
# Gbochie post-install hook ihichapụ directories Next.js app router ndị tọgbọ chakoo
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
}
```
### Environment Variables
| Mgbanwe | Ndabara | Nkọwa |
| --------------------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------- |
| `JWT_SECRET` | `omniroute-default-secret-change-me` | Ihe nzuzo e ji abịanye aka na JWT (**gbanwee ya na production**) |
| `INITIAL_PASSWORD` | `CHANGEME` | Okwuntughe nbanye mbụ |
| `DATA_DIR` | `~/.omniroute` | Ndekọ data (db, ojiji, ndekọ ihe omume) |
| `PORT` | ndabara framework | Port ọrụ (`20128` n'ihe atụ) |
| `HOSTNAME` | ndabara framework | Host a ga-ejikọta na ya (ndabara Docker bụ `0.0.0.0`) |
| `NODE_ENV` | ndabara runtime | Tọọ `production` maka mbugote |
| `NEXT_PUBLIC_BASE_URL` | `http://localhost:20128` | URL ntọala ọha egosiri na dashboard ma mee ka sava nweta ya (na-anọchi `BASE_URL` ochie) |
| `NEXT_PUBLIC_CLOUD_URL` | `https://omniroute.dev` | URL ntọala endpoint maka mmekọrịta cloud (na-anọchi `CLOUD_URL` ochie) |
| `API_KEY_SECRET` | `endpoint-proxy-api-key-secret` | Ihe nzuzo HMAC maka igodo API ndị emepụtara |
| `REQUIRE_API_KEY` | `false` | Manye igodo API Bearer na `/v1/*` |
| `ALLOW_API_KEY_REVEAL` | `false` | Kwe ka ndị ọrụ dashboard akwadoro kpughee ụkpụrụ igodo API zuru ezu echekwara mgbe ha chọrọ |
| `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES` | `70` | Ugboro sava na-eme ka data Provider Limits echekwara ọhụrụ; bọtịnụ imegharị UI ka na-akpalite mmekọrịta aka |
| `DISABLE_SQLITE_AUTO_BACKUP` | `false` | Gbanyụọ snapshot SQLite akpaka tupu ide/mbubata/mweghachi; backup aka ka na-arụ ọrụ |
| `APP_LOG_TO_FILE` | `true` | Na-eme ka mmepụta ndekọ ngwa na ndekọ nyocha gaa na diski |
| `AUTH_COOKIE_SECURE` | `false` | Manye cookie nkwenye `Secure` (n'azụ HTTPS reverse proxy) |
| `CLOUDFLARED_BIN` | edoghị ya | Jiri binary `cloudflared` dị adị kama nbudata a na-achịkwa |
| `CLOUDFLARED_PROTOCOL` | `http2` | Ụzọ mbufe maka Quick Tunnels a na-achịkwa (`http2`, `quic`, ma ọ bụ `auto`) |
| `OMNIROUTE_MEMORY_MB` | `512` | Oke heap Node.js na MB |
| `PROMPT_CACHE_MAX_SIZE` | `50` | Ọnụọgụ ndenye kachasị na cache prompt |
| `SEMANTIC_CACHE_MAX_SIZE` | `100` | Ọnụọgụ ndenye kachasị na cache semantic |
Maka ntụaka zuru ezu gbasara mgbanwe gburugburu, lee [README](../README.md).
---
## 📊 Ụdịdịdị Dịnụ
Lelee ụdịdịdị niile dịnụ
> A họpụtara ndepụta dị n'okpuru site na `open-sse/config/providerRegistry.ts` maka v3.8.0. A na-emekọrịta katalọgụ igwe ojii (Gemini, OpenRouter, wdg.) n'ụzọ akpaaka — iji hụ katalọgụ zuru ezu dị ugbu a, mepee **Dashboard → Providers → [provider] → Available Models** ma ọ bụ kpọọ `GET /api/models/catalog`.
>
> Ọ bụrụ na ndepụta etinyere n'ime nke onye na-eweta ọrụ agbanweela, jiri **Import from /models** na peeji ahụ (ma ọ bụ gbanye **Auto-Sync**) iji dọpụta katalọgụ dị ugbu a site na isi mmalite. E kwadoro nke a na v3.8.50 maka LLM7.io (`gemini-3.1-flash-lite`) na UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`); ohere Pollinations na-enweghị njirimara ka nọgidere bụrụ nke isi mmalite machibidoro n'oge otu ule ahụ.
**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` (+ ọkwa mgbalị: `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 N'EFU: jiri katalọgụ dị ugbu a nke egosiri n'okpuru **Dashboard → Providers → Kiro → Available Models**. Ịdịnụ ya dabere na akaụntụ na atụmatụ.
**Qoder (`if/`)** — OAuth N'EFU: `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/ọnwa otu ọnụahịa ma ọ bụ ụgwọ dabere n'ojiji: `kimi/kimi-k2.6`, `kimi/kimi-k2.5`
**DeepSeek (`ds/`)** — Igodo API: `ds/deepseek-v4-pro`, `ds/deepseek-v4-flash`
**Groq (`groq/`)** — Ọsọ dị ukwuu: `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 nke mbụ: `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/`)** — A na-akwado ya na EU: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-latest`, `mistral/codestral-latest`
**Perplexity (`pplx/`)** — Nchọ na-agbakwụnye ike: `pplx/sonar-deep-research`, `pplx/sonar-reasoning-pro`, `pplx/sonar-pro`, `pplx/sonar`
**Together AI (`together/`)** — Isi mmalite mepere emepe: `together/meta-llama/Llama-3.3-70B-Instruct-Turbo-Free` (n'efu), `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/`)** — Ntụpụta ngwa ngwa: `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/`)** — N'ogo wafer: `cerebras/zai-glm-4.7`, `cerebras/gpt-oss-120b`
**Cohere (`cohere/`)** — Lekwasịrị anya na 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/`)** — Maka ụlọ ọrụ: `nvidia/z-ai/glm-5.1`, `nvidia/minimaxai/minimax-m2.7`, `nvidia/google/gemma-4-31b-it`, `nvidia/mistralai/mistral-small-4-119b-2603`, `nvidia/mistralai/mistral-large-3-675b-instruct-2512`, `nvidia/qwen/qwen3.5-397b-a17b`, `nvidia/deepseek-ai/deepseek-v4-pro`, `nvidia/openai/gpt-oss-120b`, `nvidia/nvidia/nemotron-3-super-120b-a12b`
**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/`)**: A na-emekọrịta ya ozugbo site na Google dịka igodo API si dị — enweghị ndepụta na-adịgide adịgide. Jikọọ igodo na **Dashboard → Providers**, wee jiri **Available Models** bubata katalọgụ dị ugbu a (dịka `gemini/gemini-3-pro`, `gemini/gemini-3-flash`).
**Ndị ọzọ na-eweta ọrụ dakọtara** (ndị ahọpụtara): `cohere`, `databricks`, `snowflake`, `together`, `vertex`, `alibaba`, `alibaba-cn`, `bedrock` (site na `aws-bedrock`), `azure-ai`, `openrouter` (katalọgụ a na-ebufe ozugbo), `siliconflow`, `hyperbolic`, `huggingface`, `featherless-ai`, `cloudflare-ai`, `scaleway`, `deepinfra`, `vercel-ai-gateway`, `bazaarlink`, `friendliai`, `nous-research`, `reka`, `volcengine`, `ai21`, `gigachat`. Onye ọ bụla na-edobe ndepụta ụdịdị nke ya na `providerRegistry.ts`, a pụkwara ịmekọrịta ya n'ụzọ akpaaka mgbe onye na-eweta ọrụ gosipụtara njedebe `/models`.
**Nkọwa gbasara ID ụdịdị:** OmniRoute na-eji ID ndị sitere n'aka onye na-eweta ọrụ (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`). Ụfọdụ ID nwere ụdị mbipụta nwere ntụpọ n'ihi na ọ bụ otu API nke isi mmalite si atụ anya ha. Ọ bụrụ na edepụtaghị otu ụdịdị n'elu, gbaa `omniroute models --search ` ma ọ bụ kpọọ `GET /api/models/catalog` iji kwado na ọ dịnụ.
---
## 🧩 Atụmatụ Dị Elu
### Model Ahaziri Ahazi
Tinye ID model ọ bụla n’ebe onye na-eweta ọrụ ọ bụla nọ n’echeghị mmelite ngwa:
```bash
# Site na 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"}'
# Depụta: curl http://localhost:20128/api/provider-models?provider=openai
# Wepụ: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2"
```
Ma ọ bụ jiri Dashboard: **Providers → [Provider] → Custom Models**.
Ndetu:
- A na-ejikwa OpenRouter na ndị na-eweta ọrụ kwekọrọ na OpenAI/Anthropic naanị site na **Available Models**. Ntinye aka, mbubata, na mmekọrịta akpaaka niile na-abanye n’otu ndepụta model dịnụ, ya mere enweghị ngalaba Custom Models dị iche maka ndị na-eweta ọrụ ndị ahụ.
- E mere ngalaba **Custom Models** maka ndị na-eweta ọrụ na-adịghị enye mbubata model dịnụ a na-achịkwa.
### Ndị Na-eweta Ọrụ Ahaziri Ahazi Kwekọrọ na OpenAI
Enwere ike ịgbakwunye gateway ọ bụla na-asụ API OpenAI (proxy a na-akwado n’onwe ya, vLLM, ma ọ bụ aggregator nke ndị ọzọ)
dị ka node onye na-eweta ọrụ nke ya:
1. **Providers → Add OpenAI Compatible**.
2. **Name**: aha ngosi maka node ahụ.
3. **Prefix**: aha ntụgharị ụzọ. Ndị ahịa na-akpọ model dịka `/`, ya mere node nwere
prefix `mygw` na-enye `mygw/gpt-4o-mini`. A chọrọ ya; enweghị mmachi mkpụrụedemede.
4. **API Type**: ezinụlọ endpoint nke gateway ahụ na-enye (Chat Completions, Responses,
Embeddings, ọdịyo, onyonyo).
5. **Base URL**: mgbọrọgwụ API, ruo ma gụnye `/v1` (dịka ọmụmaatụ
`https://gateway.example.com/v1`), ọ bụghị ụzọ `/chat/completions` zuru ezu. Gateway ndị nwere
ụzọ na-abụghị ọkọlọtọ na-edobe ha n’okpuru **Advanced Settings** (ụzọ nkata, ụzọ model).
6. Oghere **API Key (for Check)** na-anwale naanị njikọ ahụ. Mgbe ịmepụtara node ahụ,
mepee ya ma jiri **Add Connection** chekwaa igodo arịrịọ ga-eji.
Node ahụ na-enweta id ime nke ụdị `openai-compatible--`; ọ dịghị mgbe
ị ga-achọ ịpị ya, prefix ahụ bụ aha ọha.
#### Prefix ndị edobere iche
Prefix enweghị ike ịbụ id ma ọ bụ alias nke onye na-eweta ọrụ arụnyere n’ime sistemụ (dịka ọmụmaatụ `openai`, `cf`), ma ọ bụ
id nke onye na-eweta ọrụ e wepụrụla. Onye na-edozi model na-enyocha id na alias arụnyere n’ime sistemụ tupu
node ahaziri ahazi, ya mere node na-eji otu n’ime prefix ndị ahụ agaghị enweta okporo ụzọ:
`/model` ga-aga na onye na-eweta ọrụ arụnyere n’ime sistemụ kama, ma ọ bụ jụ kpamkpam ma ọ bụrụ na onye na-eweta ọrụ ahụ
ewepụla. A ga-ajụ imepụta ma ọ bụ idezi node nwere ụdị prefix ahụ site na ozi a:
```text
prefix: "" bụ prefix onye na-eweta ọrụ edobere iche — họrọ prefix ọzọ (enweghị ike iji id/alias edobere iche maka node ahaziri ahazi n’ihi na arịrịọ dịka /model na-aga na onye na-eweta ọrụ arụnyere n’ime sistemụ ma ọ bụ na-ajụ kpamkpam mgbe e wepụrụ ya)
```
Họrọ prefix pụrụ iche (`mygw`, `acme-proxy`). Ọ bụrụ na arịrịọ e zigara node ahaziri ahazi ada site na
njehie na-akpọ aha onye na-eweta ọrụ arụnyere n’ime sistemụ ma ọ bụ nzere ya, lelee ma prefix node ahụ
edobere iche: node ndị echekwara tupu iwu a adị ka echekwara, mana prefix ha na-aga na
onye na-eweta ọrụ arụnyere n’ime sistemụ. Dezie node ahụ ma nye ya prefix ọhụrụ.
### Ijikọta Ndị Ọgbọ OmniRoute n’Agbụ
Enwere ike ịgbakwunye gateway OmniRoute ọzọ dịka onye na-eweta ọrụ **Custom OpenAI-compatible**. Jiri
base URL `/v1` nke onye ọgbọ ahụ na igodo API pụrụ iche nwere ikike kacha nta nke onye ọgbọ ahụ nyere.
Maka agbụ na-alaghachi azụ ma ọ bụ nke nwere ọtụtụ nzọụkwụ, gbanye ihe mgbochi loop a na-ahọrọ iji na gateway ọ bụla:
```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
```
Naanị arịrịọ ezitere na URL onye ọgbọ e nyere ikike kpọmkwem na-enweta
header `X-OmniRoute-Peer-Trace`. Gateway na-ajụ instance ID e kwughachiri ma ọ bụ oke nzọụkwụ
gwụchara site na HTTP `508 Loop Detected`; ndị na-eweta ọrụ upstream nkịtị anaghị enweta metadata onye ọgbọ.
Ijikọta ndị ọgbọ abụghị mmegharị database ma ọ bụ failover host. Gateway ọ bụla na-edobe
ọnọdụ SQLite, cache, ọnụego mgbakọ, na session nke ya. Jiri reverse proxy nwere nyocha ahụike ma ọ bụ failover
onye ahịa maka nnweta active/passive ma ọ bụ active/active, e tinyekwala otu database SQLite
n’ime ọtụtụ instance OmniRoute na-agba ọsọ.
### Ụzọ Ndị Na-eweta Ọrụ Pụrụ Iche
Dugara arịrịọ ozugbo na otu onye na-eweta ọrụ kpọmkwem yana nkwado model:
```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
```
A na-agbakwunye prefix onye na-eweta ọrụ na-akpaghị aka ma ọ bụrụ na ọ dịghị. Model na-adabaghị na-eweghachi `400`.
### Nhazi Proxy Netwọk
```bash
# Tọọ proxy zuru ụwa ọnụ
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'
# Proxy maka onye na-eweta ọrụ ọ bụla
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'
# Nwalee proxy
curl -X POST http://localhost:20128/api/settings/proxy/test \
-d '{"proxy":{"type":"socks5","host":"proxy.example.com","port":"1080"}}'
```
**Usoro ibu ụzọ:** Nke metụtara igodo → Nke metụtara Combo → Nke metụtara onye na-eweta ọrụ → Nke zuru ụwa ọnụ → Environment.
### API Katalọgụ Model
```bash
curl http://localhost:20128/api/models/catalog
```
Na-eweghachi model ndị e kewara dịka onye na-eweta ọrụ si dị yana ụdị ha (`chat`, `embedding`, `image`).
### Mmekọrịta Cloud
- Mekọrịta ndị na-eweta ọrụ, combo, na ntọala n’ofe ngwaọrụ
- Mmekọrịta akpaaka n’azụ yana timeout + ọdịda-ngwa-ngwa
- Họrọ `NEXT_PUBLIC_BASE_URL`/`NEXT_PUBLIC_CLOUD_URL` nke dị n’akụkụ server na production
### Cloudflare Quick Tunnel
- Dị na **Dashboard → Endpoints** maka Docker na nrụnye ndị ọzọ ị na-akwado n'onwe gị
- Na-emepụta URL `https://*.trycloudflare.com` nwa oge nke na-ebuga arịrịọ na endpoint `/v1` gị ugbu a nke dakọtara na OpenAI
- Mgbe mbụ enyere ya aka, ọ na-etinye `cloudflared` naanị mgbe achọrọ ya; mmalitegharị ndị na-esote na-ejikwa otu binary ahụ a na-achịkwa
- A naghị eweghachite Quick Tunnels na-akpaghị aka mgbe OmniRoute ma ọ bụ container malitegharịrị; mee ka ha rụọ ọrụ ọzọ site na dashboard mgbe achọrọ
- URL nke tunnel bụ nke nwa oge ma na-agbanwe oge ọ bụla ị kwụsịrị/malite tunnel ahụ
- Quick Tunnels ndị a na-achịkwa na-eji HTTP/2 transport na ndabara iji zere ịdọ aka ná ntị QUIC UDP buffer na-eme mkpọtụ n'ime container ndị nwere oke akụrụngwa
- Tọọ `CLOUDFLARED_PROTOCOL=quic` ma ọ bụ `auto` ma ọ bụrụ na ịchọrọ ịgbanwe nhọrọ transport a na-achịkwa
- Tọọ `CLOUDFLARED_BIN` ma ọ bụrụ na ịchọrọ iji binary `cloudflared` etinyegoro kama nbudata a na-achịkwa
- Enwere ike igosi ma ọ bụ zoo panel Cloudflare Quick Tunnel, Tailscale Funnel, na ngrok Tunnel na **Settings → Appearance**. Izo panel anaghị akwụsị tunnel na-arụ ọrụ.
### Ọgụgụ Isi nke LLM Gateway (Phase 9)
- **Semantic Cache** — Na-echekwa nzaghachi ndị na-abụghị streaming, temperature=0 na-akpaghị aka (gafee ya site na `X-OmniRoute-No-Cache: true`)
- **Request Idempotency** — Na-ewepụ arịrịọ ndị megharịrị n'ime 5s site na header `Idempotency-Key` ma ọ bụ `X-Request-Id`
- **Progress Tracking** — Ihe omume SSE `event: progress` nke a ga-ahọrọ isonye na ya site na header `X-OmniRoute-Progress: true`
---
### Ebe Nnwale Translator
Nweta ya site na **Dashboard → Translator**. Chọpụta ma gosipụta n'anya otú OmniRoute si atụgharị arịrịọ API n'etiti ndị na-eweta ọrụ.
| Ọnọdụ | Ebumnuche |
| ---------------- | ------------------------------------------------------------------------------------ |
| **Playground** | Họrọ usoro isi/mmepụta, mado arịrịọ, wee hụ nsonaazụ a tụgharịrị ozugbo |
| **Chat Tester** | Zipụ ozi nkata dị ndụ site na proxy ma nyochaa usoro arịrịọ/nzaghachi ahụ dum |
| **Test Bench** | Mee nnwale n'ìgwè n'ofe ngwakọta usoro dị iche iche iji nyochaa izi ezi nke ntụgharị |
| **Live Monitor** | Lelee ntụgharị ozugbo ka arịrịọ na-agafe na proxy |
**Ebe eji ya:**
- Chọpụta ihe kpatara otu ngwakọta client/provider ji ada
- Nyochaa na a na-atụgharị thinking tags, tool calls, na system prompts nke ọma
- Tụnyere ọdịiche usoro dị n'etiti usoro OpenAI, Claude, Gemini, na Responses API
---
### Atụmatụ Routing
Hazie site na **Dashboard → Settings → Routing**. Dashboard na-egosi atụmatụ isii a na-ejikarị eme ihe; combos na auto-router na-akwado ọtụtụ ndị ọzọ n'ime sistemụ.
**Atụmatụ ndị a na-ahụ na dashboard (routing n'ọkwa akaụntụ):**
| Atụmatụ | Nkọwa |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------- |
| **Fill First** | Na-eji akaụntụ dịka usoro mkpa ha si dị — akaụntụ bụ isi na-ahụ maka arịrịọ niile ruo mgbe ọ na-adịkwaghị |
| **Round Robin** | Na-atụgharị n'etiti akaụntụ niile site na sticky limit a pụrụ ịhazi (ndabara: oku 3 kwa akaụntụ) |
| **P2C (Power of Two Choices)** | Na-ahọrọ akaụntụ 2 na-enweghị usoro ma na-ebuga arịrịọ na nke ka mma — na-edozi ibu site n'ịma ọnọdụ ahụike |
| **Random** | Na-ahọrọ akaụntụ na-enweghị usoro maka arịrịọ ọ bụla site na Fisher-Yates shuffle |
| **Least Used** | Na-ebuga arịrịọ na akaụntụ nwere timestamp `lastUsedAt` kacha ochie, na-ekesa traffic n'ụzọ hà nhata |
| **Cost Optimized** | Na-ebuga arịrịọ na akaụntụ nwere uru priority kacha ala, iji họrọ ndị na-eweta ọrụ dị ọnụ ala |
**Combo dị elu na atụmatụ akpaaka** (a pụrụ ịhazi kwa combo ma ọ bụ site na prefix `auto/*` — lee [AUTO-COMBO.md](../routing/AUTO-COMBO.md)):
- `priority` — usoro siri ike, anaghị eji round-robin eme ihe ma ọlị
- `weighted` — nkesa traffic dabere na oke weight nke model ọ bụla
- `fill-first` — jiri model mbụ ruo mgbe o ruru oke ya
- `round-robin` / `strict-random` / `random`
- `p2c` (Power of Two Choices)
- `least-used` na `cost-optimized`
- `auto` — dabere na akara n'etiti candidates niile
- `lkgp` (Last Known Good Provider) — na-ejide provider ikpeazụ gara nke ọma, ma laghachi n'iwu ma ọ daa
- `context-optimized` — na-ahọrọ model nwere context window efu kachasị ukwuu
- `context-relay` — na-ejikọta model ndị nwere long-context maka turns ndị na-esote
#### Header Sticky Session Mpụga
Maka external session affinity (dịka ọmụmaatụ, agents Claude Code/Codex nọ n'azụ reverse proxies), zipụ:
```http
X-Session-Id: your-session-key
```
OmniRoute na-anabatakwa `x_session_id` ma na-eweghachi session key a na-eji eme ihe na `X-OmniRoute-Session-Id`.
Ọ bụrụ na ị na-eji Nginx ma na-ezipụ header ndị nwere underscore, mee ka nke a rụọ ọrụ:
```nginx
underscores_in_headers on;
```
#### Wildcard Model Aliases
Mepụta wildcard patterns iji gbanwee aha model:
```
Pattern: claude-sonnet-* → Target: cc/claude-sonnet-4-6
Pattern: gpt-* → Target: gh/gpt-5.3-codex
```
Wildcards na-akwado `*` (mkpụrụedemede ọ bụla) na `?` (otu mkpụrụedemede).
#### Fallback Chains
Kọwaa global fallback chains ndị na-emetụta arịrịọ niile:
```
Chain: production-fallback
1. cc/claude-opus-4-7
2. gh/gpt-5.3-codex
3. glm/glm-4.7
```
---
### Ngwakọta Provider na Usoro Routing Ndị A Na-ahụkarị
Ndị a bụ ihe atụ nke usoro eji agwakọta ọtụtụ providers ma na-eme routing n'etiti ha na OmniRoute:
#### 1. Coding Agent Combo: Reasoning Dị Elu nke Nwere Fallback Maka Ọnụ Ahịa/Ọsọ
Ọ dabara nke ọma maka coding agents (OpenCode, Claude Code, Cursor, Cline). Ọ na-ebu ụzọ eziga arịrịọ na frontier reasoning models, wee laghachi na coding models ndị ngwa ngwa mgbe quota gwụsịrị ma ọ bụ njehie mee.
- **Dashboard**: Combos → New Combo → Name: `agent-coding` → Strategy: `Priority`
- **Models**:
1. `claude/claude-sonnet-4-6` (Coding agent bụ isi)
2. `openai/gpt-4o` (Fallback nke abụọ nwere ikike dị elu)
3. `deepseek/deepseek-v4-flash` (Fallback nwere arụmọrụ dị elu ma dị ọnụ ala)
```bash
# Ọmụmaatụ site na 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. Ngwakọta Mgbanwe-Akpaaka nke Ọkwa N'efu
Na-ejikọta ọtụtụ ndị na-eweta ọrụ n'efu na ndị na-achọghị igodo iji mee ka oge ọrụ dị elu n'enweghị ụgwọ API.
- **Atụmatụ**: `Least Used` ma ọ bụ `Round Robin` (na-ekesa ibu n'etiti oke ojiji)
- **Ụdị**:
1. `groq/llama-3.3-70b-versatile`
2. `gemini/gemini-2.5-flash`
3. `cerebras/gpt-oss-120b`
```bash
# Ọmụmaatụ site na 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. Usoro Multimodal / Ọhụụ na Ederede
Ijikọ ụdị ndị pụrụ iche maka ọhụụ na mmepụta ederede dị oke ọsọ maka usoro ọrụ gụnyere nghọta onyonyo na mmepụta koodu.
- **Ụkpụrụ**: Ngwakọta `Priority` nke na-edepụta ụdị nwere ikike ọhụụ na mbụ, ma tinye ụdị ederede/koodu nwere nnukwu ọsọ nhazi n'ikpeazụ.
- **Ụdị**:
1. `gemini/gemini-2.5-pro` (Nghọta onyonyo/multimodal siri ike)
2. `openai/gpt-4o` (Ojiji ọhụụ na ngwaọrụ ziri ezi n'ogo)
3. `deepseek/deepseek-v4-flash` (Mmepụta ederede/koodu)
---
### Nkwụsi Ike na Ndị Na-akwụsị Sekit
Hazie ya site na **Dashboard → Settings → Resilience**.
OmniRoute na-eji ihe ise mejuputa nkwụsi ike n'ọkwa onye na-eweta ọrụ:
1. **Ahịrị Arịrịọ na Nhazi Ọsọ** — Ịkpụzi arịrịọ n'ọkwa sistemụ:
- **Arịrịọ Kwa Nkeji (RPM)** — Ọnụọgụ arịrịọ kachasị kwa nkeji maka akaụntụ ọ bụla
- **Oge Kacha Nta N'etiti Arịrịọ** — Oghere kacha nta na milisekọnd n'etiti arịrịọ
- **Arịrịọ Ndị Na-aga N'otu Oge Kachasị** — Ọnụọgụ arịrịọ kacha ukwuu nwere ike ịga n'otu oge maka akaụntụ ọ bụla
2. **Oge Ntụrụndụ Njikọ** — Nhazi dabere n'ụdị nyocha njirimara maka otu njikọ mgbe ọdịda ndị enwere ike ịnwale ọzọ mere:
- **Oge Ntụrụndụ Ndabere** — Oge ndabara maka ọdịda sitere n'aka onye na-eweta ọrụ nke enwere ike ịnwale ọzọ
- **Jiri Ndụmọdụ Nnwale Ọzọ nke Onye Na-eweta Ọrụ** — Na-agbaso `Retry-After` nwere ikike ma ọ bụ ndụmọdụ nrụgharị mgbe e nyere ha
- **Nzọụkwụ Nlaghachi Azụ Kachasị** — Ọkwa nlaghachi azụ exponential kachasị maka ọdịda ugboro ugboro
3. **Onye Na-akwụsị Sekit nke Onye Na-eweta Ọrụ** — Na-enyocha ọdịda onye na-eweta ọrụ site na mmalite ruo na njedebe, na-akara onye na-eweta ọrụ dị ka nke arụmọrụ ya belatara mgbe o ruru oke ịdọ aka ná ntị ahaziri, ma mepee onye na-akwụsị sekit mgbe o ruru oke ọdịda ahaziri:
- **Oke Mbelata Arụmọrụ** — Ọdịda onye na-eweta ọrụ na-esochi ibe ha tupu ịbanye na `DEGRADED`
- **Oke Ọdịda** — Ọdịda onye na-eweta ọrụ na-esochi ibe ha tupu ịbanye na `OPEN`
- **Oge Nchere Tupu Nrụgharị** — Oge a ga-echere tupu anwale onye na-eweta ọrụ ọzọ
- **CLOSED** (Dị Mma) — Arịrịọ na-aga dịka o kwesịrị
- **DEGRADED** — Arịrịọ ka na-aga ka a na-enyocha mmụba ọdịda
- **OPEN** — A na-egbochi onye na-eweta ọrụ nwa oge mgbe ọdịda ugboro ugboro gasịrị
- **HALF_OPEN** — Na-anwale ma onye na-eweta ọrụ agbakeela
Oke ọsọ `429` metụtara njikọ na-anọgide na **Connection Cooldown**, a naghịkwa agụ ha n'ime onye na-akwụsị sekit nke onye na-eweta ọrụ.
A na-egosi ọnọdụ onye na-akwụsị sekit nke onye na-eweta ọrụ mgbe ọ na-arụ ọrụ naanị na **Dashboard → Health**.
4. **Chere Ka Oge Ntụrụndụ Gafee** — Ọ bụrụ na njikọ niile enwere ike ịhọrọ abanyelarị n'oge ntụrụndụ, OmniRoute nwere ike ichere ruo mgbe nke mbụ gwụsịrị ma nwalee otu arịrịọ onye ahịa ahụ ọzọ na-akpaghị aka.
5. **Nchọpụta Akpaaka nke Oke Ọsọ** — Mgbe ndị na-eweta ọrụ dị n'elu weghachiri oge nchere doro anya, ndụmọdụ ndị ahụ na-anọchi oge ntụrụndụ njikọ mpaghara mgbe agbanyere ntọala ahụ.
**Ndụmọdụ Ọkachamara:** Jiri ibe **Health** nyochaa ma tọgharịa ndị na-akwụsị sekit nke ndị na-eweta ọrụ na-arụ ugbu a mgbe nkwụsị ọrụ gasịrị. Ibe Resilience na-agbanwe naanị nhazi.
---
### Mbupụ / Mbubata Ebe Nchekwa Data
Jikwaa nkwado ndabere ebe nchekwa data na **Dashboard → Settings → System & Storage**.
| Omume | Nkọwa |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Bupụ Ebe Nchekwa Data** | Na-ebudata ebe nchekwa data SQLite dị ugbu a dịka faịlụ `.sqlite` |
| **Bupụ Ha Niile (.tar.gz)** | Na-ebudata ngwugwu nkwado ndabere zuru ezu nke gụnyere: ebe nchekwa data, ntọala, ngwakọta, njikọ ndị na-eweta ọrụ (enweghị ozi nzere), metadata igodo API |
| **Bubata Ebe Nchekwa Data** | Bulite faịlụ `.sqlite` iji dochie ebe nchekwa data dị ugbu a. A na-emepụta nkwado ndabere tupu mbubata na-akpaghị aka ma ọ bụrụ na `DISABLE_SQLITE_AUTO_BACKUP=true` |
```bash
# API: Bupụ ebe nchekwa data
curl -o backup.sqlite http://localhost:20128/api/db-backups/export
# API: Bupụ ha niile (ngwugwu zuru ezu)
curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll
# API: Bubata ebe nchekwa data
curl -X POST http://localhost:20128/api/db-backups/import \
-F "file=@backup.sqlite"
```
**Nnyocha Mbubata:** A na-enyocha faịlụ ebubatara maka izu oke (nnyocha pragma SQLite), tebụl ndị achọrọ (`provider_connections`, `provider_nodes`, `combos`, `api_keys`), na nha (kachasị 100MB).
**Ọnọdụ Ojiji:**
- Bugharịa OmniRoute n'etiti kọmputa
- Mepụta nkwado ndabere mpụga maka mgbake mgbe ọdachi mere
- Kesaa nhazi n'etiti ndị otu (bupụ ha niile → kesaa ngwugwu)
---
### Dashboard Ntọala
A haziri ibe ntọala n'ime **taabụ 7** iji mee ka nchọgharị dị mfe:
| Taabụ | Ihe ndị dị n’ime |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Izugbe** | Ngwaọrụ nchekwa sistemụ, omume ndabara, nhụta ọwara Endpoint |
| **Ọdịdị** | Njikwa isiokwu (ìhè/ọchịchịrị/sistemụ), nhụta sidebar, mgbanaka panel maka kaadị ọwara Cloudflare/Tailscale/ngrok |
| **AI** | Oke echiche (passthrough / iwepụ-na-akpaghị aka / ahaziri / adaptive — lee [THINKING_BUDGET.md](./THINKING_BUDGET.md)), system prompt zuru ụwa ọnụ, ọnụ ọgụgụ cache prompt |
| **Nchekwa** | Ntọala Nbanye/Okwuntughe, Njikwa Nnweta IP, nkwenye API maka `/models`, Mgbochi Provider, nchedo megide prompt-injection |
| **Routing** | Atụmatụ routing zuru ụwa ọnụ (Buru Ụzọ Jupụta / Round Robin / P2C / Random / Nke Ejiri Obere / Nke Ahaziri Maka Ọnụahịa), wildcard model aliases, usoro fallback, ndabara combo |
| **Resilience** | Ahịrị nchere arịrịọ, cooldown njikọ, nhazi provider breaker, na omume ichere ka cooldown gwụ |
| **Nke dị elu** | Nhazi proxy zuru ụwa ọnụ (HTTP/SOCKS5), mgbanwe proxy pụrụ iche maka provider ọ bụla |
Izugbe anaghịzi emepụtagharị ndetu logging na cache ndị bụ naanị maka ịgụ. A na-echekwa ntọala njigide na
njikarịcha database site na `/api/settings/database`; ihichapụ cache n’onwe gị na-eji
`DELETE /api/cache`. Ọ bụ `CALL_LOGS_TABLE_MAX_ROWS` na `PROXY_LOGS_TABLE_MAX_ROWS`
na-achịkwa oke ahịrị ndekọ arịrịọ na proxy.
---
### Njikwa Ọnụahịa & Mmefu Ego
Nweta ya site na **Dashboard → Ọnụahịa**.
| Taabụ | Ebumnuche |
| ------------- | ---------------------------------------------------------------------------------------------- |
| **Mmefu Ego** | Tọọ oke mmefu maka API key ọ bụla site na mmefu kwa ụbọchị/izu/ọnwa na nlekota ozugbo |
| **Ọnụahịa** | Lelee ma dezie ndenye ọnụahịa model — ọnụahịa kwa token ntinye/mmepụta 1K maka provider ọ bụla |
```bash
# API: Tọọ mmefu ego
curl -X POST http://localhost:20128/api/usage/budget \
-H "Content-Type: application/json" \
-d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}'
# API: Nweta ọnọdụ mmefu ego dị ugbu a
curl http://localhost:20128/api/usage/budget
```
**Nlekota Ọnụahịa:** Arịrịọ ọ bụla na-edekọ ojiji token ma gbakọọ ọnụahịa site n’iji tebụl ọnụahịa. Lelee nkọwa ya na **Dashboard → Ojiji** dịka provider, model, na API key siri dị.
---
### Ntụgharị Ọdịyo Ka Ọ Bụrụ Ederede
OmniRoute na-akwado ntụgharị ọdịyo ka ọ bụrụ ederede site na endpoint dakọtara na OpenAI:
```bash
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
# Ihe atụ na 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` bụ ụzọ Deepgram nke mbụ ma chọọ Deepgram API key.
Ọ bụrụ na ọ bụ naanị OpenRouter ka ahaziri, jiri `openrouter/deepgram/nova-3`.
Ndị provider **Okwu-gaa-Ederede (ntụgharị)**:
- `openai/` (dakọtara na whisper)
- `groq/` (Groq Whisper Turbo)
- `deepgram/` (ezinụlọ Nova)
- `assemblyai/`
- `nvidia/` (Parakeet, Canary)
- `huggingface/` (ụdị whisper dị iche iche)
- `qwen/`
Ndị provider **Ederede-gaa-Okwu (`POST /v1/audio/speech`)**:
- `openai/` (tts-1, tts-1-hd)
- `hyperbolic/`
- `deepgram/` (Aura)
- `nvidia/` (Magpie TTS)
- `elevenlabs/`
- `huggingface/`
- `inworld/`
- `cartesia/`
- `playht/`
- `kie/`
- `aws-polly/`
- `xiaomi-mimo/`
- `coqui/`, `tortoise/`
- `qwen/`
Ụdị ọdịyo akwadoro maka ntụgharị: `mp3`, `wav`, `m4a`, `flac`, `ogg`, `webm`. Ụdị mmepụta TTS dabere na provider (mp3, wav, opus, pcm, mulaw).
---
### Atụmatụ Idozi Combo Nha
Hazie idozi nha maka combo ọ bụla na **Dashboard → Combo → Mepụta/Dezie → Atụmatụ**.
| Atụmatụ | Nkọwa |
| ---------------------------- | --------------------------------------------------------------------------------------- |
| **Round-Robin** | Na-agbanwegharị n’etiti model n’usoro |
| **Mkpa** | Na-anwale model mbụ mgbe niile; ọ na-eji fallback naanị mgbe njehie mere |
| **Random** | Na-ahọrọ model na-enweghị usoro site na combo maka arịrịọ ọ bụla |
| **Dabere na Ibu** | Na-eme routing n’oke kwesịrị ekwesị dabere na ibu e kenyere model ọ bụla |
| **Nke Ejiri Obere** | Na-eme routing gaa na model nwere arịrịọ ọhụrụ kachasị ole na ole (na-eji metrik combo) |
| **Nke Ahaziri Maka Ọnụahịa** | Na-eme routing gaa na model dị ọnụ ala kachasị nke dị (na-eji tebụl ọnụahịa) |
Enwere ike ịtọ ndabara combo zuru ụwa ọnụ na **Dashboard → Ntọala → Routing → Ndabara Combo**.
Timeout target combo na-eketa timeout arịrịọ dị ugbu a dịka ndabara. Jiri **Timeout target
(sekọnd)** na ndabara combo ma ọ bụ otu combo naanị mgbe oke dị mkpụmkpụ maka target ọ bụla kwesịrị
ịkpalite fallback ngwa ngwa.
Njikarịcha combo na-enweghị latency chọrọ ka ị họrọ ịgbanye ya. Hapụ **Njikarịcha na-enweghị latency** ka ọ bụrụ nke agbanyụrụ iji
gbochie njirimara latency ndị a iso target fallback na-asọ mpi, ịwụfe target dabere na akụkọ
TTFT, ma ọ bụ ịpịkọta arịrịọ fallback; ịgbanye ya na-enye ohere hedging ahaziri, ịwụfe TTFT
n’amụma, na mkpakọ fallback nke na-arụ ọrụ tupu oge iji gbanwere izi ezi routing/arịrịọ maka
latency ọdụ dị ala.
Gbanyụọ **Reasoning token buffer** mgbe ndị na-eweta ọrụ upstream chọrọ ka e debe oke `max_tokens` / `maxOutputTokens` nke ọma. Mgbe enyere ya ikike, combo routing na-agbakwụnye naanị ohere mgbakwunye maka reasoning-model n'ụdị model ndị nwere oke mmepụta amaara, ma na-ahapụ oke token nke client ka ọ ghara ịgbanwe mgbe uru nchekwa e tinyere buffer ga-agafe oke ahụ. Ọ bụrụ na oke client adịlarị elu karịa oke amaara, OmniRoute na-ewedata ya ruo n'oke ahụ tupu o ziga arịrịọ upstream.
---
### Dashboard Ahụike
Nweta ya site na **Dashboard → Health**. Nchịkọta ahụike sistemụ ozugbo nwere kaadị 6:
| Kaadị | Ihe Ọ Na-egosi |
| ------------------------- | ------------------------------------------------------------- |
| **Ọnọdụ Sistemụ** | Oge ọ nọ n'ọrụ, ụdị mbipụta, ojiji ebe nchekwa, ndekọ data |
| **Ahụike Provider** | Ọnọdụ ọrụ circuit breaker zuru ụwa ọnụ nke provider |
| **Oke Ọsọ** | Oge nkwụsị njikọ ndị dị ugbu a n'akaụntụ ọ bụla na oge fọdụrụ |
| **Mkpọchi Ndị Dị Ugbu A** | Mkpọchi ndị metụtara model na mwepụ nwa oge ndị dị ugbu a |
| **Cache Signature** | Ọnụọgụ cache deduplication (igodo ndị na-arụ ọrụ, hit rate) |
| **Telemetry Latency** | Nchịkọta latency p50/p95/p99 maka provider ọ bụla |
**Ndụmọdụ Ọkachamara:** Ibe Health na-emegharị onwe ya kwa sekọnd 10. Jiri kaadị circuit breaker chọpụta provider ndị na-enwe nsogbu.
---
## 🤖 Auto-Routing (Nhazi ụzọ akpaaka na-enweghị nhazi ọ bụla)
OmniRoute nwere **auto-router nke akara na-achịkwa** nke na-ahọrọ model kacha mma maka arịrịọ ọ bụla n'ofe provider niile ejikọrọ — enweghị combo ị ga na-elekọta. Naanị jiri otu n'ime prefix `auto/*` zipụ arịrịọ ahụ, OmniRoute ga-emepụta virtual combo ozugbo, na-enye ndị a na-atụle akara dabere na latency, ọnụahịa, ọnụego ihe ịga nke ọma, ndakọrịta context, ịdị mma model maka ọrụ ahụ, ọdịda ndị mere na nso nso a, quota, na ọnọdụ circuit-breaker.
| Prefix | Ihe ọ na-ebuli ka mma |
| -------------- | ------------------------------------------------------------------------------------------------------------- |
| `auto` | Nhazi ndabara ziri ezi (latency × ọnụahịa × ọnụego ihe ịga nke ọma) |
| `auto/coding` | Ọrụ coding: na-ahọrọkarị Claude, GPT-5, GLM, Kimi, Qwen Coder, ndị coder DeepSeek |
| `auto/cheap` | $/token kacha ala, na-anabata latency dị elu |
| `auto/fast` | Latency kacha ala, na-eleghara ọnụahịa anya |
| `auto/offline` | Naanị provider mpaghara (Ollama, vLLM, llama.cpp) — bara uru maka nhazi air-gapped |
| `auto/smart` | Ogo reasoning bụ ihe mbụ (Opus, GPT-5 xhigh, R1, GLM 5.1 reasoning) |
| `auto/lkgp` | "Provider Ikpeazụ Amaara na Ọ Dị Mma" — na-arapara na provider ikpeazụ gara nke ọma, ma mesịa laghachi na iwu |
Ọmụmaatụ:
```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
}'
```
A kọwara auto-router n'ụzọ zuru ezu na [AUTO-COMBO.md](../routing/AUTO-COMBO.md) — gụnyere otu esi edozi ibu akara, tinye provider na blacklist, ma nyochaa mkpebi nhazi ụzọ na **Dashboard → Auto Combo**.
---
## 🔌 Njikọ MCP & A2A
OmniRoute bụ ma **MCP server** (Model Context Protocol) ma **A2A server** (Agent-to-Agent JSON-RPC 2.0). IDE ọ bụla kwekọrọ na MCP ma ọ bụ host agent nwere ike ịkpọ ngwaọrụ OmniRoute ozugbo — achọghị wrapper ọzọ.
### Ụzọ mbufe MCP
- **SSE**: `http://localhost:20128/api/mcp/sse`
- **HTTP nwere ike ịkwasa data**: `http://localhost:20128/api/mcp/stream`
- **stdio**: `omniroute --mcp` (maka plugin IDE ndị na-ahọrọ stdio)
### Jikọọ Claude Desktop
Dezie `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) ma ọ bụ nke kwekọrọ na ya na Windows/Linux:
```json
{
"mcpServers": {
"omniroute": {
"command": "omniroute",
"args": ["--mcp"]
}
}
}
```
### Jikọọ Cursor / Continue / VS Code MCP
Jiri URL SSE `http://localhost:20128/api/mcp/sse` na igodo API Bearer e mepụtara na **Dashboard → API Keys**.
### Scopes
MCP na-akọwapụta scopes 32 nwere aha ugbu a. Enwere ike ịmachi igodo Bearer ọ bụla ka ọ bụrụ naanị scopes akọwapụtara — lee [MCP-SERVER.md](../frameworks/MCP-SERVER.md) maka ndepụta scope na ngwaọrụ bụ isi na [A2A-SERVER.md](../frameworks/A2A-SERVER.md) maka schema JSON-RPC.
---
## 🧠 Usoro Nkà
OmniRoute na-enye **usoro nkà** (`src/lib/skills/`) enwere ike ịgbatị ka ndị nnọchiteanya na endpoint A2A nwee ike ịrụ usoro ọrụ ndị metụtara ngalaba kpọmkwem (dịka `code-review`, `summarize`, `extract-facts`, `web-research`).
- **UI Ahịa** — Chọgharịa ma wụnye nkà site na **Dashboard → Skills**
- **Oke ikike n'otu igodo** — Machibido nkà ndị igodo API ọ bụla nwere ike ịkpọ
- **Nkà ahaziri iche** — Tinye faịlụ TypeScript na `src/lib/a2a/skills/`, debanye ya aha, a ga-enwekwa ike ịkpọ ya ozugbo site na A2A
Ntụaka zuru ezu: [SKILLS.md](../frameworks/SKILLS.md).
---
## 💾 Usoro Ncheta
OmniRoute na-echekwa **ncheta mkparịta ụka ogologo oge** site na iji iweghachite ngwakọta:
- **SQLite FTS5** maka ịchọ mkpụrụokwu n'ime mkparịta ụka ndị gara aga
- **Qdrant vector store** (nhọrọ) maka icheta ihe dabere na nghọta
- **Mwepụta eziokwu akpaka** — a na-achịkọta ihe dị iche iche, mmasị, na mkpebi mgbe nnọkọ ọ bụla gasịrị ma chekwaa ha na tebl `memory_facts`
- A na-ekewa ncheta dịka igodo API ọ bụla na nnọkọ ọ bụla si dị
Jikwaa ncheta na **Dashboard → Memory** (chọọ, dezie, bupụ, hichapụ). Ebe HTTP (`/api/memory/*`) na-enye ndị nnọchiteanya ohere iziga na ịjụ eziokwu site na mmemme — lee [MEMORY.md](../frameworks/MEMORY.md).
---
## 🔔 Webhooks
Debanye aha maka mmemme OmniRoute iji mee nlekota na akpaaka ozugbo.
- Mepụta webhook na **Dashboard → Webhooks** site na iji URL ebumnuche na ihe nzuzo mbinye aka HMAC
- Mmemme ndị dị: `request.completed`, `request.failed`, `provider.unavailable`, `budget.exceeded`, `combo.switched`, `circuit_breaker.opened`, `circuit_breaker.closed`
- Payload ọ bụla gụnyere `X-OmniRoute-Signature` (HMAC-SHA256) maka nkwenye
- Nnwale ọzọ: mgbalị 3 nwere oge nchere na-abawanye n'usoro exponential, emesịa ebufe ya na dead-letter queue
Schema zuru ezu dị na [WEBHOOKS.md](../frameworks/WEBHOOKS.md).
---
## ☁️ Ndị Nnọchiteanya Cloud
OmniRoute na-ejikọta na ndị nnọchiteanya cloud maka ide koodu (**OpenAI Codex Cloud**, **Devin**, **Jules**, **Antigravity**) ka ị nwee ike iziga ọrụ ndị na-ewe ogologo oge site n'otu dashboard ahụ nke na-ahụ maka routing mpaghara gị.
- Mepụta ọrụ na **Dashboard → Cloud Agents** ma ọ bụ site na `POST /api/v1/agents/tasks`
- Soro ọnọdụ, ndekọ, na artifacts nke ọrụ ọ bụla
- Weta igodo API nke gị maka provider ọ bụla — ozi nzere anaghị apụ n'ime instance OmniRoute
Ntụaka zuru ezu: [CLOUD_AGENT.md](../frameworks/CLOUD_AGENT.md).
---
## 🛠️ Njikwa Site na Mmemme
Ị nwere ike ijikwa akụrụngwa OmniRoute niile (providers, combos, keys, settings) site na HTTP, site n'iji **igodo Bearer nwere scope `manage`**.
Mepụta igodo ahụ na **Dashboard → API Keys → New Key → Scope: manage**, emesịa:
```bash
# Depụta ndị provider
curl http://localhost:20128/api/providers \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"
# Tinye njikọ 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" }'
# Mepụta 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" }] }'
# Depụta/mepụta igodo API
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"] }'
```
Lee [API_REFERENCE.md](../reference/API_REFERENCE.md) maka katalọgụ endpoint zuru ezu na schema arịrịọ/nzaghachi.
---
## 💻 CLI Dị N'ime
OmniRoute na-abịa na CLI dị n'ime (`omniroute …`) maka nhazi, nchọpụta nsogbu, na njikwa oge ọ na-arụ ọrụ. Nke a **dị iche na ibe "CLI Tools" dị na dashboard**, nke na-ahazi CLI nke ndị ọzọ (Claude Code, Cursor, Codex, Cline, …) ka ha nwee ike ịkparịta ụka na OmniRoute.
```bash
omniroute setup # Ọkachamara nhazi mmekọrịta (paswọọdụ, ndị na-eweta ọrụ, ngwakọta)
omniroute setup --non-interactive # Kwesịrị ekwesị maka CI
omniroute doctor # Nchọpụta ọnọdụ ọrụ (ebe data dị, DB, ndị na-eweta ọrụ, ọdụ ụgbọ)
omniroute providers available # Depụta ndị na-eweta ọrụ a na-akwado
omniroute providers list # Depụta njikọ ndị ahaziri
omniroute providers test # Nwalee njikọ onye na-eweta ọrụ ozugbo
omniroute combos list # Depụta ngwakọta
omniroute combos switch # Tọọ ngwakọta ndabara
omniroute models # Depụta ụdịdị dị (--json, --search)
omniroute keys add | list | remove # Jikwaa igodo API site na terminal
omniroute backup # Mepụta snapshot nke nhazi + DB
omniroute restore [] # Weghachite site na snapshot
omniroute health # Ọnọdụ ọrụ zuru ezu (ndị nkwụsị, cache, ebe nchekwa)
omniroute quota # Ojiji oke onye na-eweta ọrụ
omniroute mcp status # Ọnọdụ sava MCP
omniroute a2a status # Ọnọdụ sava A2A
omniroute tunnel list|create|stop # Ọwara Cloudflare/Tailscale/ngrok
omniroute reset-password # Tọgharịa paswọọdụ onye nchịkwa
omniroute --mcp # Malite sava MCP site na stdio
omniroute --port 3000 # Malite sava na ọdụ ụgbọ ahaziri iche
```
Ndụmọdụ: jikọta `omniroute doctor --json` na ngwa nlekota gị iji nye ọkwa mgbe njikọ onye na-eweta ọrụ adịghị mma.
---
## 🖥️ Ngwa Desktọpụ (Electron)
OmniRoute dị ka ngwa desktọpụ nke e wuru kpọmkwem maka Windows, macOS, na Linux.
### Nwụnye
```bash
# Site na ndekọ electron:
cd electron
npm install
# Ọnọdụ mmepe (jikọọ na sava mmepe Next.js na-arụ ọrụ):
npm run dev
# Ọnọdụ mmepụta (na-eji standalone build):
npm start
```
### Iwu Ihe Nwụnye
```bash
cd electron
npm run build # Platform dị ugbu a
npm run build:win # Windows (.exe NSIS)
npm run build:mac # macOS (.dmg universal)
npm run build:linux # Linux (.AppImage)
```
Nsonaazụ → `electron/dist-electron/`
### Njirimara Ndị Dị Mkpa
| Njirimara | Nkọwa |
| ----------------------------- | ------------------------------------------------------------------------ |
| **Njikere Sava** | Na-enyocha sava tupu igosi windo (enweghị ihuenyo efu) |
| **Tray Sistemụ** | Belata gaa na tray, gbanwee ọdụ ụgbọ, kwụsị site na menu tray |
| **Njikwa Ọdụ Ụgbọ** | Gbanwee ọdụ ụgbọ sava site na tray (na-amalitegharị sava na-akpaghị aka) |
| **Iwu Nchekwa Ọdịnaya** | CSP siri ike site na headers nke session |
| **Otu Instance** | Naanị otu instance nke ngwa nwere ike ịrụ ọrụ n'otu oge |
| **Ọnọdụ Na-enweghị Ịntanetị** | Sava Next.js e tinyere n'ime ya na-arụ ọrụ na-enweghị ịntanetị |
### Mgbanwe Gburugburuwu
| Mgbanwe | Ndabara | Nkọwa |
| --------------------- | ------- | ------------------------------ |
| `OMNIROUTE_PORT` | `20128` | Ọdụ ụgbọ sava |
| `OMNIROUTE_MEMORY_MB` | `512` | Oke heap Node.js (64–16384 MB) |
📖 Akwụkwọ nkọwa zuru ezu: [`electron/README.md`](../../electron/README.md)