Skip to content

Latest commit

 

History

History
792 lines (590 loc) · 68.9 KB

CLI-TOOLS.md

File metadata and controls

792 lines (590 loc) · 68.9 KB

CLI Tools — OmniRoute (हिन्दी)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇧🇦 bs · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


अंतिम अद्यतन: 2026-08-23

OmniRoute तीन समर्पित डैशबोर्ड पृष्ठों में फैले CLI टूल की तीन श्रेणियों के साथ एकीकृत होता है:

पेज मार्ग अवधारणा गिनती करना
CLI कोड /dashboard/cli-code कोडिंग टूल जो आप OmniRoute पर इंगित करते हैं (क्लाइंट → CLI → OmniRoute → प्रदाता) 26
CLI एजेंट /dashboard/cli-agents स्वायत्त एजेंट जिन्हें आप OmniRoute पर इंगित करते हैं (समान प्रवाह, व्यापक दायरा) 11
ACP एजेंट /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 कुंजी
  • डैशबोर्ड में सभी CLI की लागत ट्रैकिंग
  • प्रत्येक टूल को दोबारा कॉन्फ़िगर किए बिना मॉडल बदलना
  • स्थानीय और रिमोट सर्वर दोनों पर काम करता है (VPS, Docker, Akamai, Cloudflare Tunnel)

setup-* के साथ स्वतः कॉन्फ़िगर करें

आपको प्रत्येक टूल की कॉन्फ़िगरेशन को हाथ से लिखने की ज़रूरत नहीं है। OmniRoute प्रति समर्थित CLI पर एक setup-* कमांड भेजता है जो पढ़ता है** रहना** चल रहे OmniRoute (स्थानीय या दूरस्थ) से मॉडल कैटलॉग और आपकी मशीन पर टूल की स्वयं की कॉन्फ़िगरेशन लिखता है:

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        omniroute setup-zed
omniroute setup-whycodes

प्रत्येक --remote <url> --api-key <key> (दूरस्थ OmniRoute के विरुद्ध एक स्थानीय उपकरण कॉन्फ़िगर करें), --dry-run (बिना लिखे पूर्वावलोकन), और --port स्वीकार करता है। मॉडल ऑटो-डिस्कवरी के बिना उपकरण (Cline, Kilo, Roo, Goose, Aider, Qwen, 5dive, WhyCodes) --model <id> (और गैर-इंटरैक्टिव रन के लिए --yes ) लेते हैं। setup-5dive एक ऐसी रेसिपी है जो $HOME के तहत नहीं लिखती है: यह फ्लीट होस्ट पर रूट-स्वामित्व वाली ऑथ प्रोफ़ाइल लिखकर 5dive एजेंट फ्लीट को कॉन्फ़िगर करती है, इसलिए यह sudo के माध्यम से फिर से निष्पादित होती है और इसका अपना कोई रिमोट मोड नहीं है। सही एनवी इंजेक्ट किए गए और बिना किसी कॉन्फिगरेशन के लिखे गए एक CLI लॉन्च करने के लिए, जेनेरिक omniroute run <target> लॉन्चर (क्लाउड, कोडेक्स, एडर, गूज़, ओपनकोड, क्वेन, जेमिनी, व्हाईकोड्स - लक्ष्य और उपनाम bin/cli/cli-manifest.mjs से आते हैं) का उपयोग करें; लीगेसी प्रति-टूल लॉन्चर omniroute launch (Claude कोड) और omniroute launch-codex (Codex) उपलब्ध रहते हैं। Gemini CLI केवल-लॉन्च है: यह एक omniroute run लक्ष्य है लेकिन इसमें कोई setup-*/configure नुस्खा नहीं है।

पूर्ण संदर्भ: मास्टर टेबल - प्रत्येक कमांड क्या लिखता है, प्रत्येक ध्वज, स्थानीय बनाम रिमोट, और कौन से उपकरण /v1 प्रत्यय चाहते हैं - में रहता है** CLI एकीकरण** .

इन्हें एक कंटेनर के अंदर चलाना

