# 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) · 🇭🇷 [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) · 🇵🇰 [ur](../../../ur/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` | वे CLI जिन्हें 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 कुंजी - डैशबोर्ड में सभी CLI की लागत ट्रैकिंग - प्रत्येक टूल को दोबारा कॉन्फ़िगर किए बिना मॉडल बदलना - स्थानीय और रिमोट सर्वर दोनों पर काम करता है (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` के अंतर्गत नहीं लिखती: यह फ़्लीट होस्ट पर रूट के स्वामित्व वाली ऑथ प्रोफ़ाइल लिखकर 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` करें, या कॉन्फ़िगरेशन डायरेक्टरियों को बाइंड-माउंट करें और `CLI_CONFIG_HOME` (compose `host` प्रोफ़ाइल) सेट करें। प्रत्येक `setup-*` कमांड, साथ ही `omniroute configure` और `omniroute config set`, `--allow-container-write` स्वीकार करता है, जब आपका वास्तविक आशय कंटेनर के अपने CLI को कॉन्फ़िगर करना हो; `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true` सर्वर के लिए वही कार्य करता है। देखें: [Docker गाइड → होस्ट CLI टूल्स को कॉन्फ़िगर करना](../guides/DOCKER_GUIDE.md#configuring-host-cli-tools-when-omniroute-runs-in-docker)। डैशबोर्ड का **apply endpoint** (`POST /api/cli-tools/apply`) उसी सुरक्षा प्रतिबंध को लागू करता है: किसी कंटेनर में, ऐसा लेखन जिसका लक्ष्य होस्ट से बाइंड-माउंट नहीं है, **`422`** के साथ `containerEphemeralTarget: true`, सुरक्षित त्रुटि पाठ और — होस्ट रेसिपी वाले टूल्स (claude, codex, opencode, cline, kilo, continue) के लिए — होस्ट पर चलाने हेतु एक `hostSetupCommand` (उदाहरण के लिए `omniroute setup-opencode`) देता है; कुछ भी नहीं लिखा जाता। `dryRun: true` कंटेनर मोड में काम करता रहता है और डिस्क को छुए बिना संशोधित पूर्वावलोकन + लक्ष्य पथ लौटाता है। पूर्वावलोकन सामग्री कॉपी या आयात करने योग्य क्रेडेंशियल-युक्त कॉन्फ़िगरेशन नहीं है। मूल टूल/बेस URL/API कुंजी/मॉडल इनपुट के साथ होस्ट पर लागू करें, या बताए गए होस्ट-साइड सेटअप कमांड का उपयोग करें। पूर्वावलोकन हेडर और अनुरोध अनुबंध के लिए [CLI कॉन्फ़िगरेशन सुरक्षा](../security/CLI-CONFIGURATION.md) देखें। यह व्यवहार जानबूझकर रखा गया है और `tests/unit/api/cli-tools/apply-container-guard.test.ts` द्वारा रिग्रेशन से सुरक्षित है — सुरक्षा प्रतिबंध हटाकर कभी भी 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 ` द्वारा समर्थित (env/args इंजेक्शन परिभाषित है) | `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` है, वे कस्टम बेस URL के बजाय MITM या मैन्युअल गाइड के माध्यम से जोड़े गए हैं: | id | name | vendor | 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 (ex-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 (ex-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 | name | vendor | baseUrlSupport | acpSpawnable | | ------------ | ---------------- | ------------------------ | -------------- | ------------ | | hermes-agent | Hermes Agent | Nous Research | full | false | | openclaw | OpenClaw | OSS (P. Steinberger) | full | true | | goose | Goose | Block / Linux Foundation | full | true | | interpreter | Open Interpreter | OSS | full | true | | warp | Warp AI | Warp Inc. | partial | true | | agent-deck | Agent Deck | asheshgoplani (OSS) | full | false | | omp | Oh My Pi | OSS | full | true | | letta | Letta CLI | Letta | full | false | | prime-agent | Prime Agent | Prime Intellect (OSS) | full | false | | 5dive | 5dive | OSS (5dive-ai) | full | false | --- ## 3. ACP एजेंट (/dashboard/acp-agents) यह पृष्ठ (जिसका नाम `/dashboard/agents` से बदला गया है) उन CLI को दिखाता है जिन्हें OmniRoute stdio/ACP प्रोटोकॉल के माध्यम से बैकएंड निष्पादन इंजन के रूप में **स्पॉन** कर सकता है। कैटलॉग को `src/lib/acp/registry.ts` में अलग से बनाए रखा जाता है और यह `CLI_TOOLS` के समान **नहीं** है। --- ## 4. MITM बैकलॉग (डैशबोर्ड में नहीं दिखाया गया) निम्नलिखित CLI मूल रूप से कस्टम बेस 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, कोई कॉन्फ़िगर करने योग्य एंडपॉइंट नहीं | पूर्ण क्रॉस-रेफ़रेंस के लिए `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md` देखें। --- ## 5. बैच डिटेक्शन API सभी टूल डिटेक्शन को एक ही एंडपॉइंट के माध्यम से एकत्रित किया जाता है: **`GET /api/cli-tools/all-statuses`** - प्रमाणीकरण: `requireCliToolsAuth(request)` (अन्य `/api/cli-tools/` रूट के समान) - लौटाता है: `Record` (प्रकार: `src/shared/types/cliBatchStatus.ts`) - रणनीति: सभी टूल पर `Promise.all`, प्रत्येक टूल के लिए 5s टाइमआउट - कैश: कॉन्फ़िगरेशन फ़ाइल `mtime` द्वारा अनुक्रमित इन-मेमोरी LRU। `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; // सैनिटाइज़ किया गया, कोई स्टैक ट्रेस नहीं } ``` --- ## 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 में जोड़े गए नए नेमस्पेस: | नेमस्पेस | उद्देश्य | | ----------- | ------------------------------------------------------------------- | | `cliCommon` | साझा स्ट्रिंग्स (कार्ड लेबल, अवधारणा/तुलना टेक्स्ट, विवरण पेज लेबल) | | `cliCode` | CLI Code के पेज की स्ट्रिंग्स | | `cliAgents` | CLI Agents पेज की स्ट्रिंग्स | | `acpAgents` | ACP Agents पेज की स्ट्रिंग्स | संपूर्ण PT-BR और EN अनुवाद उपलब्ध कराए गए हैं। 39 अन्य लोकेल `src/i18n/request.ts` में नेमस्पेस-स्तरीय मर्ज के माध्यम से स्वचालित रूप से EN पर फ़ॉलबैक करते हैं। --- ## 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 कोडिंग एजेंट # इंस्टॉल करने के लिए 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 कुंजी और बेस URL चुनें 5. **कॉन्फ़िग लागू करें** पर क्लिक करें या मैन्युअल कॉन्फ़िग स्निपेट कॉपी करें --- ### चरण 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 पढ़ता है (इसका SDK स्वयं /v1beta/... जोड़ता है) export GOOGLE_GEMINI_BASE_URL="http://localhost:20128" export GEMINI_API_KEY="sk-your-omniroute-key" ``` > **रिमोट सर्वर** के लिए `localhost:20128` को सर्वर IP या डोमेन से बदलें, > उदा. `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 गेटवे रूट का उपयोग करें। यहाँ `/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" ``` संपूर्ण संदर्भ (प्रोफ़ाइल, `wire_api`, कॉन्टेक्स्ट विंडो): [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` > थिंकिंग वेरिएंट भेजने के लिए > `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 एक्सटेंशन सेटिंग्स → API प्रदाता: `OpenAI Compatible` → बेस 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 एक्सटेंशन) `~/.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 को कस्टम एंडपॉइंट मॉडल के लिए कॉन्फ़िगर किया गया हो और आप चाहते हों कि OmniRoute कस्टम हेडर फ़ील्ड के बिना काम करे। **अनुशंसित स्थान:** - 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 vars + flags पढ़ता है) omniroute setup --password '' # एडमिन पासवर्ड सीधे सेट करें omniroute setup --add-provider \ --provider openai \ --api-key '' \ --test-provider # एक ही चरण में प्रदाता जोड़ें और उसका परीक्षण करें ``` गैर-इंटरैक्टिव सेटअप के लिए पहचाने जाने वाले पर्यावरण चर: | चर | उद्देश्य | | ------------------- | ------------------------------------------------------------------------- | | `OMNIROUTE_API_KEY` | प्रदाता API कुंजी (Commander `.env()` के माध्यम से `--api-key` से संबद्ध) | | `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 में एन्क्रिप्टेड क्रेडेंशियल वास्तव में रिक्त करें ``` ### क्रेडेंशियल निर्यात (⚠ सावधानी से संभालें) ```bash omniroute auth export # चेतावनी + पुष्टिकरण चरण दिखाएँ — DB एक्सेस नहीं omniroute auth export --force # सभी कनेक्शनों के डिक्रिप्ट किए गए क्रेडेंशियल JSON के रूप में stdout पर निर्यात करें omniroute auth export --force --id # केवल मेल खाने वाला कनेक्शन निर्यात करें omniroute auth export --force --format env # OMNIROUTE__= पंक्तियाँ उत्सर्जित करें omniroute auth export --force --out creds.json # फ़ाइल में लिखें (0600 अनुमतियों के साथ बनाई गई) ``` `auth export` **केवल स्थानीय** है (सीधे SQLite से पढ़ता है, कोई HTTP रूट नहीं) और जानबूझकर **प्लेनटेक्स्ट** `apiKey`/`accessToken`/`refreshToken`/`idToken` मान प्रिंट/लिखता है — यह सुविधा है, बग नहीं। `--force` के बिना डेटाबेस से कुछ भी नहीं पढ़ा जाता और कुछ भी डिक्रिप्ट नहीं किया जाता। कोई भी प्लेनटेक्स्ट आउटपुट करने से पहले stderr पर हमेशा एक चेतावनी बैनर प्रिंट होता है। इसके लिए `STORAGE_ENCRYPTION_KEY` का सेट होना आवश्यक है। जो फ़ील्ड डिक्रिप्ट नहीं हो पाती (पुरानी कुंजी, दूषित सिफ़रटेक्स्ट), उसे पूरा एक्सपोर्ट रोकने या अंतर्निहित त्रुटि उजागर करने के बजाय `DecryptFailed: true` के रूप में रिपोर्ट किया जाता है। ### अन्य सबकमांड जब तक अन्यथा उल्लेख न किया गया हो, इनके लिए चालू OmniRoute सर्वर आवश्यक है: ```bash omniroute status # रनटाइम की व्यापक स्थिति omniroute logs # अनुरोध लॉग स्ट्रीम करें (--json, --search, --follow) omniroute config list # कॉन्फ़िगर किए गए CLI टूल दिखाएँ omniroute provider list # उपलब्ध प्रोवाइडर सूचीबद्ध करें (providers list का उपनाम) omniroute provider add # किसी टूल पर OmniRoute को प्रोवाइडर के रूप में पंजीकृत करें omniroute keys add | list | remove # API कुंजियाँ प्रबंधित करें omniroute models [provider] # मॉडल सूचीबद्ध करें (--json, --search) omniroute combo list | switch | create | delete omniroute backup # कॉन्फ़िगरेशन + DB का स्नैपशॉट बनाएँ omniroute restore # पिछले स्नैपशॉट से पुनर्स्थापित करें omniroute health # विस्तृत स्वास्थ्य स्थिति (ब्रेकर, कैश, मेमोरी) omniroute quota # प्रोवाइडर कोटा उपयोग omniroute cache # कैश स्थिति omniroute cache clear # सिमैंटिक + सिग्नेचर कैश साफ़ करें omniroute mcp status | restart # MCP सर्वर की स्थिति / पुनः आरंभ omniroute a2a status | card # A2A सर्वर की स्थिति / एजेंट कार्ड omniroute tunnel list | create | stop # टनल प्रबंधित करें (cloudflare/tailscale/ngrok) omniroute env show | get | set # env वेरिएबल जाँचें / सेट करें (अस्थायी) omniroute test # प्रोवाइडर कनेक्टिविटी स्मोक टेस्ट omniroute update # अपडेट की जाँच करें omniroute completion # शेल कम्प्लीशन जनरेट करें ``` ### सामान्य फ़्लैग | फ़्लैग | विवरण | | ------------------- | --------------------------------------------------- | | `--no-open` | शुरू होने पर ब्राउज़र अपने-आप न खोलें | | `--port ` | API पोर्ट को ओवरराइड करें (डिफ़ॉल्ट 20128) | | `--mcp` | stdio पर MCP सर्वर के रूप में चलाएँ (IDE के लिए) | | `--non-interactive` | CI मोड (कोई प्रॉम्प्ट नहीं; env/फ़्लैग से पढ़ता है) | | `--json` | मशीन-पठनीय JSON आउटपुट (doctor, providers आदि) | | `--help`, `-h` | कमांड-विशिष्ट सहायता दिखाएँ | | `--version`, `-v` | इंस्टॉल किया गया संस्करण प्रिंट करें | --- ## उपलब्ध 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` | Pre-v3.8.6 बुकमार्क | `/dashboard/cli-code` (308) पर स्वतः रीडायरेक्ट किया गया | | पुराना लिंक `/dashboard/agents` | Pre-v3.8.6 बुकमार्क | `/dashboard/acp-agents` (308) पर स्वतः रीडायरेक्ट किया गया | ## OmniRoute CLI के साथ इन्फ़रेंस-कुंजी नीति प्रबंधित करें किसी मौजूदा इन्फ़रेंस कुंजी को उसकी ID द्वारा देखने या अपडेट करने के लिए प्रमाणीकृत प्रबंधन संदर्भ का उपयोग करें ([रिमोट मोड](../guides/REMOTE-MODE.md) देखें): ```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` का उपनाम है। यह अपडेट मॉडल अनुमति-सूची को साफ़ कर देता है। यह स्कोप, कनेक्शन नियम, ब्लॉक किए गए मॉडल, दर सीमाएँ और लागत सीमाएँ सुरक्षित रखता है, इसलिए वे अन्य नियंत्रण अब भी किसी अनुरोध को अस्वीकार कर सकते हैं। स्पष्ट रूप से दिया गया `--allowed-models ""` भी `all` चुनता है; बिना किसी अनुमत मॉडल वाली प्रतिबंधित कुंजी बनाए रखने के लिए इसे `--model-access-mode restricted` के साथ संयोजित करें। अल्पविराम से अलग की गई गैर-रिक्त सूची, जब तक स्पष्ट रूप से अन्यथा निर्दिष्ट न हो, `restricted` चुनती है। विरोधाभासी `all` और गैर-रिक्त अनुमति-सूची का संयोजन अनुरोध भेजे जाने से पहले अस्वीकार कर दिया जाता है। `--rate-limit 30` प्रति मिनट अनुरोधों की संख्या निर्धारित करता है और अन्य समयावधियों के नियम सुरक्षित रखता है। `--max-cost 5` साप्ताहिक सीमा बदले बिना दैनिक USD सीमा सक्षम करता है; `--max-cost 0` दैनिक सीमा हटाता है और मौजूदा उपयोग-सीमा टॉगल तथा साप्ताहिक सीमा सुरक्षित रखता है। छोड़े गए नीति फ़ील्ड अपरिवर्तित रहते हैं। दर में बदलाव पहले वर्तमान नीति पढ़ते हैं; एक ही कुंजी की दर-सीमा सरणी में समवर्ती संपादन से बचें। नीति कमांड प्रमाणीकृत `GET`/`PATCH /api/keys/{id}` का उपयोग करते हैं और सक्रिय संदर्भ तथा वैश्विक `--api-key` विकल्प का पालन करते हैं। JSON आउटपुट में केवल नीति फ़ील्ड होते हैं, संग्रहीत कुंजी या उसका मास्क किया हुआ निरूपण नहीं। केवल-इन्फ़रेंस क्रेडेंशियल प्रबंधन परिवर्तनों को अधिकृत नहीं कर सकता। 401/403 मिलने पर प्रबंधन क्रेडेंशियल और संदर्भ की जाँच करना आवश्यक है; इससे स्थानीय CLI-टोकन या salt विफलता सिद्ध नहीं होती। अलग स्थानीय प्रमाणीकरण अनुबंध के लिए [CLI टोकन](../security/CLI_TOKEN.md) देखें।