# User Guide (اردو)
🌐 **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) · 🇳🇬 [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) · 🇺🇿 [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) · 🇳🇬 [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) · 🇺🇿 [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)
- [کلاؤڈ ایجنٹس](#-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 | روزانہ صبح 10 بجے | بجٹ بیک اپ |
| | 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
→ ماہانہ ری سیٹ (مہینے کی پہلی تاریخ)
ماڈلز:
gh/gpt-5.5
gh/gpt-5.4
gh/claude-sonnet-4.6
gh/claude-opus-4.7
gh/gemini-3.1-pro-preview
```
### 💰 سستے پرووائیڈرز
#### GLM-4.7 (روزانہ ری سیٹ، $0.6/1M)
1. سائن اپ کریں: [Zhipu AI](https://open.bigmodel.cn)
2. Coding Plan سے API کلید حاصل کریں
3. Dashboard → Add API Key: Provider: `glm`، API Key: `your-key`
**استعمال:** `glm/glm-4.7` — **ماہرانہ مشورہ:** Coding Plan صرف 1/7 لاگت پر 3× کوٹا فراہم کرتا ہے! روزانہ صبح 10:00 بجے ری سیٹ ہوتا ہے۔
#### 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: Provider: `qianfan`
**استعمال:** `qianfan/ernie-5.1`، `qianfan/ernie-x1.1`، یا کوئی دوسرا Qianfan OpenAI سے ہم آہنگ ماڈل ID۔
### 🆓 مفت پرووائیڈرز
بغیر توثیق والے مفت پرووائیڈرز کے پرووائیڈر صفحے پر **No authentication required** کے ساتھ ایک سوئچ ہوتا ہے۔
اسے بند کرنے سے وہ پرووائیڈر غیر فعال ہو جاتا ہے، Providers کے کنفیگرڈ/مختصر ویوز سے ہٹ جاتا ہے، اور
اس کے ماڈلز `/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 سے مطابقت رکھنے والا روٹ اینڈ پوائنٹ استعمال کریں۔ `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
# کنفیگریشن ڈائریکٹری بنائیں
mkdir -p ~/.omniroute
# .env فائل بنائیں (.env.example دیکھیں)
cp .env.example ~/.omniroute/.env
# سرور شروع کریں
omniroute
# یا حسبِ ضرورت پورٹ کے ساتھ:
omniroute --port 3000
```
CLI خودکار طور پر `~/.omniroute/.env` یا `./.env` سے `.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 موجودہ systemd صارف سروس استعمال کرتا ہے۔
لاگ اِن پر آغاز غیر فعال کریں:
```bash
omniroute autostart disable
```
### ان انسٹال کرنا
جب آپ کو مزید OmniRoute کی ضرورت نہ رہے تو مکمل طور پر ہٹانے کے لیے ہم دو فوری اسکرپٹس فراہم کرتے ہیں:
| کمانڈ | کارروائی |
| ------------------------ | --------------------------------------------------------------------------------------- |
| `npm run uninstall` | سسٹم ایپ ہٹاتی ہے، لیکن `~/.omniroute` میں **آپ کا DB اور کنفیگریشنز برقرار رکھتی ہے**۔ |
| `npm run uninstall:full` | ایپ ہٹاتی ہے اور **تمام کنفیگریشنز، کلیدیں اور ڈیٹابیسز مستقل طور پر مٹا دیتی ہے**۔ |
> نوٹ: یہ کمانڈز چلانے کے لیے 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
# یا: pm2 start npm --name omniroute -- start
```
### PM2 تعیناتی (کم میموری)
محدود RAM والے سرورز کے لیے میموری کی حد کا اختیار استعمال کریں:
```bash
# 512MB کی حد کے ساتھ (ڈیفالٹ)
pm2 start npm --name omniroute -- start
# یا حسبِ ضرورت میموری کی حد کے ساتھ
OMNIROUTE_MEMORY_MB=512 pm2 start npm --name omniroute -- start
# یا 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
# امیج بنائیں (ڈیفالٹ = runner-cli جس میں codex/claude/droid پہلے سے انسٹال ہیں)
docker build -t omniroute:cli .
# پورٹیبل موڈ (تجویز کردہ)
docker run -d --name omniroute -p 20128:20128 --env-file ./.env -v omniroute-data:/app/data omniroute:cli
```
CLI بائنریز کے ساتھ ہوسٹ سے مربوط موڈ کے لیے مرکزی دستاویزات میں Docker سیکشن دیکھیں۔
### Void Linux (xbps-src)
Void Linux کے صارفین `xbps-src` کراس کمپائلیشن فریم ورک استعمال کرتے ہوئے OmniRoute کو مقامی طور پر پیکیج اور انسٹال کر سکتے ہیں۔ یہ مطلوبہ `better-sqlite3` مقامی بائنڈنگز کے ساتھ Node.js کی اسٹینڈ الون بِلڈ کو خودکار بناتا ہے۔
xbps-src ٹیمپلیٹ دیکھیں
```bash
# '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() {
# node-gyp کے لیے ہدف CPU آرکیٹیکچر کا تعین کریں
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) تمام انحصارات انسٹال کریں – اسکرپٹس کو چھوڑ دیں
NODE_ENV=development npm ci --ignore-scripts
# 2) Next.js اسٹینڈ الون بنڈل بِلڈ کریں
npm run build
# 3) جامد اثاثوں کو اسٹینڈ الون میں کاپی کریں
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true
# 4) 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) کمپائل شدہ بائنڈنگ کو اسٹینڈ الون بنڈل میں رکھیں
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) آرکیٹیکچر سے مخصوص sharp بنڈلز ہٹائیں
rm -rf .next/standalone/node_modules/@img
# 7) Next.js کے جامد تجزیے سے رہ جانے والے pino رن ٹائم انحصارات کاپی کریں:
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
# پوسٹ انسٹال ہُک کے ذریعے خالی Next.js ایپ راؤٹر ڈائریکٹریوں کو ہٹائے جانے سے روکیں
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` | `omniroute-default-secret-change-me` | JWT دستخطی راز (**پروڈکشن میں تبدیل کریں**) |
| `INITIAL_PASSWORD` | `CHANGEME` | پہلے لاگ اِن کا پاس ورڈ |
| `DATA_DIR` | `~/.omniroute` | ڈیٹا ڈائریکٹری (db، استعمال، لاگز) |
| `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` | `endpoint-proxy-api-key-secret` | تیار کردہ API کلیدوں کے لیے HMAC راز |
| `REQUIRE_API_KEY` | `false` | `/v1/*` پر Bearer API کلید لازمی بنائیں |
| `ALLOW_API_KEY_REVEAL` | `false` | تصدیق شدہ ڈیش بورڈ صارفین کو حسبِ مطالبہ ذخیرہ شدہ API کلید کی مکمل قدریں ظاہر کرنے کی اجازت دیں |
| `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES` | `70` | کیش شدہ Provider Limits ڈیٹا کی سرور سائیڈ تازہ کاری کا وقفہ؛ UI کے ریفریش بٹن اب بھی دستی سنک شروع کرتے ہیں |
| `DISABLE_SQLITE_AUTO_BACKUP` | `false` | لکھنے/درآمد/بحالی سے پہلے خودکار SQLite اسنیپ شاٹس غیر فعال کریں؛ دستی بیک اپ بدستور کام کرتے ہیں |
| `APP_LOG_TO_FILE` | `true` | ایپلیکیشن اور آڈٹ لاگ کا آؤٹ پٹ ڈسک پر فعال کرتا ہے |
| `AUTH_COOKIE_SECURE` | `false` | `Secure` توثیقی کوکی لازمی بنائیں (HTTPS ریورس پراکسی کے پیچھے) |
| `CLOUDFLARED_BIN` | غیر مقرر | منظم ڈاؤن لوڈ کے بجائے موجودہ `cloudflared` بائنری استعمال کریں |
| `CLOUDFLARED_PROTOCOL` | `http2` | منظم Quick Tunnels کے لیے ٹرانسپورٹ (`http2`، `quic`، یا `auto`) |
| `OMNIROUTE_MEMORY_MB` | `512` | Node.js ہیپ کی حد، MB میں |
| `PROMPT_CACHE_MAX_SIZE` | `50` | پرامپٹ کیش اندراجات کی زیادہ سے زیادہ تعداد |
| `SEMANTIC_CACHE_MAX_SIZE` | `100` | سیمینٹک کیش اندراجات کی زیادہ سے زیادہ تعداد |
ماحولیاتی متغیرات کے مکمل حوالہ کے لیے [README](../README.md) دیکھیں۔
---
## 📊 دستیاب ماڈلز
تمام دستیاب ماڈلز دیکھیں
> ذیل کی فہرست v3.8.0 کے لیے `open-sse/config/providerRegistry.ts` سے منتخب کی گئی ہے۔ کلاؤڈ کیٹلاگز (Gemini، OpenRouter وغیرہ) متحرک طور پر ہم وقت کیے جاتے ہیں — مکمل لائیو کیٹلاگ کے لیے **Dashboard → Providers → [provider] → Available Models** کھولیں یا `GET /api/models/catalog` کو کال کریں۔
>
> اگر کسی فراہم کنندہ کی پہلے سے شامل فہرست موجودہ فہرست سے مختلف ہو گئی ہو، تو لائیو اپ اسٹریم کیٹلاگ حاصل کرنے کے لیے اس صفحے پر **Import from /models** استعمال کریں (یا **Auto-Sync** فعال کریں)۔ LLM7.io (`gemini-3.1-flash-lite`) اور UncloseAI (`solidrust/Hermes-3-Llama-3.1-8B-AWQ`) کے لیے v3.8.50 میں اس کی تصدیق کی گئی؛ اسی آزمائشی مرحلے کے دوران Pollinations کی گمنام رسائی اپ اسٹریم کی جانب سے محدود رہی۔
**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: **Dashboard → Providers → Kiro → Available Models** کے تحت دکھایا گیا لائیو کیٹلاگ استعمال کریں۔ دستیابی اکاؤنٹ اور پلان پر منحصر ہے۔
**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/`)** — یورپی یونین میں ہوسٹ کردہ: `mistral/mistral-large-latest`, `mistral/mistral-medium-3-5`, `mistral/mistral-small-latest`, `mistral/devstral-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/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/`)**: Google سے ہر API کلید کے مطابق لائیو ہم وقت کیا جاتا ہے — کوئی جامد فہرست نہیں۔ **Dashboard → Providers** میں کلید منسلک کریں، پھر موجودہ کیٹلاگ درآمد کرنے کے لیے **Available Models** استعمال کریں (مثلاً `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` اینڈ پوائنٹ پیش کرے تو اسے خودکار طور پر ہم وقت کیا جا سکتا ہے۔
**ماڈل IDs کے بارے میں نوٹ:** OmniRoute فراہم کنندہ کے مقامی IDs استعمال کرتا ہے (`claude-opus-4-8`, `gpt-5.5`, `glm-5.1`, `MiniMax-M2.7`, `kimi-k2.5`, `grok-4.20-0309-reasoning`)۔ بعض IDs میں نقطوں والے ورژن شامل ہوتے ہیں کیونکہ اپ اسٹریم API انہیں اسی طرح قبول کرتا ہے۔ اگر کوئی ماڈل اوپر درج نہ ہو، تو دستیابی کی تصدیق کے لیے `omniroute models --search ` چلائیں یا `GET /api/models/catalog` استعمال کریں۔
---
## 🧩 جدید خصوصیات
### حسبِ ضرورت ماڈلز
ایپ اپ ڈیٹ کا انتظار کیے بغیر کسی بھی فراہم کنندہ میں کوئی بھی ماڈل ID شامل کریں:
```bash
# 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"}'
# فہرست: curl http://localhost:20128/api/provider-models?provider=openai
# حذف کریں: curl -X DELETE "http://localhost:20128/api/provider-models?provider=openai&model=gpt-5.2"
```
یا ڈیش بورڈ استعمال کریں: **Providers → [Provider] → Custom Models**۔
نوٹس:
- OpenRouter اور OpenAI/Anthropic سے مطابقت رکھنے والے فراہم کنندگان کا انتظام صرف **Available Models** سے کیا جاتا ہے۔ دستی اضافہ، درآمد، اور خودکار مطابقت پذیری سب ایک ہی دستیاب ماڈلز کی فہرست میں شامل ہوتے ہیں، اس لیے ان فراہم کنندگان کے لیے علیحدہ Custom Models سیکشن موجود نہیں ہے۔
- **Custom Models** سیکشن ان فراہم کنندگان کے لیے ہے جو منظم دستیاب ماڈلز کی درآمد فراہم نہیں کرتے۔
### حسبِ ضرورت OpenAI سے مطابقت رکھنے والے فراہم کنندگان
OpenAI API استعمال کرنے والے کسی بھی گیٹ وے (خود میزبانی کردہ پراکسی، vLLM، یا فریقِ ثالث ایگریگیٹر)
کو اس کے اپنے فراہم کنندہ نوڈ کے طور پر شامل کیا جا سکتا ہے:
1. **Providers → Add OpenAI Compatible**۔
2. **Name**: نوڈ کے لیے ایک نمائشی لیبل۔
3. **Prefix**: روٹنگ کا نام۔ کلائنٹس ماڈلز کو `/` کی صورت میں کال کرتے ہیں، لہٰذا
`mygw` پریفکس والا نوڈ `mygw/gpt-4o-mini` فراہم کرتا ہے۔ یہ لازمی ہے؛ حروف کے حوالے سے کوئی پابندی نہیں۔
4. **API Type**: اینڈ پوائنٹس کا وہ خاندان جو گیٹ وے فراہم کرتا ہے (Chat Completions، Responses،
Embeddings، آڈیو، تصاویر)۔
5. **Base URL**: API روٹ، جس میں `/v1` تک کا حصہ شامل ہو (مثلاً
`https://gateway.example.com/v1`)، مکمل `/chat/completions` پاتھ نہیں۔ غیر معیاری
پاتھ والے گیٹ ویز انہیں **Advanced Settings** کے تحت مقرر کرتے ہیں (چیٹ پاتھ، ماڈلز پاتھ)۔
6. **API Key (for Check)** فیلڈ صرف کنکشن کی جانچ کرتی ہے۔ نوڈ بنانے کے بعد،
اسے کھولیں اور درخواستوں میں استعمال ہونے والی کلید محفوظ کرنے کے لیے **Add Connection** استعمال کریں۔
نوڈ کو `openai-compatible--` کی صورت میں ایک اندرونی id ملتی ہے؛ آپ کو اسے کبھی
ٹائپ کرنے کی ضرورت نہیں، پریفکس ہی عوامی نام ہے۔
#### محفوظ پریفکسز
کوئی پریفکس پہلے سے موجود فراہم کنندہ کا id یا عرف (مثلاً `openai`، `cf`) یا
کسی سبک دوش فراہم کنندہ کا id نہیں ہو سکتا۔ ماڈل ریزالور حسبِ ضرورت نوڈز سے پہلے پہلے سے موجود
ids اور عرف چیک کرتا ہے، اس لیے ان پریفکسز میں سے کوئی استعمال کرنے والے نوڈ کو کبھی ٹریفک موصول نہیں ہوگی:
`/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`)۔ اگر کسی حسبِ ضرورت نوڈ کی درخواستیں ایسی
خرابی کے ساتھ ناکام ہوں جس میں پہلے سے موجود فراہم کنندہ یا اس کی اسناد کا نام ہو، تو چیک کریں کہ آیا نوڈ کا پریفکس
محفوظ ہے: اس اصول کے نفاذ سے پہلے محفوظ کیے گئے نوڈز اب بھی موجود ہیں، لیکن ان کا پریفکس ٹریفک کو
پہلے سے موجود فراہم کنندہ کی طرف بھیجتا ہے۔ نوڈ میں ترمیم کریں اور اسے نیا پریفکس دیں۔
### OmniRoute پیئرز کو زنجیر بنانا
ایک اور OmniRoute گیٹ وے کو **Custom OpenAI-compatible** فراہم کنندہ کے طور پر شامل کیا جا سکتا ہے۔ اس
پیئر کا `/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` ہیڈر شامل ہوتا ہے۔ کوئی گیٹ وے دہرائی گئی instance ID یا ختم شدہ hop
بجٹ کو HTTP `508 Loop Detected` کے ساتھ مسترد کرتا ہے؛ عام upstream فراہم کنندگان کو کوئی پیئر میٹا ڈیٹا نہیں ملتا۔
پیئر چیننگ ڈیٹابیس ریپلیکیشن یا ہوسٹ فیل اوور نہیں ہے۔ ہر گیٹ وے اپنی الگ
SQLite حالت، کیشز، شرح کاؤنٹرز، اور سیشنز رکھتا ہے۔ فعال/غیر فعال یا فعال/فعال دستیابی کے لیے صحت کی جانچ والا ریورس پراکسی یا کلائنٹ
فیل اوور استعمال کریں، اور ایک 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
# عالمی پراکسی مقرر کریں
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"global": {"type":"http","host":"proxy.example.com","port":"8080"}}'
# فی فراہم کنندہ پراکسی
curl -X PUT http://localhost:20128/api/settings/proxy \
-d '{"providers": {"openai": {"type":"socks5","host":"proxy.example.com","port":"1080"}}}'
# پراکسی کی جانچ کریں
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 اور دیگر self-hosted deployments کے لیے **Dashboard → Endpoints** میں دستیاب ہے
- ایک عارضی `https://*.trycloudflare.com` URL بناتا ہے جو آپ کے موجودہ OpenAI-compatible `/v1` endpoint کی طرف فارورڈ کرتا ہے
- پہلی بار فعال کرنے پر صرف ضرورت کے وقت `cloudflared` انسٹال ہوتا ہے؛ بعد کے restarts اسی managed binary کو دوبارہ استعمال کرتے ہیں
- OmniRoute یا container restart کے بعد Quick Tunnels خودکار طور پر بحال نہیں ہوتے؛ ضرورت پڑنے پر انہیں dashboard سے دوبارہ فعال کریں
- Tunnel URLs عارضی ہوتے ہیں اور ہر بار tunnel کو روکنے/شروع کرنے پر تبدیل ہو جاتے ہیں
- محدود containers میں غیر ضروری QUIC UDP buffer warnings سے بچنے کے لیے managed Quick Tunnels بطور ڈیفالٹ HTTP/2 transport استعمال کرتے ہیں
- اگر آپ managed transport کے انتخاب کو override کرنا چاہتے ہیں تو `CLOUDFLARED_PROTOCOL=quic` یا `auto` سیٹ کریں
- اگر آپ managed download کے بجائے پہلے سے انسٹال شدہ `cloudflared` binary استعمال کرنا چاہتے ہیں تو `CLOUDFLARED_BIN` سیٹ کریں
- Cloudflare Quick Tunnel، Tailscale Funnel، اور ngrok Tunnel panels کو **Settings → Appearance** میں دکھایا یا چھپایا جا سکتا ہے۔ کسی panel کو چھپانے سے چلتا ہوا tunnel بند نہیں ہوتا۔
### LLM Gateway انٹیلیجنس (مرحلہ 9)
- **Semantic Cache** — غیر streaming، temperature=0 responses کو خودکار طور پر cache کرتا ہے (`X-OmniRoute-No-Cache: true` کے ذریعے bypass کریں)
- **Request Idempotency** — `Idempotency-Key` یا `X-Request-Id` header کے ذریعے 5s کے اندر requests کی تکرار ختم کرتا ہے
- **Progress Tracking** — `X-OmniRoute-Progress: true` header کے ذریعے اختیاری SSE `event: progress` events
---
### Translator Playground
**Dashboard → Translator** کے ذریعے رسائی حاصل کریں۔ Debug کریں اور تصوراتی طور پر دیکھیں کہ OmniRoute مختلف providers کے درمیان API requests کا ترجمہ کیسے کرتا ہے۔
| موڈ | مقصد |
| ---------------- | --------------------------------------------------------------------------------------- |
| **Playground** | source/target formats منتخب کریں، request پیسٹ کریں، اور ترجمہ شدہ output فوراً دیکھیں |
| **Chat Tester** | proxy کے ذریعے live chat messages بھیجیں اور مکمل request/response cycle کا معائنہ کریں |
| **Test Bench** | ترجمے کی درستگی کی توثیق کے لیے متعدد format combinations پر batch tests چلائیں |
| **Live Monitor** | proxy سے requests گزرتے وقت real-time translations دیکھیں |
**استعمال کے مواقع:**
- Debug کریں کہ کوئی مخصوص client/provider combination کیوں ناکام ہوتا ہے
- توثیق کریں کہ thinking tags، tool calls، اور system prompts درست طور پر ترجمہ ہوتے ہیں
- OpenAI، Claude، Gemini، اور Responses API formats کے درمیان format differences کا موازنہ کریں
---
### Routing Strategies
**Dashboard → Settings → Routing** کے ذریعے configure کریں۔ dashboard سب سے زیادہ استعمال ہونے والی چھ strategies دکھاتا ہے؛ combos اور auto-router اندرونی طور پر ایک زیادہ وسیع مجموعے کو support کرتے ہیں۔
**Dashboard میں دکھائی دینے والی strategies (account-level routing):**
| Strategy | وضاحت |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| **Fill First** | accounts کو priority order میں استعمال کرتی ہے — primary account عدم دستیابی تک تمام requests سنبھالتا ہے |
| **Round Robin** | قابلِ ترتیب sticky limit کے ساتھ تمام accounts کے درمیان باری باری چلتی ہے (ڈیفالٹ: فی account 3 calls) |
| **P2C (Power of Two Choices)** | 2 بے ترتیب accounts منتخب کرتی ہے اور زیادہ صحت مند account کی طرف route کرتی ہے — health کو مدِنظر رکھتے ہوئے load کو متوازن کرتی ہے |
| **Random** | Fisher-Yates shuffle استعمال کرتے ہوئے ہر request کے لیے بے ترتیب account منتخب کرتی ہے |
| **Least Used** | سب سے پرانے `lastUsedAt` timestamp والے account کی طرف route کرتی ہے، تاکہ traffic یکساں طور پر تقسیم ہو |
| **Cost Optimized** | سب سے کم priority value والے account کی طرف route کرتی ہے، تاکہ کم ترین لاگت والے providers کو ترجیح دی جا سکے |
**اعلیٰ درجے کی combo اور auto strategies** (ہر combo کے لیے یا `auto/*` prefixes کے ذریعے قابلِ ترتیب — [AUTO-COMBO.md](../routing/AUTO-COMBO.md) دیکھیں):
- `priority` — سخت ترتیب، کبھی round-robin استعمال نہیں کرتی
- `weighted` — فی model weights کے مطابق traffic کی متناسب تقسیم
- `fill-first` — limits تک پہنچنے تک پہلے model کو مکمل استعمال کرتی ہے
- `round-robin` / `strict-random` / `random`
- `p2c` (Power of Two Choices)
- `least-used` اور `cost-optimized`
- `auto` — تمام candidates میں score کی بنیاد پر
- `lkgp` (Last Known Good Provider) — آخری کامیاب provider کو برقرار رکھتی ہے، پھر rules پر fallback کرتی ہے
- `context-optimized` — سب سے بڑی دستیاب context window والا model منتخب کرتی ہے
- `context-relay` — follow-up turns کے لیے long-context models کو زنجیر کی صورت میں جوڑتی ہے
#### External Sticky Session Header
external session affinity کے لیے (مثلاً reverse proxies کے پیچھے Claude Code/Codex agents)، یہ بھیجیں:
```http
X-Session-Id: your-session-key
```
OmniRoute، `x_session_id` بھی قبول کرتا ہے اور مؤثر session key کو `X-OmniRoute-Session-Id` میں واپس کرتا ہے۔
اگر آپ Nginx استعمال کرتے ہیں اور underscore-form headers بھیجتے ہیں، تو یہ فعال کریں:
```nginx
underscores_in_headers on;
```
#### Wildcard Model Aliases
model names کو remap کرنے کے لیے wildcard patterns بنائیں:
```
Pattern: claude-sonnet-* → Target: cc/claude-sonnet-4-6
Pattern: gpt-* → Target: gh/gpt-5.3-codex
```
Wildcards، `*` (کوئی بھی حروف) اور `?` (ایک حرف) کو support کرتے ہیں۔
#### Fallback Chains
تمام requests پر لاگو ہونے والی global fallback chains متعین کریں:
```
Chain: production-fallback
1. cc/claude-opus-4-7
2. gh/gpt-5.3-codex
3. glm/glm-4.7
```
---
### عام Provider Combinations اور Routing Patterns
OmniRoute میں متعدد providers کو یکجا کرنے اور ان کے درمیان routing کے لیے یہاں چند مثالی patterns ہیں:
#### 1. Coding Agent Combo: لاگت/رفتار کے Fallback کے ساتھ اعلیٰ درجے کی Reasoning
coding agents (OpenCode، Claude Code، Cursor، Cline) کے لیے موزوں۔ ابتدا میں frontier reasoning models کی طرف route کرتا ہے، اور quota ختم ہونے یا errors کی صورت میں تیز coding models پر fallback کرتا ہے۔
- **Dashboard**: Combos → New Combo → Name: `agent-coding` → Strategy: `Priority`
- **Models**:
1. `claude/claude-sonnet-4-6` (بنیادی coding agent)
2. `openai/gpt-4o` (ثانوی اعلیٰ گنجائش والا fallback)
3. `deepseek/deepseek-v4-flash` (اعلیٰ کارکردگی والا، کم لاگت fallback)
```bash
# 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
# 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` کومبو جو پہلے وژن کی صلاحیت رکھنے والے ماڈلز اور آخر میں زیادہ تھروپٹ والا متن/کوڈ ماڈل درج کرتا ہے۔
- **ماڈلز**:
1. `gemini/gemini-2.5-pro` (تصویر/ملٹی موڈل کی مضبوط تفہیم)
2. `openai/gpt-4o` (وژن اور ٹول کے استعمال کا متوازن امتزاج)
3. `deepseek/deepseek-v4-flash` (متن/کوڈ کی تخلیق)
---
### لچک اور سرکٹ بریکرز
**Dashboard → Settings → Resilience** کے ذریعے ترتیب دیں۔
OmniRoute پانچ اجزاء کے ساتھ فراہم کنندہ کی سطح پر لچک نافذ کرتا ہے:
1. **درخواستوں کی قطار اور رفتار کی تنظیم** — سسٹم کی سطح پر درخواستوں کی تشکیل:
- **درخواستیں فی منٹ (RPM)** — فی اکاؤنٹ ایک منٹ میں درخواستوں کی زیادہ سے زیادہ تعداد
- **درخواستوں کے درمیان کم از کم وقت** — درخواستوں کے درمیان ملی سیکنڈز میں کم از کم وقفہ
- **زیادہ سے زیادہ بیک وقت درخواستیں** — فی اکاؤنٹ بیک وقت درخواستوں کی زیادہ سے زیادہ تعداد
2. **کنکشن کول ڈاؤن** — دوبارہ کوشش کے قابل ناکامیوں کے بعد کسی ایک کنکشن کے لیے، فی توثیقی قسم کی ترتیب:
- **بنیادی کول ڈاؤن** — دوبارہ کوشش کے قابل اپ اسٹریم ناکامیوں کے لیے طے شدہ کول ڈاؤن دورانیہ
- **اپ اسٹریم ری ٹرائی ہنٹس استعمال کریں** — دستیاب ہونے پر مستند `Retry-After` یا ری سیٹ ہنٹس کی پابندی کرتا ہے
- **زیادہ سے زیادہ بیک آف مراحل** — بار بار ہونے والی ناکامیوں کے لیے ایکسپونینشل بیک آف کی زیادہ سے زیادہ سطح
3. **فراہم کنندہ سرکٹ بریکر** — ابتدا سے انتہا تک فراہم کنندہ کی ناکامیوں کو ٹریک کرتا ہے، ترتیب دی گئی انتباہی حد پر فراہم کنندہ کو تنزلی کا شکار قرار دیتا ہے، اور ترتیب دی گئی ناکامی کی حد پوری ہونے پر بریکر کھول دیتا ہے:
- **تنزلی کی حد** — `DEGRADED` میں داخل ہونے سے پہلے فراہم کنندہ کی مسلسل ناکامیوں کی تعداد
- **ناکامی کی حد** — `OPEN` میں داخل ہونے سے پہلے فراہم کنندہ کی مسلسل ناکامیوں کی تعداد
- **ری سیٹ ٹائم آؤٹ** — فراہم کنندہ کو دوبارہ جانچنے سے پہلے کا دورانیہ
- **CLOSED** (صحت مند) — درخواستیں معمول کے مطابق جاری رہتی ہیں
- **DEGRADED** — بڑھی ہوئی ناکامیوں کو ٹریک کرتے ہوئے درخواستیں جاری رہتی ہیں
- **OPEN** — بار بار ناکامیوں کے بعد فراہم کنندہ کو عارضی طور پر مسدود کر دیا جاتا ہے
- **HALF_OPEN** — جانچ کی جا رہی ہے کہ آیا فراہم کنندہ بحال ہو گیا ہے
کنکشن کے دائرۂ کار تک محدود `429` ریٹ لمٹس **کنکشن کول ڈاؤن** میں رہتی ہیں اور فراہم کنندہ بریکر میں شمار نہیں ہوتیں۔
فراہم کنندہ بریکر کی رن ٹائم حالت صرف **Dashboard → Health** پر دکھائی جاتی ہے۔
4. **کول ڈاؤن کا انتظار** — اگر ہر ممکنہ کنکشن پہلے ہی کول ڈاؤن میں ہو تو OmniRoute قریب ترین کول ڈاؤن کے اختتام کا انتظار کر کے اسی کلائنٹ درخواست کی خودکار طور پر دوبارہ کوشش کر سکتا ہے۔
5. **ریٹ لمٹ کی خودکار شناخت** — جب اپ اسٹریم فراہم کنندگان واضح انتظار کے دورانیے واپس کرتے ہیں تو ترتیب فعال ہونے کی صورت میں وہ ہنٹس مقامی کنکشن کول ڈاؤن کو اوور رائیڈ کر دیتے ہیں۔
**ماہرانہ مشورہ:** کسی تعطل کے بعد فعال فراہم کنندہ بریکرز کا معائنہ اور ری سیٹ کرنے کے لیے **Health** صفحہ استعمال کریں۔ Resilience صفحہ صرف ترتیب تبدیل کرتا ہے۔
---
### ڈیٹا بیس ایکسپورٹ / امپورٹ
**Dashboard → Settings → System & Storage** میں ڈیٹا بیس بیک اپس کا نظم کریں۔
| کارروائی | وضاحت |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **ڈیٹا بیس ایکسپورٹ کریں** | موجودہ SQLite ڈیٹا بیس کو `.sqlite` فائل کے طور پر ڈاؤن لوڈ کرتا ہے |
| **سب کچھ ایکسپورٹ کریں (.tar.gz)** | ایک مکمل بیک اپ آرکائیو ڈاؤن لوڈ کرتا ہے، جس میں شامل ہیں: ڈیٹا بیس، ترتیبات، کومبوز، فراہم کنندہ کنکشنز (اسناد کے بغیر)، API کلید کا میٹا ڈیٹا |
| **ڈیٹا بیس امپورٹ کریں** | موجودہ ڈیٹا بیس کو تبدیل کرنے کے لیے `.sqlite` فائل اپ لوڈ کرتا ہے۔ جب تک `DISABLE_SQLITE_AUTO_BACKUP=true` نہ ہو، امپورٹ سے پہلے بیک اپ خودکار طور پر بنایا جاتا ہے |
```bash
# API: ڈیٹا بیس ایکسپورٹ کریں
curl -o backup.sqlite http://localhost:20128/api/db-backups/export
# API: سب کچھ ایکسپورٹ کریں (مکمل آرکائیو)
curl -o backup.tar.gz http://localhost:20128/api/db-backups/exportAll
# API: ڈیٹا بیس امپورٹ کریں
curl -X POST http://localhost:20128/api/db-backups/import \
-F "file=@backup.sqlite"
```
**امپورٹ کی توثیق:** امپورٹ کی گئی فائل کی سالمیت (SQLite pragma جانچ)، مطلوبہ ٹیبلز (`provider_connections`، `provider_nodes`، `combos`، `api_keys`) اور حجم (زیادہ سے زیادہ 100MB) کی توثیق کی جاتی ہے۔
**استعمال کی صورتیں:**
- OmniRoute کو مشینوں کے درمیان منتقل کرنا
- آفات سے بحالی کے لیے بیرونی بیک اپس بنانا
- ٹیم کے اراکین کے درمیان ترتیبات کا اشتراک کرنا (سب کچھ ایکسپورٹ کریں → آرکائیو شیئر کریں)
---
### ترتیبات کا ڈیش بورڈ
آسان نیویگیشن کے لیے ترتیبات کا صفحہ **7 ٹیبز** میں منظم کیا گیا ہے:
| ٹیب | مندرجات |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **عمومی** | سسٹم اسٹوریج ٹولز، طے شدہ رویہ، Endpoint ٹنل کی مرئیت |
| **ظاہری شکل** | تھیم کنٹرولز (روشن/تاریک/سسٹم)، سائڈبار کی مرئیت، Cloudflare/Tailscale/ngrok ٹنل کارڈز کے لیے پینل ٹوگلز |
| **AI** | تھنکنگ بجٹ (passthrough / auto-strip / custom / adaptive — دیکھیے [THINKING_BUDGET.md](./THINKING_BUDGET.md))، عالمی سسٹم پرامپٹ، پرامپٹ کیش کے اعداد و شمار |
| **سیکیورٹی** | لاگ اِن/پاس ورڈ کی ترتیبات، IP رسائی کنٹرول، `/models` کے لیے API تصدیق، فراہم کنندہ بلاکنگ، پرامپٹ انجیکشن سے تحفظ |
| **روٹنگ** | عالمی روٹنگ حکمتِ عملی (Fill First / Round Robin / P2C / Random / Least Used / Cost Optimized)، وائلڈ کارڈ ماڈل عرف، فال بیک زنجیریں، کومبو کی طے شدہ ترتیبات |
| **استحکام** | درخواستوں کی قطار، کنکشن کول ڈاؤن، فراہم کنندہ بریکر کی تشکیل، اور کول ڈاؤن کا انتظار کرنے کا رویہ |
| **اعلیٰ ترتیبات** | عالمی پراکسی کی تشکیل (HTTP/SOCKS5)، ہر فراہم کنندہ کے لیے الگ پراکسی اوور رائیڈز |
عمومی ٹیب اب صرف پڑھنے کے قابل لاگنگ اور کیش نوٹس کی نقل نہیں بناتا۔ ڈیٹابیس برقرار رکھنے اور
بہتر بنانے کی ترتیبات `/api/settings/database` کے ذریعے محفوظ کی جاتی ہیں؛ کیش کو دستی طور پر صاف کرنے کے لیے
`DELETE /api/cache` استعمال ہوتا ہے۔ درخواست اور پراکسی لاگ کی قطاروں کی زیادہ سے زیادہ حدود
`CALL_LOGS_TABLE_MAX_ROWS` اور `PROXY_LOGS_TABLE_MAX_ROWS` کے ذریعے کنٹرول ہوتی ہیں۔
---
### اخراجات اور بجٹ کا انتظام
**Dashboard → Costs** کے ذریعے رسائی حاصل کریں۔
| ٹیب | مقصد |
| ---------- | ---------------------------------------------------------------------------------------------------------------- |
| **بجٹ** | ہر API کلید کے لیے یومیہ/ہفتہ وار/ماہانہ بجٹ کے ساتھ اخراجات کی حدود مقرر کریں اور حقیقی وقت میں نگرانی کریں |
| **قیمتیں** | ماڈل کی قیمتوں کے اندراجات دیکھیں اور ان میں ترمیم کریں — ہر فراہم کنندہ کے لیے فی 1K ان پٹ/آؤٹ پٹ ٹوکنز کی لاگت |
```bash
# API: بجٹ مقرر کریں
curl -X POST http://localhost:20128/api/usage/budget \
-H "Content-Type: application/json" \
-d '{"keyId": "key-123", "limit": 50.00, "period": "monthly"}'
# API: بجٹ کی موجودہ حالت حاصل کریں
curl http://localhost:20128/api/usage/budget
```
**لاگت کی نگرانی:** ہر درخواست ٹوکن کے استعمال کو لاگ کرتی ہے اور قیمتوں کے جدول کے ذریعے لاگت کا حساب لگاتی ہے۔ فراہم کنندہ، ماڈل اور API کلید کے لحاظ سے تفصیلات **Dashboard → Usage** میں دیکھیں۔
---
### آڈیو ٹرانسکرپشن
OmniRoute، OpenAI سے ہم آہنگ endpoint کے ذریعے آڈیو ٹرانسکرپشن کی معاونت کرتا ہے:
```bash
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
# 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/` (whisper سے ہم آہنگ)
- `groq/` (Groq Whisper Turbo)
- `deepgram/` (Nova خاندان)
- `assemblyai/`
- `nvidia/` (Parakeet، Canary)
- `huggingface/` (whisper کی اقسام)
- `qwen/`
**متن سے تقریر (`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/`
ٹرانسکرپشن کے لیے معاون آڈیو فارمیٹس: `mp3`، `wav`، `m4a`، `flac`، `ogg`، `webm`۔ TTS آؤٹ پٹ فارمیٹس فراہم کنندہ پر منحصر ہوتے ہیں (mp3، wav، opus، pcm، mulaw)۔
---
### کومبو توازن کی حکمتِ عملیاں
ہر کومبو کے لیے توازن کو **Dashboard → Combos → Create/Edit → Strategy** میں تشکیل دیں۔
| حکمتِ عملی | تفصیل |
| ------------------ | ---------------------------------------------------------------------------------------------- |
| **Round-Robin** | ماڈلز کو ترتیب وار باری باری استعمال کرتا ہے |
| **Priority** | ہمیشہ پہلے ماڈل کو آزماتا ہے؛ صرف خرابی کی صورت میں فال بیک کرتا ہے |
| **Random** | ہر درخواست کے لیے کومبو سے ایک بے ترتیب ماڈل منتخب کرتا ہے |
| **Weighted** | ہر ماڈل کو دیے گئے وزن کی بنیاد پر متناسب طور پر روٹنگ کرتا ہے |
| **Least-Used** | حالیہ درخواستوں کی کم ترین تعداد والے ماڈل کی طرف روٹنگ کرتا ہے (کومبو میٹرکس استعمال کرتا ہے) |
| **Cost-Optimized** | دستیاب سب سے سستے ماڈل کی طرف روٹنگ کرتا ہے (قیمتوں کا جدول استعمال کرتا ہے) |
کومبو کی عالمی طے شدہ ترتیبات **Dashboard → Settings → Routing → Combo Defaults** میں مقرر کی جا سکتی ہیں۔
کومبو ہدف ٹائم آؤٹس طے شدہ طور پر درخواست کے موجودہ ٹائم آؤٹ کو وراثت میں لیتے ہیں۔ کومبو کی طے شدہ ترتیبات یا کسی انفرادی کومبو پر **Target timeout
(seconds)** صرف اس وقت استعمال کریں جب ہر ہدف کے لیے کم حد سے
زیادہ تیزی سے فال بیک متحرک کرنا مقصود ہو۔
زیرو لیٹنسی کومبو کی بہتریاں اختیاری ہیں۔ ان لیٹنسی خصوصیات کو فال بیک اہداف کے ساتھ دوڑ لگانے، TTFT
کی سرگزشت کی بنیاد پر اہداف چھوڑنے، یا فال بیک درخواستوں کو کمپریس کرنے سے روکنے کے لیے **Zero-latency optimizations** کو غیر فعال رہنے دیں؛ اسے فعال کرنے سے تشکیل شدہ ہیجنگ، پیش گوئی پر مبنی TTFT
اسکپس، اور پیشگی فال بیک کمپریشن، کم ٹیل
لیٹنسی کے بدلے روٹنگ/درخواست کی اصل مطابقت میں سمجھوتا کر سکتے ہیں۔
جب upstream providers کو سخت `max_tokens` / `maxOutputTokens` حدود درکار ہوں تو **Reasoning token buffer** کو غیر فعال کریں۔ فعال ہونے پر، combo routing صرف ان reasoning models کے لیے اضافی گنجائش شامل کرتی ہے جن کی output cap معلوم ہو، اور جب محفوظ buffered قدر اس cap سے تجاوز کرے تو client token limit کو تبدیل نہیں کرتی۔ اگر client limit پہلے ہی کسی معلوم cap سے زیادہ ہو، تو OmniRoute upstream request بھیجنے سے پہلے اسے کم کرکے اس cap تک محدود کر دیتا ہے۔
---
### Health Dashboard
**Dashboard → Health** کے ذریعے رسائی حاصل کریں۔ 6 cards کے ساتھ حقیقی وقت میں system health کا جائزہ:
| Card | یہ کیا دکھاتا ہے |
| --------------------- | ----------------------------------------------------------- |
| **System Status** | Uptime، version، memory usage، data directory |
| **Provider Health** | Global provider circuit breaker کی runtime state |
| **Rate Limits** | باقی وقت کے ساتھ ہر account کے فعال connection cooldowns |
| **Active Lockouts** | فعال model-scoped lockouts اور عارضی exclusions |
| **Signature Cache** | Deduplication cache کے اعداد و شمار (active keys، hit rate) |
| **Latency Telemetry** | ہر provider کے لیے p50/p95/p99 latency aggregation |
**ماہرانہ مشورہ:** Health page ہر 10 seconds بعد خودکار طور پر refresh ہوتا ہے۔ یہ شناخت کرنے کے لیے circuit breaker card استعمال کریں کہ کن providers کو مسائل درپیش ہیں۔
---
## 🤖 خودکار روٹنگ (صفر کنفیگریشن)
OmniRoute ایک **اسکور پر مبنی خودکار راؤٹر** کے ساتھ آتا ہے جو تمام منسلک فراہم کنندگان میں سے ہر درخواست کے لیے بہترین ماڈل منتخب کرتا ہے — برقرار رکھنے کے لیے کسی کومبو کی ضرورت نہیں۔ بس `auto/*` سابقوں میں سے کسی ایک کے ساتھ درخواست بھیجیں، اور OmniRoute فوری طور پر ایک ورچوئل کومبو تشکیل دے گا، جس میں امیدواروں کو تاخیر، لاگت، کامیابی کی شرح، سیاق سے مطابقت، کام کے لیے ماڈل کی موزونیت، حالیہ ناکامیوں، کوٹے، اور سرکٹ بریکر کی حالت کی بنیاد پر اسکور کیا جائے گا۔
| سابقہ | کس چیز کے لیے بہتر بناتا ہے |
| -------------- | --------------------------------------------------------------------------------------------------------------------- |
| `auto` | متوازن ڈیفالٹ (تاخیر × لاگت × کامیابی کی شرح) |
| `auto/coding` | کوڈنگ کے کام: Claude، GPT-5، GLM، Kimi، Qwen Coder، اور DeepSeek کوڈرز کو ترجیح دیتا ہے |
| `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` (ان IDE پلگ اِنز کے لیے جو stdio کو ترجیح دیتے ہیں)
### 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 ایک قابلِ توسیع **مہارتوں کا فریم ورک** (`src/lib/skills/`) فراہم کرتا ہے تاکہ ایجنٹس اور A2A اینڈ پوائنٹ مخصوص شعبوں کے معمولات چلا سکیں (مثلاً `code-review`، `summarize`، `extract-facts`، `web-research`)۔
- **مارکیٹ پلیس UI** — **Dashboard → Skills** سے مہارتیں براؤز اور انسٹال کریں
- **فی کلید اسکوپس** — محدود کریں کہ کون سی API keys کن مہارتوں کو استعمال کر سکتی ہیں
- **حسبِ ضرورت مہارتیں** — `src/lib/a2a/skills/` میں ایک TypeScript فائل رکھیں، اسے رجسٹر کریں، اور وہ فوراً A2A کے ذریعے قابلِ استعمال ہو جائے گی
مکمل حوالہ: [SKILLS.md](../frameworks/SKILLS.md)۔
---
## 💾 میموری سسٹم
OmniRoute ہائبرڈ بازیافت کے ساتھ **طویل مدتی مکالماتی میموری** محفوظ رکھتا ہے:
- گزشتہ گفتگوؤں میں کلیدی الفاظ کی تلاش کے لیے **SQLite FTS5**
- معنوی یادآوری کے لیے **Qdrant vector store** (اختیاری)
- **حقائق کا خودکار استخراج** — ہر سیشن کے بعد entities، ترجیحات اور فیصلوں کا خلاصہ بنا کر انہیں `memory_facts` ٹیبل میں محفوظ کیا جاتا ہے
- میموریز کو ہر API key اور ہر سیشن کے لحاظ سے محدود کیا جاتا ہے
میموریز کو **Dashboard → Memory** میں منظم کریں (تلاش، ترمیم، ایکسپورٹ، مستقل حذف)۔ HTTP انٹرفیس (`/api/memory/*`) ایجنٹس کو پروگرام کے ذریعے حقائق شامل کرنے اور دریافت کرنے کی سہولت دیتا ہے — دیکھیے [MEMORY.md](../frameworks/MEMORY.md)۔
---
## 🔔 Webhooks
حقیقی وقت کی نگرانی اور آٹومیشن کے لیے OmniRoute ایونٹس کو سبسکرائب کریں۔
- ہدف URL اور HMAC سائننگ سیکرٹ کے ساتھ **Dashboard → Webhooks** میں ایک webhook بنائیں
- دستیاب ایونٹس: `request.completed`، `request.failed`، `provider.unavailable`، `budget.exceeded`، `combo.switched`، `circuit_breaker.opened`، `circuit_breaker.closed`
- تصدیق کے لیے ہر payload میں `X-OmniRoute-Signature` (HMAC-SHA256) شامل ہوتا ہے
- دوبارہ کوششیں: exponential backoff کے ساتھ 3 کوششیں، پھر dead-letter queue
مکمل schema کے لیے [WEBHOOKS.md](../frameworks/WEBHOOKS.md) دیکھیں۔
---
## ☁️ کلاؤڈ ایجنٹس
OmniRoute کلاؤڈ کوڈنگ ایجنٹس (**OpenAI Codex Cloud**، **Devin**، **Jules**، **Antigravity**) کے ساتھ ضم ہوتا ہے، تاکہ آپ اسی dashboard سے طویل دورانیے کے ٹاسکس روانہ کر سکیں جو آپ کی مقامی routing کو سنبھالتا ہے۔
- **Dashboard → Cloud Agents** میں یا `POST /api/v1/agents/tasks` کے ذریعے ٹاسکس بنائیں
- ہر ٹاسک کی حیثیت، logs اور artifacts کو ٹریک کریں
- ہر provider کے لیے اپنی API key استعمال کریں — اسناد کبھی بھی OmniRoute instance سے باہر نہیں جاتیں
مکمل حوالہ: [CLOUD_AGENT.md](../frameworks/CLOUD_AGENT.md)۔
---
## 🛠️ پروگراماتی نظم و نسق
آپ **`manage` scope والی Bearer key** استعمال کرتے ہوئے HTTP کے ذریعے OmniRoute کے ہر resource (providers، combos، keys، settings) کو منظم کر سکتے ہیں۔
کلید **Dashboard → API Keys → New Key → Scope: manage** میں بنائیں، پھر:
```bash
# providers کی فہرست دکھائیں
curl http://localhost:20128/api/providers \
-H "Authorization: Bearer $OMNIROUTE_MANAGE_KEY"
# provider کا connection شامل کریں
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 ٹولز" صفحے سے الگ ہے**، جو فریقِ ثالث کے CLIs (Claude Code، Cursor، Codex، Cline، …) کو اس طرح ترتیب دیتا ہے کہ وہ OmniRoute سے رابطہ کر سکیں۔
```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 # stdio پر MCP سرور شروع کریں
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)