OmniRoute कंटेनर के अंदर निष्पादित एक setup-* कमांड कंटेनर के अपने घर में लिखता है, जिसे कोई होस्ट CLI नहीं पढ़ता है और जो कंटेनर के साथ गायब हो जाता है। OmniRoute इसका पता लगाता है और लिखने के बजाय निर्देशों के साथ 2 से बाहर निकलता है। आगे बढ़ने के दो समर्थित तरीके - होस्ट पर CLI और कंटेनर पर omniroute connect स्थापित करें, या कॉन्फिग डीआईआर को बाइंड-माउंट करें और CLI_CONFIG_HOME ( host प्रोफाइल लिखें) सेट करें। प्रत्येक setup-* कमांड, प्लस omniroute configure और omniroute config set, कंटेनर के स्वयं के CLIs कॉन्फ़िगर करते समय --allow-container-write स्वीकार करता है जो वास्तव में आपका मतलब है; OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true सर्वर के लिए भी यही करता है। Docker गाइड → होस्ट CLI टूल्स को कॉन्फ़िगर करना देखें।

डैशबोर्ड का** समापन बिंदु लागू करें** (POST /api/cli-tools/apply) उसी गार्ड को लागू करता है: एक कंटेनर में, एक लेखन जिसका लक्ष्य होस्ट उत्तरों से बाइंड-माउंटेड नहीं है**422** containerEphemeralTarget: true के साथ, सुरक्षित त्रुटि पाठ और - होस्ट रेसिपी वाले टूल के लिए (क्लाउड, कोडेक्स, ओपनकोड, क्लाइन, किलो, जारी रखें) - इसके बजाय होस्ट पर चलाने के लिए एक hostSetupCommand (जैसे omniroute setup-opencode); कुछ भी नहीं लिखा है. dryRun: true कंटेनर मोड में काम करता रहता है और डिस्क को छुए बिना एक संशोधित पूर्वावलोकन + लक्ष्य पथ लौटाता है। पूर्वावलोकन सामग्री कॉपी या आयात करने के लिए क्रेडेंशियल-असर कॉन्फ़िगरेशन नहीं है। होस्ट पर मूल tool/base URL/API key/model इनपुट के साथ आवेदन करें, या संकेतित होस्ट-साइड सेटअप कमांड का उपयोग करें। पूर्वावलोकन हेडर और अनुरोध अनुबंध के लिए CLI कॉन्फ़िगरेशन सुरक्षा देखें। यह व्यवहार जानबूझकर और tests/unit/api/cli-tools/apply-container-guard.test.ts द्वारा प्रतिगमन-संरक्षित है - गार्ड को हटाकर कभी भी 422 को "ठीक" न करें।


सत्य का स्रोत

एकीकृत कैटलॉग src/shared/constants/cliTools.ts में CLI_TOOLS: Record<string, CliCatalogEntry> के रूप में मौजूद है।

