# CLI Tools — OmniRoute (اردو) 🌐 **Languages:** 🇺🇸 [English](../../../../reference/CLI-TOOLS.md) · 🇪🇹 [am](../../../am/docs/reference/CLI-TOOLS.md) · 🇸🇦 [ar](../../../ar/docs/reference/CLI-TOOLS.md) · 🇦🇿 [az](../../../az/docs/reference/CLI-TOOLS.md) · 🇧🇬 [bg](../../../bg/docs/reference/CLI-TOOLS.md) · 🇧🇩 [bn](../../../bn/docs/reference/CLI-TOOLS.md) · 🇧🇦 [bs](../../../bs/docs/reference/CLI-TOOLS.md) · 🇨🇿 [cs](../../../cs/docs/reference/CLI-TOOLS.md) · 🇩🇰 [da](../../../da/docs/reference/CLI-TOOLS.md) · 🇩🇪 [de](../../../de/docs/reference/CLI-TOOLS.md) · 🇬🇷 [el](../../../el/docs/reference/CLI-TOOLS.md) · 🇪🇸 [es](../../../es/docs/reference/CLI-TOOLS.md) · 🇪🇪 [et](../../../et/docs/reference/CLI-TOOLS.md) · 🇮🇷 [fa](../../../fa/docs/reference/CLI-TOOLS.md) · 🇫🇮 [fi](../../../fi/docs/reference/CLI-TOOLS.md) · 🇫🇷 [fr](../../../fr/docs/reference/CLI-TOOLS.md) · 🇮🇪 [ga](../../../ga/docs/reference/CLI-TOOLS.md) · 🇮🇳 [gu](../../../gu/docs/reference/CLI-TOOLS.md) · 🇳🇬 [ha](../../../ha/docs/reference/CLI-TOOLS.md) · 🇮🇱 [he](../../../he/docs/reference/CLI-TOOLS.md) · 🇮🇳 [hi](../../../hi/docs/reference/CLI-TOOLS.md) · 🇭🇷 [hr](../../../hr/docs/reference/CLI-TOOLS.md) · 🇭🇺 [hu](../../../hu/docs/reference/CLI-TOOLS.md) · 🇦🇲 [hy](../../../hy/docs/reference/CLI-TOOLS.md) · 🇮🇩 [id](../../../id/docs/reference/CLI-TOOLS.md) · 🇳🇬 [ig](../../../ig/docs/reference/CLI-TOOLS.md) · 🇮🇹 [it](../../../it/docs/reference/CLI-TOOLS.md) · 🇯🇵 [ja](../../../ja/docs/reference/CLI-TOOLS.md) · 🇬🇪 [ka](../../../ka/docs/reference/CLI-TOOLS.md) · 🇰🇭 [km](../../../km/docs/reference/CLI-TOOLS.md) · 🇮🇳 [kn](../../../kn/docs/reference/CLI-TOOLS.md) · 🇰🇷 [ko](../../../ko/docs/reference/CLI-TOOLS.md) · 🇱🇹 [lt](../../../lt/docs/reference/CLI-TOOLS.md) · 🇱🇻 [lv](../../../lv/docs/reference/CLI-TOOLS.md) · 🇮🇳 [ml](../../../ml/docs/reference/CLI-TOOLS.md) · 🇮🇳 [mr](../../../mr/docs/reference/CLI-TOOLS.md) · 🇲🇾 [ms](../../../ms/docs/reference/CLI-TOOLS.md) · 🇲🇹 [mt](../../../mt/docs/reference/CLI-TOOLS.md) · 🇲🇲 [my](../../../my/docs/reference/CLI-TOOLS.md) · 🇳🇵 [ne](../../../ne/docs/reference/CLI-TOOLS.md) · 🇳🇱 [nl](../../../nl/docs/reference/CLI-TOOLS.md) · 🇳🇴 [no](../../../no/docs/reference/CLI-TOOLS.md) · 🇮🇳 [or](../../../or/docs/reference/CLI-TOOLS.md) · 🇮🇳 [pa](../../../pa/docs/reference/CLI-TOOLS.md) · 🇵🇭 [phi](../../../phi/docs/reference/CLI-TOOLS.md) · 🇵🇱 [pl](../../../pl/docs/reference/CLI-TOOLS.md) · 🇵🇹 [pt](../../../pt/docs/reference/CLI-TOOLS.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/reference/CLI-TOOLS.md) · 🇷🇴 [ro](../../../ro/docs/reference/CLI-TOOLS.md) · 🇷🇺 [ru](../../../ru/docs/reference/CLI-TOOLS.md) · 🇱🇰 [si](../../../si/docs/reference/CLI-TOOLS.md) · 🇸🇰 [sk](../../../sk/docs/reference/CLI-TOOLS.md) · 🇸🇮 [sl](../../../sl/docs/reference/CLI-TOOLS.md) · 🇷🇸 [sr](../../../sr/docs/reference/CLI-TOOLS.md) · 🇸🇪 [sv](../../../sv/docs/reference/CLI-TOOLS.md) · 🇰🇪 [sw](../../../sw/docs/reference/CLI-TOOLS.md) · 🇮🇳 [ta](../../../ta/docs/reference/CLI-TOOLS.md) · 🇮🇳 [te](../../../te/docs/reference/CLI-TOOLS.md) · 🇹🇭 [th](../../../th/docs/reference/CLI-TOOLS.md) · 🇹🇷 [tr](../../../tr/docs/reference/CLI-TOOLS.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/reference/CLI-TOOLS.md) · 🇺🇿 [uz](../../../uz/docs/reference/CLI-TOOLS.md) · 🇻🇳 [vi](../../../vi/docs/reference/CLI-TOOLS.md) · 🇳🇬 [yo](../../../yo/docs/reference/CLI-TOOLS.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/reference/CLI-TOOLS.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/reference/CLI-TOOLS.md) --- آخری بار اپ ڈیٹ کیا گیا: 2026-08-23 OmniRoute تین زمروں کے CLI ٹولز کے ساتھ انضمام کرتا ہے، جو تین مخصوص ڈیش بورڈ صفحات پر موجود ہیں: | صفحہ | روٹ | تصور | تعداد | | -------------- | ----------------------- | ---------------------------------------------------------------------------------------- | ------------- | | **CLI Code's** | `/dashboard/cli-code` | کوڈنگ ٹولز جنہیں آپ OmniRoute کی طرف بھیجتے ہیں (کلائنٹ → CLI → OmniRoute → فراہم کنندہ) | 26 | | **CLI Agents** | `/dashboard/cli-agents` | خود مختار ایجنٹس جنہیں آپ OmniRoute کی طرف بھیجتے ہیں (وہی بہاؤ، وسیع تر دائرۂ کار) | 10 | | **ACP Agents** | `/dashboard/acp-agents` | وہ CLIs جنہیں OmniRoute پسِ منظر کے طور پر stdio/ACP کے ذریعے چلاتا ہے (معکوس بہاؤ) | رجسٹری دیکھیں | پرانی روٹس 308 کے ذریعے ری ڈائریکٹ ہوتی ہیں: `/dashboard/cli-tools` → `/dashboard/cli-code`، `/dashboard/agents` → `/dashboard/acp-agents`۔ --- ## یہ کیسے کام کرتا ہے ``` CLI Code's / CLI Agents (استعمال کا بہاؤ): Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ... │ ▼ (سب OmniRoute کی طرف اشارہ کرتے ہیں) http://YOUR_SERVER:20128/v1 │ ▼ (OmniRoute درخواست کو درست فراہم کنندہ تک پہنچاتا ہے) Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ... ACP Agents (معکوس آغاز کا بہاؤ): کلائنٹ کی درخواست → OmniRoute → stdio/ACP کے ذریعے CLI چلاتا ہے → جواب ``` **فوائد:** - تمام ٹولز کا نظم کرنے کے لیے ایک API کلید - ڈیش بورڈ میں تمام CLIs کے اخراجات کی ٹریکنگ - ہر ٹول کو دوبارہ تشکیل دیے بغیر ماڈل تبدیل کرنا - مقامی طور پر اور ریموٹ سرورز پر کام کرتا ہے (VPS، Docker، Akamai، Cloudflare Tunnel) --- ## `setup-*` کے ساتھ خودکار تشکیل آپ کو ہر ٹول کی تشکیل دستی طور پر لکھنے کی ضرورت نہیں ہے۔ OmniRoute ہر معاونت یافتہ CLI کے لیے ایک `setup-*` کمانڈ فراہم کرتا ہے، جو چلتے ہوئے OmniRoute (مقامی یا ریموٹ) سے **لائیو** ماڈل کیٹلاگ پڑھتی ہے اور آپ کی مشین پر ٹول کی اپنی تشکیل لکھتی ہے: ```bash omniroute setup-codex omniroute setup-claude omniroute setup-opencode omniroute setup-cline omniroute setup-kilo omniroute setup-continue omniroute setup-cursor omniroute setup-roo omniroute setup-crush omniroute setup-goose omniroute setup-qwen omniroute setup-aider omniroute setup-5dive ``` ہر کمانڈ `--remote --api-key ` (مقامی ٹول کو ریموٹ OmniRoute کے لیے تشکیل دینا)، `--dry-run` (لکھے بغیر پیش منظر)، اور `--port` قبول کرتی ہے۔ خودکار ماڈل دریافت کے بغیر ٹولز (Cline، Kilo، Roo، Goose، Aider، Qwen، 5dive) `--model ` (اور غیر تعاملی عمل درآمد کے لیے `--yes`) لیتے ہیں۔ `setup-5dive` واحد ترکیب ہے جو `$HOME` کے تحت نہیں لکھتی: یہ فلیٹ ہوسٹ پر root کی ملکیت والا تصدیقی پروفائل لکھ کر 5dive ایجنٹ فلیٹ کو تشکیل دیتی ہے، اس لیے یہ `sudo` کے ذریعے خود کو دوبارہ چلاتی ہے اور اس کا اپنا کوئی ریموٹ موڈ نہیں ہے۔ درست env شامل کرکے اور کوئی تشکیل لکھے بغیر CLI چلانے کے لیے عمومی `omniroute run ` لانچر استعمال کریں (claude، codex، aider، goose، opencode، qwen، gemini — اہداف اور عرف `bin/cli/cli-manifest.mjs` سے آتے ہیں)؛ پرانے فی ٹول لانچرز `omniroute launch` (Claude Code) اور `omniroute launch-codex` (Codex) اب بھی دستیاب ہیں۔ Gemini CLI صرف لانچ کے لیے ہے: یہ `omniroute run` کا ہدف ہے، لیکن اس کے لیے کوئی `setup-*`/`configure` ترکیب نہیں ہے۔ > **مکمل حوالہ:** مرکزی جدول — ہر کمانڈ کیا لکھتی ہے، تمام فلیگز، > مقامی بمقابلہ ریموٹ، اور کن ٹولز کو `/v1` لاحقہ درکار ہے — یہاں موجود ہے: > **[CLI انضمامات](../guides/CLI-INTEGRATIONS.md)**۔ ### انہیں کنٹینر کے اندر چلانا OmniRoute کنٹینر کے اندر چلائی گئی `setup-*` کمانڈ کنٹینر کی اپنی ہوم ڈائریکٹری میں لکھتی ہے، جسے کوئی ہوسٹ CLI نہیں پڑھتا اور جو کنٹینر کے ساتھ ختم ہو جاتی ہے۔ OmniRoute اس صورتِ حال کا پتہ لگا کر لکھنے کے بجائے ہدایات کے ساتھ `2` کوڈ پر خارج ہو جاتا ہے۔ آگے بڑھنے کے دو معاونت یافتہ طریقے ہیں — ہوسٹ پر CLI انسٹال کریں اور کنٹینر سے `omniroute connect` کریں، یا تشکیل کی ڈائریکٹریز کو bind-mount کرکے `CLI_CONFIG_HOME` سیٹ کریں (compose کا `host` پروفائل)۔ ہر `setup-*` کمانڈ، نیز `omniroute configure` اور `omniroute config set`، `--allow-container-write` قبول کرتی ہیں جب آپ واقعی کنٹینر کے اپنے CLIs کو تشکیل دینا چاہتے ہوں؛ سرور کے لیے `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true` بھی یہی کام کرتا ہے۔ دیکھیں: [Docker رہنما → ہوسٹ CLI ٹولز کی تشکیل](../guides/DOCKER_GUIDE.md#configuring-host-cli-tools-when-omniroute-runs-in-docker)۔ ڈیش بورڈ کا **اطلاقی اینڈ پوائنٹ** (`POST /api/cli-tools/apply`) بھی اسی تحفظ کو نافذ کرتا ہے: کنٹینر میں ایسی تحریر جس کا ہدف ہوسٹ سے bind-mount نہ کیا گیا ہو، **`422`** کے ساتھ `containerEphemeralTarget: true`، محفوظ خرابی کا متن، اور — ہوسٹ ترکیب والے ٹولز (claude، codex، opencode، cline، kilo، continue) کے لیے — ہوسٹ پر چلانے کے لیے ایک `hostSetupCommand` (مثلاً `omniroute setup-opencode`) لوٹاتی ہے؛ کچھ بھی نہیں لکھا جاتا۔ `dryRun: true` کنٹینر موڈ میں کام کرتا رہتا ہے اور ڈسک کو چھوئے بغیر مخفی کی گئی پیش منظر معلومات اور ہدف کا راستہ لوٹاتا ہے۔ پیش منظر کا مواد اسناد پر مشتمل ایسی تشکیل نہیں ہے جسے کاپی یا درآمد کیا جائے۔ اصل ٹول/base URL/API کلید/ماڈل ان پٹس کے ساتھ ہوسٹ پر اطلاق کریں، یا بتائی گئی ہوسٹ سائیڈ setup کمانڈ استعمال کریں۔ پیش منظر ہیڈر اور درخواست کے معاہدے کے لیے [CLI تشکیل کی سیکیورٹی](../security/CLI-CONFIGURATION.md) دیکھیں۔ یہ رویہ دانستہ ہے اور `tests/unit/api/cli-tools/apply-container-guard.test.ts` کے ذریعے regression سے محفوظ ہے — تحفظ ہٹا کر 422 کو کبھی "درست" نہ کریں۔ --- ## ماخذِ حقیقت متحدہ کیٹلاگ `src/shared/constants/cliTools.ts` میں بطور `CLI_TOOLS: Record` موجود ہے۔ ہر اندراج میں یہ فیلڈز شامل ہیں (جن کی تعریف `src/shared/schemas/cliCatalog.ts` میں کی گئی ہے): | فیلڈ | قسم | وضاحت | | ----------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------- | | `category` | `"code" \| "agent"` | ٹول کس صفحے پر ظاہر ہوتا ہے | | `vendor` | `string` | ٹول کا ماخذ ("Anthropic"، "OSS (P. Gauthier)") | | `acpSpawnable` | `boolean` | بطور ACP Agent بھی قابلِ استعمال ہے (بیج دکھایا جاتا ہے) | | `baseUrlSupport` | `"full" \| "partial" \| "none"` | حسبِ ضرورت اینڈ پوائنٹ کی معاونت کی سطح۔ `"none"` = MITM بیک لاگ | | `configType` | `"env" \| "custom" \| "guide" \| "custom-builder" \| "mitm"` | کنفیگریشن کا طریقۂ کار | | `id`, `name`, `color`, `description`, `docsUrl` | معیاری | بنیادی ڈسپلے فیلڈز | `baseUrlSupport: "none"` والے اندراجات ڈیش بورڈ صفحات میں **نہیں دکھائے جاتے** — انہیں منصوبہ 11 کے لیے MITM بیک لاگ میں رجسٹر کیا گیا ہے (دیکھیے `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md`)۔ ### صلاحیت کی سطحیں (کیٹلاگ شدہ × قابلِ شناخت × قابلِ کنفیگریشن × قابلِ اجرا) ہر کیٹلاگ شدہ ٹول قابلِ شناخت، قابلِ کنفیگریشن یا قابلِ اجرا نہیں ہوتا۔ ہر سطح کا ایک اعلانیہ ماخذ ہے، اور ایک ڈرفٹ ٹیسٹ انہیں ہم آہنگ رکھتا ہے: | سطح | مفہوم | یہاں اعلان کیا گیا | | ------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------- | | **کیٹلاگ شدہ** | ڈیش بورڈ کیٹلاگ میں ظاہر ہوتا ہے (نام، وینڈر، دستاویزات، کنفیگریشن کی قسم) | `src/shared/constants/cliTools.ts` (`CLI_TOOLS`) | | **قابلِ شناخت** | بائنری/کنفیگریشن کی شناخت، صحت کی جانچ، کنفیگریشن کے راستے | `src/shared/services/cliRuntime.ts` (`CLI_TOOLS` رن ٹائم کیٹلاگ) | | **قابلِ کنفیگریشن** | `omniroute configure ` کے ذریعے معاونت یافتہ (سیٹ اپ ترکیب موجود ہے) | `bin/cli/cli-manifest.mjs` (`configure: true`) | | **قابلِ اجرا** | `omniroute run ` کے ذریعے معاونت یافتہ (ماحول/آرگیومنٹس کا ادخال متعین ہے) | `bin/cli/cli-manifest.mjs` (`run: true`) | `bin/cli/cli-manifest.mjs`، CLI کمانڈ سطوح کے لیے مستند قابلِ اجرا مینی فیسٹ ہے: `run`، `configure` اور شیل کمپلیشن جنریٹرز سبھی اپنی ہدف فہرستیں، عرفی ناموں کی ریزولوشن (مثلاً `kilocode`/`kilo-code`/`kilo_cli` → `kilo`) اور `--model` فلیگ کی وائرنگ اسی سے اخذ کرتے ہیں۔ ڈرفٹ گارڈ `tests/unit/cli/cli-manifest-drift.test.ts` تصدیق کرتا ہے کہ مینی فیسٹ، رن ٹائم کیٹلاگ، UI کیٹلاگ اور ہر صارفی سطح باہم ہم آہنگ رہیں — ایک سطح پر شامل کیا گیا ہدف اگر دوسری سطحوں پر شامل نہ ہو تو خاموشی سے ڈرفٹ ہونے کے بجائے ٹیسٹ مجموعہ ناکام ہو جاتا ہے۔ --- ## 1. CLI Code کا کیٹلاگ (26 ٹولز) وہ تمام ٹولز جو `/dashboard/cli-code` میں ظاہر ہوتے ہیں۔ جن ٹولز میں `baseUrlSupport: none` ہے، وہ حسبِ ضرورت Base URL کے بجائے MITM یا دستی رہنما کے ذریعے منسلک کیے گئے ہیں: | id | نام | فراہم کنندہ | baseUrlSupport | configType | acpSpawnable | | ------------ | ----------------------- | ---------------------- | -------------- | -------------- | ------------ | | claude | Claude Code | Anthropic | full | env | true | | codex | OpenAI Codex CLI | OpenAI | full | custom | true | | zcode | ZCode (GLM Coding Plan) | Z.ai | none | custom | false | | cline | Cline | OSS (سابقہ Claude Dev) | full | custom | true | | kilo | Kilo Code | Kilo-Org | full | custom | false | | roo | Roo Code | Roo (OSS) | full | guide | false | | continue | Continue | continue.dev | full | guide | false | | aider | Aider | OSS (P. Gauthier) | full | guide | true | | forge | ForgeCode | Antinomy HQ | full | custom | true | | jcode | jcode | 1jehuang (OSS) | full | custom | false | | deepseek-tui | DeepSeek TUI | Hunter Bown (OSS) | full | custom | false | | codewhale | CodeWhale | Hmbown (OSS) | full | custom | false | | opencode | OpenCode | Anomaly (سابقہ SST) | full | guide | true | | droid | Factory Droid | Factory AI | partial | guide | false | | copilot | GitHub Copilot CLI | GitHub/MS | full | custom | false | | cursor-cli | Cursor CLI | Anysphere | partial | guide | true | | smelt | Smelt | leonardcser (OSS) | full | custom | false | | pi | Pi (pi-coding-agent) | M. Zechner (OSS) | full | custom | false | | grok-build | Grok Build | xAI | full | custom | false | | crush | Crush | OSS (Charm) | full | custom | false | | qwen | Qwen Code | Alibaba | full | guide | true | | cursor | Cursor | Anysphere | none | guide | false | | antigravity | Antigravity | Google | none | mitm | false | | hermes | Hermes | Nous Research | none | guide | false | | kiro | Kiro AI | Amazon | none | mitm | false | | custom | Custom CLI | — | full | custom-builder | false | `baseUrlSupport: "partial"` والے ٹولز کے ڈیش بورڈ کارڈ پر "⚠ جزوی Base URL" بیج دکھائی دیتا ہے۔ --- ## 2. CLI ایجنٹس کی فہرست (10 ٹولز) خودمختار ایجنٹس جو `/dashboard/cli-agents` میں نظر آتے ہیں: | id | نام | وینڈر | baseUrlSupport | acpSpawnable | | ------------ | ---------------- | ------------------------ | -------------- | ------------ | | hermes-agent | Hermes Agent | Nous Research | مکمل | false | | openclaw | OpenClaw | OSS (P. Steinberger) | مکمل | true | | goose | Goose | Block / Linux Foundation | مکمل | true | | interpreter | Open Interpreter | OSS | مکمل | true | | warp | Warp AI | Warp Inc. | جزوی | true | | agent-deck | Agent Deck | asheshgoplani (OSS) | مکمل | false | | omp | Oh My Pi | OSS | مکمل | true | | letta | Letta CLI | Letta | مکمل | false | | prime-agent | Prime Agent | Prime Intellect (OSS) | مکمل | false | | 5dive | 5dive | OSS (5dive-ai) | مکمل | false | --- ## 3. ACP ایجنٹس (/dashboard/acp-agents) یہ صفحہ (جس کا نام `/dashboard/agents` سے تبدیل کیا گیا ہے) وہ CLIs دکھاتا ہے جنہیں OmniRoute، stdio/ACP پروٹوکول کے ذریعے بیک اینڈ ایگزیکیوشن انجنز کے طور پر **spawn** کر سکتا ہے۔ اس فہرست کو `src/lib/acp/registry.ts` میں الگ سے برقرار رکھا جاتا ہے اور یہ `CLI_TOOLS` جیسی **نہیں** ہے۔ --- ## 4. MITM بیک لاگ (ڈیش بورڈ میں نہیں دکھایا گیا) درج ذیل CLIs مقامی طور پر حسبِ ضرورت base URL کی معاونت نہیں کرتے اور CLI Code یا CLI Agents کے صفحات میں **درج نہیں ہیں**۔ یہ پلان 11 میں MITM انٹرسیپشن کے امیدوار ہیں: | CLI | وجہ | | ------------------- | ------------------------------------------------------------ | | windsurf | BYOK صرف منتخب Claude ماڈلز + کارپوریٹ URL/token تک محدود ہے | | amp | بند ایکوسسٹم (Sourcegraph) | | amazon-q / kiro-cli | AWS SSO تصدیق، حسبِ ضرورت URL دستیاب نہیں | | cowork | Anthropic Desktop، قابلِ ترتیب endpoint دستیاب نہیں | مکمل کراس ریفرنس کے لیے `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md` دیکھیں۔ --- ## 5. بیچ ڈیٹیکشن API تمام ٹول ڈیٹیکشن کو ایک ہی endpoint کے ذریعے یکجا کیا جاتا ہے: **`GET /api/cli-tools/all-statuses`** - تصدیق: `requireCliToolsAuth(request)` (دیگر `/api/cli-tools/` روٹس جیسی) - واپس کرتا ہے: `Record` (قسم: `src/shared/types/cliBatchStatus.ts`) - حکمتِ عملی: تمام ٹولز پر `Promise.all`، فی ٹول 5s ٹائم آؤٹ - کیش: اِن میموری LRU، جسے کنفیگ فائل کے `mtime` سے انڈیکس کیا جاتا ہے۔ `mtime` تبدیل ہونے پر کیش منسوخ ہو جاتا ہے۔ سرور دوبارہ شروع ہونے پر ری سیٹ ہو جاتا ہے۔ فی ٹول رسپانس کی ساخت: ```ts interface ToolBatchStatus { detection: { installed: boolean; runnable: boolean; version?: string; command?: string; commandPath?: string; reason?: string; }; config: { status: "configured" | "not_configured" | "not_installed" | "unknown" | "other"; endpoint?: string | null; lastConfiguredAt?: string | null; }; error?: string; // صاف کیا گیا، کوئی stack traces نہیں } ``` --- ## 6. نئے ٹولز کے لیے سیٹنگز ہینڈلرز `configType: "custom"` والے نئے ٹولز کے لیے مخصوص سیٹنگز API روٹس موجود ہیں: | روٹ | ٹول | | ------------------------------------------- | ---------------------------------------------------------------------- | | `POST /api/cli-tools/forge-settings` | ForgeCode (.forge.toml) | | `POST /api/cli-tools/jcode-settings` | jcode (--base-url فلیگ) | | `POST /api/cli-tools/deepseek-tui-settings` | DeepSeek TUI (OPENAI_BASE_URL، لیگیسی) | | `POST /api/cli-tools/codewhale-settings` | CodeWhale (OPENAI_BASE_URL، بنیادی + لیگیسی `~/.deepseek` ہم وقت سازی) | | `POST /api/cli-tools/smelt-settings` | Smelt | | `POST /api/cli-tools/pi-settings` | Pi کوڈنگ ایجنٹ | | `POST /api/cli-tools/grok-build-settings` | Grok Build (~/.grok/config.toml، `[model.omniroute]`) | | `POST /api/cli-tools/qwen-settings` | Qwen Code (`~/.qwen/settings.json` + مخصوص `.env` کلید) | تمام روٹس خرابی کے جوابات کے لیے `sanitizeErrorMessage()` استعمال کرتے ہیں (سخت اصول #12)۔ --- ## 7. ڈیش بورڈ صفحات کا آرکیٹیکچر ### CLI Code کے (`/dashboard/cli-code`) - `src/app/(dashboard)/dashboard/cli-code/page.tsx` — سرور کمپونینٹ - `src/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx` — کلائنٹ گرڈ - `src/app/(dashboard)/dashboard/cli-code/[id]/page.tsx` — ٹول کی تفصیلات کا صفحہ - `src/app/(dashboard)/dashboard/cli-code/components/` — 12 مخصوص ٹول کارڈز + `ToolDetailClient.tsx` ### CLI ایجنٹس (`/dashboard/cli-agents`) - `src/app/(dashboard)/dashboard/cli-agents/page.tsx` — سرور کمپونینٹ - `src/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx` — کلائنٹ گرڈ - `src/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx` — `ToolDetailClient` کو دوبارہ استعمال کرتا ہے ### ACP ایجنٹس (`/dashboard/acp-agents`) - `src/app/(dashboard)/dashboard/acp-agents/page.tsx` — سرور کمپونینٹ (`agents/` سے منتقل کیا گیا) ### مشترکہ UI کمپونینٹس (`src/shared/components/cli/`) | فائل | مقصد | | ----------------------- | ---------------------------------------------------- | | `CliToolCard.tsx` | اسمارٹ اسٹیٹس کارڈ (شناخت + کنفیگریشن + اینڈ پوائنٹ) | | `CliConceptCard.tsx` | ہر صفحے کے تصور کی وضاحت کا کارڈ | | `CliComparisonCard.tsx` | CLI اقسام میں تین کالمی موازنہ | | `BaseUrlSelect.tsx` | اینڈ پوائنٹ ڈراپ ڈاؤن (مقامی/کلاؤڈ/حسبِ ضرورت) | | `ApiKeySelect.tsx` | API کلید سلیکٹر | | `ManualConfigModal.tsx` | قابلِ نقل کنفیگ اسنیپٹ موڈل | ### مشترکہ ہُک (`src/shared/hooks/cli/`) | فائل | مقصد | | ------------------------- | --------------------------------------------------------------------------------- | | `useToolBatchStatuses.ts` | `/api/cli-tools/all-statuses` سے ڈیٹا حاصل کرتا ہے، لوڈنگ/ریفریش حالت سنبھالتا ہے | --- ## 8. i18n پلان 14 F9 میں شامل کیے گئے نئے namespaces: | Namespace | مقصد | | ----------- | --------------------------------------------------------------------- | | `cliCommon` | مشترکہ اسٹرنگز (کارڈ لیبلز، تصور/موازنے کے متن، تفصیلی صفحے کے لیبلز) | | `cliCode` | CLI Code کے صفحے کی اسٹرنگز | | `cliAgents` | CLI Agents کے صفحے کی اسٹرنگز | | `acpAgents` | ACP Agents کے صفحے کی اسٹرنگز | مکمل PT-BR اور EN تراجم فراہم کیے گئے ہیں۔ دیگر 39 locales، `src/i18n/request.ts` میں namespace کی سطح پر merge کے ذریعے خودکار طور پر EN پر fallback کرتے ہیں۔ --- ## 9. فوری آغاز ### مرحلہ 1 — OmniRoute API کلید حاصل کریں 1. `/dashboard/api-manager` کھولیں → **API کلید بنائیں** 2. اسے ایک نام دیں (مثلاً `cli-tools`) اور تمام اجازتیں منتخب کریں 3. کلید کاپی کریں — ذیل میں موجود ہر CLI کے لیے آپ کو اس کی ضرورت ہوگی > آپ کی کلید اس طرح نظر آتی ہے: `sk-xxxxxxxxxxxxxxxx-xxxxxxxxx` --- ### مرحلہ 2 — CLI ٹولز انسٹال کریں npm پر مبنی تمام ٹولز کے لیے Node.js 22.22.2+ یا 24.x درکار ہے: ```bash # Claude Code (Anthropic) npm install -g @anthropic-ai/claude-code # OpenAI Codex npm install -g @openai/codex # OpenCode npm install -g opencode-ai # Cline npm install -g cline # KiloCode npm install -g kilocode # Qwen Code npm install -g @qwen-code/qwen-code # Google Gemini CLI (`omniroute run gemini` کے ذریعے چلایا جا سکتا ہے → /v1beta سطح) npm install -g @google/gemini-cli # Aider pip install aider-chat # Smelt cargo install smelt # Rust پر مبنی # Pi coding agent # انسٹالیشن کے لیے https://github.com/zechnerj/pi-coding-agent دیکھیں # jcode # انسٹالیشن کے لیے https://github.com/1jehuang/jcode دیکھیں ``` --- ### مرحلہ 3 — ڈیش بورڈ کے ذریعے کنفیگر کریں 1. `http://localhost:20128/dashboard/cli-code` پر جائیں 2. گرڈ میں اپنا ٹول تلاش کریں 3. ٹول کا تفصیلی صفحہ کھولنے کے لیے کارڈ پر کلک کریں 4. اپنی API کلید اور base URL منتخب کریں 5. **کنفیگ لاگو کریں** پر کلک کریں یا دستی کنفیگ snippet کاپی کریں --- ### مرحلہ 4 — گلوبل ماحولیاتی متغیرات سیٹ کریں ```bash # OmniRoute یونیورسل اینڈ پوائنٹ export OPENAI_BASE_URL="http://localhost:20128/v1" export OPENAI_API_KEY="sk-your-omniroute-key" export ANTHROPIC_BASE_URL="http://localhost:20128" export ANTHROPIC_AUTH_TOKEN="sk-your-omniroute-key" # Gemini CLI، GOOGLE_GEMINI_BASE_URL کو ROOT پر پڑھتا ہے (اس کا SDK خود /v1beta/... شامل کرتا ہے) export GOOGLE_GEMINI_BASE_URL="http://localhost:20128" export GEMINI_API_KEY="sk-your-omniroute-key" ``` > **ریموٹ سرور** کے لیے `localhost:20128` کو سرور کے IP یا domain سے تبدیل کریں، > مثلاً `http://:20128`۔ --- ### مرحلہ 4 — ہر ٹول کو کنفیگر کریں #### Claude Code ```bash # ~/.claude/settings.json بنائیں: mkdir -p ~/.claude && cat > ~/.claude/settings.json << EOF { "env": { "ANTHROPIC_BASE_URL": "http://localhost:20128", "ANTHROPIC_AUTH_TOKEN": "sk-your-omniroute-key" } } EOF ``` Claude Code کے لیے متحد Anthropic gateway root استعمال کریں۔ یہاں `/v1` شامل نہ کریں۔ **ٹیسٹ:** `claude "say hello"` --- #### OpenAI Codex جدید Codex (v0.137+) صرف `~/.codex/config.toml` پڑھتا ہے — پرانی `config.yaml` میراثی npm CLI سے تعلق رکھتی ہے اور اسے خاموشی سے نظر انداز کر دیا جاتا ہے۔ API کلید `OMNIROUTE_API_KEY` ماحولیاتی متغیر (`env_key`) میں رہتی ہے، کبھی بھی فائل کے اندر نہیں: ```bash mkdir -p ~/.codex && cat > ~/.codex/config.toml << EOF model_provider = "omniroute" [model_providers.omniroute] name = "OmniRoute" base_url = "http://localhost:20128/v1" env_key = "OMNIROUTE_API_KEY" requires_openai_auth = false EOF export OMNIROUTE_API_KEY="sk-your-omniroute-key" ``` مکمل حوالہ (profiles، `wire_api`، context windows): [CODEX-CLI-CONFIGURATION.md](../guides/CODEX-CLI-CONFIGURATION.md)۔ **ٹیسٹ:** `codex "what is 2+2?"` --- #### OpenCode ```bash mkdir -p ~/.config/opencode && cat > ~/.config/opencode/opencode.json << EOF { "\$schema": "https://opencode.ai/config.json", "provider": { "omniroute": { "npm": "@ai-sdk/openai-compatible", "name": "OmniRoute", "options": { "baseURL": "http://localhost:20128/v1", "apiKey": "sk-your-omniroute-key" }, "models": { "claude-sonnet-4-5": { "name": "claude-sonnet-4-5" }, "claude-sonnet-4-5-thinking": { "name": "claude-sonnet-4-5-thinking" }, "gemini-3-flash": { "name": "gemini-3-flash" } } } } } EOF ``` **ٹیسٹ:** `opencode` > thinking variants بھیجنے کے لیے > `opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant high` > استعمال کریں۔ --- #### Cline (CLI یا VS Code) **CLI موڈ:** ```bash mkdir -p ~/.cline/data && cat > ~/.cline/data/globalState.json << EOF { "apiProvider": "openai", "openAiBaseUrl": "http://localhost:20128/v1", "openAiApiKey": "sk-your-omniroute-key" } EOF ``` **VS Code موڈ:** Cline extension کی ترتیبات → API Provider: `OpenAI Compatible` → Base URL: `http://localhost:20128/v1` یا OmniRoute ڈیش بورڈ استعمال کریں → **CLI ٹولز → Cline → کنفیگ لاگو کریں**۔ --- #### KiloCode (CLI یا VS Code) **CLI موڈ:** ```bash kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key ``` **VS Code کی ترتیبات:** ```json { "kilo-code.openAiBaseUrl": "http://localhost:20128/v1", "kilo-code.apiKey": "sk-your-omniroute-key" } ``` یا OmniRoute ڈیش بورڈ استعمال کریں → **CLI ٹولز → KiloCode → کنفیگ لاگو کریں**۔ --- #### Continue (VS Code Extension) `~/.continue/config.yaml` میں ترمیم کریں: ```yaml models: - name: OmniRoute provider: openai model: auto apiBase: http://localhost:20128/v1 apiKey: sk-your-omniroute-key default: true ``` ترمیم کے بعد VS Code دوبارہ شروع کریں۔ --- #### VS Code Insiders (`chatLanguageModels.json`) اسے اس وقت استعمال کریں جب VS Code Insiders کو custom endpoint models کے لیے کنفیگر کیا گیا ہو اور آپ چاہتے ہوں کہ OmniRoute کسی custom header field کے بغیر کام کرے۔ **تجویز کردہ مقام:** - Linux: `~/.config/Code - Insiders/User/chatLanguageModels.json` - Windows: `%APPDATA%/Code - Insiders/User/chatLanguageModels.json` **ٹوکنائزڈ OmniRoute عرف استعمال کرنے کی مثال:** ```json [ { "vendor": "customendpoint", "id": "auto", "name": "OmniRoute Auto", "family": "gpt-4", "version": "1.0.0", "url": "http://localhost:20128/api/v1/vscode/sk-your-omniroute-key/chat/completions", "modelsUrl": "http://localhost:20128/api/v1/vscode/sk-your-omniroute-key/models", "requestFormat": "openai-chat-completions", "contextWindow": 256000, "maxOutputTokens": 32768, "auth": { "type": "none" } } ] ``` **نوٹس:** - `sk-your-omniroute-key` کو OmniRoute میں بنائی گئی API کلید سے تبدیل کریں۔ - `url` فیلڈ کو `/api/v1/vscode/{token}/chat/completions` کی طرف اشارہ کرنا چاہیے۔ - `modelsUrl` فیلڈ کو `/api/v1/vscode/{token}/models` کی طرف اشارہ کرنا چاہیے۔ - جب کلائنٹ حسبِ ضرورت ہیڈرز کو سپورٹ کرتا ہو تو معمول کے `/v1` + Bearer ہیڈر طریقۂ کار کو ترجیح دیں۔ - URL میں شامل ٹوکنز مطابقت کے لیے ایک متبادل طریقہ ہیں اور ایڈیٹر لاگز یا پراکسی ہسٹری میں ظاہر ہو سکتے ہیں۔ --- #### Kiro CLI (Amazon) ```bash # اپنے AWS/Kiro اکاؤنٹ میں لاگ اِن کریں: kiro-cli login # CLI اپنی توثیق استعمال کرتا ہے — خود Kiro CLI کے بیک اینڈ کے طور پر OmniRoute کی ضرورت نہیں ہے۔ # دیگر ٹولز کے لیے OmniRoute کے ساتھ kiro-cli استعمال کریں۔ kiro-cli status ``` **Kiro IDE** ڈیسک ٹاپ ایپ کے لیے، OmniRoute کی جانب سے فراہم کردہ MITM اینڈ پوائنٹ استعمال کریں جو `/dashboard/cli-tools → Kiro` کے تحت موجود ہے۔ --- ## 10. داخلی OmniRoute CLI `omniroute` بائنری سرور لائف سائیکل، سیٹ اپ، تشخیص، اور پرووائیڈر مینجمنٹ کے لیے کمانڈز فراہم کرتی ہے۔ انٹری پوائنٹ: `bin/omniroute.mjs`۔ ```bash omniroute # سرور شروع کریں (ڈیفالٹ پورٹ 20128) omniroute setup # انٹرایکٹو سیٹ اپ وزرڈ omniroute doctor # کنفیگ، DB، پورٹس، رن ٹائم چیک کریں omniroute providers list # کنفیگر شدہ پرووائیڈر کنکشنز omniroute providers test-all # ہر فعال کنکشن کی جانچ کریں omniroute reset-password # ایڈمن پاس ورڈ ری سیٹ کریں omniroute logs # ریکویسٹ لاگز اسٹریم کریں omniroute health # تفصیلی صحت کی حالت (بریکرز، کیش، میموری) omniroute --version # ورژن پرنٹ کریں omniroute --help # تمام کمانڈز دکھائیں ``` ### سیٹ اپ اور ابتدا ```bash omniroute setup # انٹرایکٹو سیٹ اپ وزرڈ omniroute setup --non-interactive # CI/آٹومیشن موڈ (env متغیرات + فلیگز پڑھتا ہے) omniroute setup --password '' # ایڈمن پاس ورڈ براہِ راست سیٹ کریں omniroute setup --add-provider \ --provider openai \ --api-key '' \ --test-provider # ایک ہی مرحلے میں پرووائیڈر شامل کریں اور جانچیں ``` نان انٹرایکٹو سیٹ اپ کے لیے شناخت شدہ انوائرمنٹ ویری ایبلز: | متغیر | مقصد | | ------------------- | --------------------------------------------------------------------- | | `OMNIROUTE_API_KEY` | پرووائیڈر API کلید (`--api-key` سے Commander `.env()` کے ذریعے منسلک) | | `DATA_DIR` | OmniRoute ڈیٹا ڈائریکٹری کو اوور رائیڈ کریں | دیگر تمام نان انٹرایکٹو ان پٹس انوائرمنٹ ویری ایبلز کے بجائے فلیگز کے طور پر پاس کیے جاتے ہیں: `--password`، `--provider`، `--provider-name`، `--provider-base-url`، `--default-model` (اوپر دیے گئے `omniroute setup` آپشنز دیکھیں)۔ ### تشخیص ```bash omniroute doctor # کنفیگ، DB، پورٹس، رن ٹائم، میموری، لائیونیس چیک کریں omniroute doctor --json # مشین کے قابلِ مطالعہ JSON omniroute doctor --no-liveness # HTTP ہیلتھ پروب چھوڑ دیں omniroute doctor --host 0.0.0.0 # لائیونیس ہوسٹ اوور رائیڈ کریں omniroute doctor --liveness-url # مکمل ہیلتھ اینڈ پوائنٹ URL اوور رائیڈ ``` ڈاکٹر یہ جانچیں چلاتا ہے: `Config`، `Database`، `Storage/encryption`، `Port availability`، `Node runtime`، `Native binary` (better-sqlite3)، `Memory`، اور `Server liveness`۔ اگر کوئی بھی جانچ `fail` ہو تو یہ نان زیرو کوڈ کے ساتھ بند ہوتا ہے۔ ### پرووائیڈر مینجمنٹ ```bash omniroute providers available # OmniRoute پرووائیڈر کیٹلاگ omniroute providers available --search openai # کیٹلاگ کو id/name/alias/category کے لحاظ سے فلٹر کریں omniroute providers available --category api-key # زمرے کے لحاظ سے فلٹر کریں (api-key, oauth, free, ...) omniroute providers available --json # مشین کے قابلِ مطالعہ JSON omniroute providers list # کنفیگر شدہ پرووائیڈر کنکشنز omniroute providers list --json omniroute providers test # ایک کنفیگر شدہ کنکشن کی جانچ کریں omniroute providers test-all # ہر فعال کنکشن کی جانچ کریں omniroute providers validate # صرف مقامی ساختی توثیق omniroute providers add --credential-env PROVIDER_KEY omniroute providers import ./providers.json --dry-run --json omniroute providers auth # موجودہ OAuth فلو omniroute providers edit --default-model omniroute providers remove --yes ``` `providers add/import/auth/edit/remove` بنیادی طور پر API استعمال کرتے ہیں، اس لیے یہ فعال مقامی یا ریموٹ کانٹیکسٹ کے خلاف کام کرتے ہیں۔ اسناد کے ان پٹ کے لیے `--credential-stdin` یا `--credential-env` استعمال کرنا چاہیے؛ `--dry-run --json` صرف ترمیم شدہ موجودگی/ساخت رپورٹ کرتا ہے۔ `providers available` OmniRoute کیٹلاگ پڑھتا ہے؛ `providers list/test/test-all/validate` اپنا مقامی SQLite رویہ برقرار رکھتے ہیں اور ان کے لیے سرور کا چلنا ضروری نہیں ہے۔ کسی حسبِ ضرورت OpenAI-مطابقت پذیر یا Anthropic-مطابقت پذیر نوڈ کے لیے، اسناد کو `omniroute nodes add` کے ذریعے واپس کردہ نوڈ ID کے ساتھ `omniroute keys add "$NODE_ID" --stdin` استعمال کرتے ہوئے منسلک کریں۔ اس کے لیے فعال کانٹیکسٹ میں چلتا ہوا سرور اور مینجمنٹ کی توثیق درکار ہے۔ CLI، `POST /api/providers` استعمال کرتا ہے، جو نوڈ کی توثیق کرتا ہے اور اس کی اینڈ پوائنٹ سیٹنگز کو کنکشن میں کاپی کرتا ہے۔ گم شدہ نوڈ، اجازت کی ناکامی، یا غیر دستیاب سرور کسی مقامی فال بیک سند کو بنائے بغیر خرابی لوٹاتا ہے۔ `nodes add --base-url` نوڈ اینڈ پوائنٹ سیٹ کرتا ہے؛ یہ `OMNIROUTE_BASE_URL` میں موجود سرور ایڈریس سے مختلف ہے۔ OpenAPI فائلوں کے لیے، `omniroute openapi dump --format json --out ./openapi.json` استعمال کریں؛ عالمی `--output` منزل کی فائل کا نام نہیں بلکہ CLI ڈسپلے فارمیٹنگ منتخب کرتا ہے۔ ### بحالی اور ری سیٹ ```bash omniroute reset-password # ایڈمن پاس ورڈ ری سیٹ کریں (یہ بھی: omniroute-reset-password) omniroute reset-encrypted-columns # انکرپٹڈ اسناد ری سیٹ کے لیے انتباہ + ڈرائی رن دکھائیں omniroute reset-encrypted-columns --force # SQLite میں انکرپٹڈ اسناد کو حقیقتاً null کر دیں ``` ### اسناد کی ایکسپورٹ (⚠ احتیاط سے سنبھالیں) ```bash omniroute auth export # انتباہ + تصدیقی مرحلہ دکھائیں — DB تک کوئی رسائی نہیں omniroute auth export --force # تمام کنکشنز کی DECRYPTED اسناد stdout پر JSON کی صورت میں ایکسپورٹ کریں omniroute auth export --force --id # صرف مماثل کنکشن ایکسپورٹ کریں omniroute auth export --force --format env # OMNIROUTE__= لائنیں خارج کریں omniroute auth export --force --out creds.json # فائل میں لکھیں (0600 اجازتوں کے ساتھ بنائی گئی) ``` `auth export` **صرف مقامی** ہے (براہِ راست SQLite سے پڑھتا ہے، کوئی HTTP route نہیں) اور جان بوجھ کر **سادہ متن** میں `apiKey`/`accessToken`/`refreshToken`/`idToken` کی اقدار پرنٹ/تحریر کرتا ہے — یہ ایک خصوصیت ہے، bug نہیں۔ `--force` کے بغیر database سے کچھ بھی نہیں پڑھا جاتا اور نہ ہی کسی چیز کو decrypt کیا جاتا ہے۔ کوئی بھی سادہ متن خارج ہونے سے پہلے stderr پر انتباہی banner ہمیشہ پرنٹ ہوتا ہے۔ اس کے لیے `STORAGE_ENCRYPTION_KEY` کا مقرر ہونا ضروری ہے۔ جس field کو decrypt کرنے میں ناکامی ہو (پرانی key، خراب ciphertext)، اسے مکمل export منسوخ کرنے یا بنیادی error افشا کرنے کے بجائے `DecryptFailed: true` کے طور پر رپورٹ کیا جاتا ہے۔ ### دیگر subcommands درج ذیل، جب تک دوسری صورت میں ذکر نہ کیا گیا ہو، چلتا ہوا OmniRoute server فرض کرتے ہیں: ```bash omniroute status # runtime کی جامع حالت omniroute logs # request logs کو stream کریں (--json، --search، --follow) omniroute config list # ترتیب دیے گئے CLI tools دکھائیں omniroute provider list # دستیاب providers کی فہرست دکھائیں (providers list کا alias) omniroute provider add # کسی tool پر OmniRoute کو provider کے طور پر register کریں omniroute keys add | list | remove # API keys کا نظم کریں omniroute models [provider] # models کی فہرست دکھائیں (--json، --search) omniroute combo list | switch | create | delete omniroute backup # config + DB کا snapshot بنائیں omniroute restore # پچھلے snapshot سے بحال کریں omniroute health # صحت کی تفصیلی حالت (breakers، cache، memory) omniroute quota # provider quota کا استعمال omniroute cache # cache کی حالت omniroute cache clear # semantic + signature caches صاف کریں omniroute mcp status | restart # MCP server کی حالت / دوبارہ شروع کرنا omniroute a2a status | card # A2A server کی حالت / agent card omniroute tunnel list | create | stop # tunnels کا نظم کریں (cloudflare/tailscale/ngrok) omniroute env show | get | set # env vars کا معائنہ / تعین کریں (عارضی) omniroute test # provider connectivity کا smoke test omniroute update # updates کی جانچ کریں omniroute completion # shell completion تیار کریں ``` ### عام flags | Flag | تفصیل | | ------------------- | -------------------------------------------------------------- | | `--no-open` | آغاز پر browser خودکار طور پر نہ کھولیں | | `--port ` | API port کو override کریں (default 20128) | | `--mcp` | stdio پر MCP server کے طور پر چلائیں (IDEs کے لیے) | | `--non-interactive` | CI mode (کوئی prompts نہیں؛ env/flags سے پڑھتا ہے) | | `--json` | مشین کے لیے قابلِ مطالعہ JSON output (doctor، providers وغیرہ) | | `--help`, `-h` | command سے مخصوص مدد دکھائیں | | `--version`, `-v` | نصب شدہ version پرنٹ کریں | --- ## دستیاب API اینڈ پوائنٹس | اینڈ پوائنٹ | وضاحت | استعمال | | -------------------------- | ------------------------------- | -------------------------------------- | | `/v1/chat/completions` | معیاری چیٹ (تمام فراہم کنندگان) | تمام جدید ٹولز | | `/v1/responses` | Responses API (OpenAI فارمیٹ) | Codex، ایجنٹک ورک فلوز | | `/v1/completions` | پرانی طرز کی متنی تکمیلات | `prompt:` استعمال کرنے والے پرانے ٹولز | | `/v1/embeddings` | متنی ایمبیڈنگز | RAG، تلاش | | `/v1/images/generations` | تصویر بنانا | GPT-Image، Flux وغیرہ | | `/v1/audio/speech` | متن سے آواز | ElevenLabs، OpenAI TTS | | `/v1/audio/transcriptions` | آواز سے متن | Deepgram، AssemblyAI | ٹوکنائزڈ OmniRoute URL کے ساتھ براہِ راست پیسٹ کرنے کے لیے تیار مثالیں: ```txt ٹوکن کی مثال: sk-a3ab3c080beaee3a-69f4a4-070d71af معیاری OpenAI بنیاد: http://localhost:20128/v1 VS Code ماڈلز: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/models VS Code چیٹ: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completions VS Code جوابات: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responses Ollama ٹیگز: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tags Ollama چیٹ: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chat ``` --- ## خرابیوں کا ازالہ | خرابی | وجہ | حل | | ----------------------------------------------------------- | -------------------------- | ----------------------------------------------------------------- | | `Connection refused` | OmniRoute نہیں چل رہا | `omniroute serve` | | `401 Unauthorized` | غلط API کلید | `/dashboard/api-manager` میں چیک کریں | | `No combo configured` | کوئی فعال روٹنگ کومبو نہیں | `/dashboard/combos` میں ترتیب دیں | | CLI میں "not installed" دکھائی دیتا ہے | بائنری PATH میں نہیں | `which ` چیک کریں | | انسٹالیشن کے بعد ڈیش بورڈ میں "not detected" دکھائی دیتا ہے | کیش پرانا ہے | ڈیش بورڈ میں "⟳ Refresh detection" پر کلک کریں | | پرانا لنک `/dashboard/cli-tools` | v3.8.6 سے پہلے کا بُک مارک | خودکار طور پر `/dashboard/cli-code` پر ری ڈائریکٹ ہوتا ہے (308) | | پرانا لنک `/dashboard/agents` | v3.8.6 سے پہلے کا بُک مارک | خودکار طور پر `/dashboard/acp-agents` پر ری ڈائریکٹ ہوتا ہے (308) | ## OmniRoute CLI کے ذریعے inference-key پالیسی کا نظم کریں ایک توثیق شدہ انتظامی سیاق استعمال کریں ([ریموٹ موڈ](../guides/REMOTE-MODE.md) دیکھیں) تاکہ موجودہ inference key کو اس کی ID کے ذریعے دیکھا یا اپ ڈیٹ کیا جا سکے: ```bash omniroute --output json keys policy show KEY_ID omniroute keys policy set KEY_ID --unrestricted omniroute --output json keys policy show KEY_ID ``` `--unrestricted`، `--model-access-mode all` کا ایک عرف ہے۔ اپ ڈیٹ ماڈل کی اجازت فہرست صاف کر دیتا ہے۔ یہ scopes، کنکشن کے قواعد، بلاک شدہ ماڈلز، شرح کی حدود اور لاگت کی حدود کو برقرار رکھتا ہے، اس لیے یہ دیگر کنٹرولز اب بھی کسی درخواست کو مسترد کر سکتے ہیں۔ واضح طور پر `--allowed-models ""` بھی `all` منتخب کرتا ہے؛ کسی محدود کلید کو، جس کے لیے کوئی ماڈل مجاز نہ ہو، برقرار رکھنے کے لیے اسے `--model-access-mode restricted` کے ساتھ استعمال کریں۔ کوما سے جدا کردہ غیر خالی فہرست `restricted` منتخب کرتی ہے، الا یہ کہ واضح طور پر کچھ اور متعین کیا گیا ہو۔ `all` اور غیر خالی اجازت فہرست کا متضاد امتزاج درخواست بھیجنے سے پہلے مسترد کر دیا جاتا ہے۔ `--rate-limit 30` فی منٹ درخواستوں کی حد مقرر کرتا ہے اور دیگر وقت کی ونڈوز کے قواعد برقرار رکھتا ہے۔ `--max-cost 5` ہفتہ وار حد تبدیل کیے بغیر روزانہ کی USD حد فعال کرتا ہے؛ `--max-cost 0` روزانہ کی حد ہٹا دیتا ہے اور موجودہ استعمال کی حد کے ٹوگل اور ہفتہ وار حد کو برقرار رکھتا ہے۔ حذف کیے گئے پالیسی فیلڈز بغیر تبدیلی کے رہتے ہیں۔ شرح میں تبدیلیاں پہلے موجودہ پالیسی پڑھتی ہیں؛ ایک ہی کلید کی rate-limit array میں بیک وقت ترامیم سے گریز کریں۔ پالیسی کمانڈز توثیق شدہ `GET`/`PATCH /api/keys/{id}` استعمال کرتی ہیں اور فعال سیاق اور عالمی `--api-key` آپشن کی پابندی کرتی ہیں۔ JSON آؤٹ پٹ میں صرف پالیسی فیلڈز ہوتے ہیں، محفوظ شدہ کلید یا اس کی نقاب پوش نمائندگی شامل نہیں ہوتی۔ صرف inference کے لیے مخصوص اسناد انتظامی تبدیلیوں کی اجازت نہیں دے سکتیں۔ 401/403 کی صورت میں انتظامی اسناد اور سیاق کو چیک کرنا ضروری ہے؛ یہ مقامی CLI-token یا salt کی ناکامی ثابت نہیں کرتا۔ علیحدہ مقامی توثیقی معاہدے کے لیے [CLI ٹوکن](../security/CLI_TOKEN.md) دیکھیں۔