प्रत्येक प्रविष्टि में ये फ़ील्ड होते हैं (जो 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 <cli> द्वारा समर्थित (सेटअप विधि मौजूद है) bin/cli/cli-manifest.mjs (configure: true)
लॉन्च करने योग्य omniroute run <target> द्वारा समर्थित (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 की सूची (27 टूल)

वे सभी टूल जो /dashboard/cli-code में दिखाई देते हैं। जिनमें baseUrlSupport: none है, उन्हें कस्टम बेस 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
zed Zed Zed Industries full guide false
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" वाले टूल के डैशबोर्ड कार्ड पर "⚠ आंशिक बेस URL" बैज दिखाई देता है।

2. CLI एजेंट कैटलॉग (11 उपकरण)

स्वायत्त एजेंट जो /dashboard/cli-agents में दिखाई देते हैं:

पहचान नाम विक्रेता बेसयूआरएलसमर्थन एसीपीस्पॉनेबल
हेमीज़-एजेंट हर्मीस एजेंट नौ अनुसंधान भरा हुआ असत्य
खुला पंजा OpenClaw OSS (पी. स्टाइनबर्गर) भरा हुआ सत्य
बत्तख बत्तख ब्लॉक / Linux फाउंडेशन भरा हुआ सत्य
दुभाषिया दुभाषिया खोलें OSS भरा हुआ सत्य
ताना Warp AI Warp इंक. आंशिक सत्य
एजेंट-डेक एजेंट डेक एशशगोप्लानी (OSS) भरा हुआ असत्य
omp ओह माय पाई OSS भरा हुआ सत्य
लेट्टा लेट्टा CLI लेट्टा भरा हुआ असत्य
प्राइम-एजेंट प्रधान एजेंट प्राइम इंटेलेक्ट (OSS) भरा हुआ असत्य
5गोता 5गोता OSS (5dive-ai) भरा हुआ असत्य
क्योंकोड WhyCodes निगम क्यों भरा हुआ असत्य

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<toolId, ToolBatchStatus> (प्रकार: src/shared/types/cliBatchStatus.ts)
  • रणनीति: सभी टूल पर Promise.all, प्रत्येक टूल के लिए 5s टाइमआउट
  • कैश: कॉन्फ़िगरेशन फ़ाइल mtime द्वारा अनुक्रमित इन-मेमोरी LRU। mtime बदलने पर कैश अमान्य हो जाता है। सर्वर पुनः आरंभ होने पर रीसेट होता है।

प्रत्येक टूल के लिए प्रतिक्रिया की संरचना:

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 आवश्यक है:

# 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 — वैश्विक एनवायरनमेंट वेरिएबल सेट करें

# 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://<your-server-ip>:20128।


चरण 4 — प्रत्येक टूल को कॉन्फ़िगर करें

Claude Code

# ~/.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) में रहती है, फ़ाइल के अंदर कभी नहीं:

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।

परीक्षण: codex "what is 2+2?"


OpenCode

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 मोड:

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 मोड:

kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key

VS Code सेटिंग्स:

{
  "kilo-code.openAiBaseUrl": "http://localhost:20128/v1",
  "kilo-code.apiKey": "sk-your-omniroute-key"
}

या OmniRoute डैशबोर्ड → CLI टूल्स → KiloCode → कॉन्फ़िग लागू करें का उपयोग करें।


Continue (VS Code एक्सटेंशन)

~/.continue/config.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 उपनाम का उपयोग करने वाला उदाहरण:

[
  {
    "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)

# अपने 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।

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                       # सभी कमांड दिखाएँ

सेटअप और आरंभीकरण

omniroute setup                        # इंटरैक्टिव सेटअप विज़ार्ड
omniroute setup --non-interactive      # CI/स्वचालन मोड (env vars + flags पढ़ता है)
omniroute setup --password '<value>'   # एडमिन पासवर्ड सीधे सेट करें
omniroute setup --add-provider \
  --provider openai \
  --api-key '<value>' \
  --test-provider                      # एक ही चरण में प्रदाता जोड़ें और उसका परीक्षण करें

गैर-इंटरैक्टिव सेटअप के लिए पहचाने जाने वाले पर्यावरण चर:

चर उद्देश्य
OMNIROUTE_API_KEY प्रदाता API कुंजी (Commander .env() के माध्यम से --api-key से संबद्ध)
DATA_DIR OmniRoute डेटा डायरेक्टरी को ओवरराइड करें

अन्य सभी गैर-इंटरैक्टिव इनपुट पर्यावरण चर के बजाय फ़्लैग के रूप में दिए जाते हैं: --password, --provider, --provider-name, --provider-base-url, --default-model (ऊपर दिए गए omniroute setup विकल्प देखें)।

निदान

omniroute doctor                       # कॉन्फ़िगरेशन, DB, पोर्ट, रनटाइम, मेमोरी और जीवंतता जाँचें
omniroute doctor --json                # मशीन-पठनीय JSON
omniroute doctor --no-liveness         # HTTP स्वास्थ्य प्रोब छोड़ें
omniroute doctor --host 0.0.0.0        # जीवंतता होस्ट को ओवरराइड करें
omniroute doctor --liveness-url <url>  # पूर्ण स्वास्थ्य एंडपॉइंट URL को ओवरराइड करें

डॉक्टर ये जाँचें चलाता है: Config, Database, Storage/encryption, Port availability, Node runtime, Native binary (better-sqlite3), Memory, और Server liveness। यदि कोई भी जाँच fail होती है, तो यह गैर-शून्य स्थिति के साथ बाहर निकलता है।

प्रदाता प्रबंधन

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 <id|name>                  # कॉन्फ़िगर किए गए एक कनेक्शन का परीक्षण करें
omniroute providers test-all                        # प्रत्येक सक्रिय कनेक्शन का परीक्षण करें
omniroute providers validate                        # केवल स्थानीय संरचनात्मक सत्यापन
omniroute providers add <provider> --credential-env PROVIDER_KEY
omniroute providers import ./providers.json --dry-run --json
omniroute providers auth <provider>                 # मौजूदा OAuth प्रवाह
omniroute providers edit <id|name> --default-model <model>
omniroute providers remove <id|name> --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 प्रदर्शन स्वरूप चुनता है, न कि गंतव्य फ़ाइल नाम।

पुनर्प्राप्ति और रीसेट

omniroute reset-password                # एडमिन पासवर्ड रीसेट करें (यह भी: omniroute-reset-password)
omniroute reset-encrypted-columns       # एन्क्रिप्टेड क्रेडेंशियल रीसेट के लिए चेतावनी + ड्राई-रन दिखाएँ
omniroute reset-encrypted-columns --force  # SQLite में एन्क्रिप्टेड क्रेडेंशियल वास्तव में रिक्त करें

क्रेडेंशियल निर्यात (⚠ सावधानी से संभालें)

omniroute auth export                                 # चेतावनी + पुष्टिकरण चरण दिखाएँ — DB एक्सेस नहीं
omniroute auth export --force                          # सभी कनेक्शनों के डिक्रिप्ट किए गए क्रेडेंशियल JSON के रूप में stdout पर निर्यात करें
omniroute auth export --force --id <id>                 # केवल मेल खाने वाला कनेक्शन निर्यात करें
omniroute auth export --force --format env               # OMNIROUTE_<PROVIDER>_<FIELD>=<value> पंक्तियाँ उत्सर्जित करें
omniroute auth export --force --out creds.json           # फ़ाइल में लिखें (0600 अनुमतियों के साथ बनाई गई)

auth export केवल स्थानीय है (सीधे SQLite से पढ़ता है, कोई HTTP रूट नहीं) और जानबूझकर प्लेनटेक्स्ट apiKey/accessToken/refreshToken/idToken मान प्रिंट/लिखता है — यह सुविधा है, बग नहीं। --force के बिना डेटाबेस से कुछ भी नहीं पढ़ा जाता और कुछ भी डिक्रिप्ट नहीं किया जाता। कोई भी प्लेनटेक्स्ट आउटपुट करने से पहले stderr पर हमेशा एक चेतावनी बैनर प्रिंट होता है। इसके लिए STORAGE_ENCRYPTION_KEY का सेट होना आवश्यक है। जो फ़ील्ड डिक्रिप्ट नहीं हो पाती (पुरानी कुंजी, दूषित सिफ़रटेक्स्ट), उसे पूरा एक्सपोर्ट रोकने या अंतर्निहित त्रुटि उजागर करने के बजाय <field>DecryptFailed: true के रूप में रिपोर्ट किया जाता है।

अन्य सबकमांड

जब तक अन्यथा उल्लेख न किया गया हो, इनके लिए चालू OmniRoute सर्वर आवश्यक है:

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 <k> | set <k> <v>  # env वेरिएबल जाँचें / सेट करें (अस्थायी)

omniroute test                         # प्रोवाइडर कनेक्टिविटी स्मोक टेस्ट
omniroute update                       # अपडेट की जाँच करें
omniroute completion                   # शेल कम्प्लीशन जनरेट करें

सामान्य फ़्लैग

फ़्लैग विवरण
--no-open शुरू होने पर ब्राउज़र अपने-आप न खोलें
--port <n> 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 के साथ सीधे पेस्ट करने योग्य उदाहरण:

टोकन उदाहरण: 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 <command> से जाँचें
इंस्टॉल करने के बाद डैशबोर्ड में "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 द्वारा देखने या अपडेट करने के लिए प्रमाणीकृत प्रबंधन संदर्भ का उपयोग करें (रिमोट मोड देखें):

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 टोकन देखें।