# CLI Tools — OmniRoute (Igbo) 🌐 **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) · 🇮🇹 [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) --- Emelitere ikpeazụ: 2026-08-23 OmniRoute na-ejikọta na ụdị ngwaọrụ CLI atọ e kewara n'ofe ibe dashboard atọ pụrụ iche: | Ibe | Route | Echiche | Ọnụọgụ | | ------------------ | ----------------------- | ----------------------------------------------------------------------------------- | ------------ | | **Koodu CLI** | `/dashboard/cli-code` | Ngwaọrụ ide koodu ị na-atụ aka na OmniRoute (Client → CLI → OmniRoute → Provider) | 26 | | **Ndị nnọchi CLI** | `/dashboard/cli-agents` | Ndị nnọchi kwụụrụ onwe ha ị na-atụ aka na OmniRoute (otu usoro ahụ, oke sara mbara) | 10 | | **Ndị nnọchi ACP** | `/dashboard/acp-agents` | CLI ndị OmniRoute na-ebido dị ka backend site na stdio/ACP (usoro nke azụ) | lee registry | Route ochie na-eme redirect site na 308: `/dashboard/cli-tools` → `/dashboard/cli-code`, `/dashboard/agents` → `/dashboard/acp-agents`. --- ## Otu O Si Arụ Ọrụ ``` Koodu CLI / Ndị nnọchi anya CLI (usoro oriri): Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ... │ ▼ (ha niile na-atụ aka na OmniRoute) http://YOUR_SERVER:20128/v1 │ ▼ (OmniRoute na-eziga arịrịọ ahụ n'aka provider kwesịrị ekwesị) Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ... Ndị nnọchi anya ACP (usoro ibido na-aga azụ): Arịrịọ client → OmniRoute → na-ebido CLI site na stdio/ACP → nzaghachi ``` **Uru:** - Otu API key iji jikwaa ngwaọrụ niile - Nsochi ụgwọ CLI niile n'ime dashboard - Ịgbanwe model n'emeghị nhazi ngwaọrụ ọ bụla ọzọ - Na-arụ ọrụ na kọmputa mpaghara nakwa na sava dịpụrụ adịpụ (VPS, Docker, Akamai, Cloudflare Tunnel) --- ## Hazie onwe gị na `setup-*` Ịkwesighi ide nhazi ngwaọrụ ọ bụla n'aka. OmniRoute na-ebufe iwu `setup-*` maka CLI ọ bụla akwadoro nke na-agụ katalọgụ ihe nlereanya **dị ndụ** site na OmniRoute na-agba ọsọ (nke mpaghara ma ọ bụ nke dịpụrụ adịpụ) ma na-ede nhazi ngwaọrụ ahụ n'onwe ya na igwe gị: ```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 ``` Nke ọ bụla na-anabata `--remote --api-key ` (hazie ngwaọrụ mpaghara megide OmniRoute dịpụrụ adịpụ), `--dry-run` (nlele anya na-edeghị), na `--port`. Ngwaọrụ na-enweghị nchọpụta ihe nlereanya akpaaka (Cline, Kilo, Roo, Goose, Aider, Qwen, 5dive) na-ewe `--model ` (na `--yes` maka ọsọ na-abụghị mmekọrịta). `setup-5dive` bụ otu usoro nri na-edeghị n'okpuru `$HOME`: ọ na-ahazi ụgbọ mmiri 5dive site na ide profaịlụ nkwenye nke mgbọrọgwụ nwe na onye ọbịa ụgbọ mmiri ahụ, yabụ ọ na-emegharị site na `sudo` ma enweghị ụdị dịpụrụ adịpụ nke ya. Iji malite CLI na gburugburu ebe obibi ziri ezi agbakwunyere na enweghị nhazi edere ma ọlị, jiri `omniroute run ` generic launcher (claude, codex, aider, goose, opencode, qwen, gemini — ebumnuche na aliases sitere na `bin/cli/cli-manifest.mjs`); ndị na-ebido ngwaọrụ ochie `omniroute launch` (Claude Code) na `omniroute launch-codex` (Codex) ka dị. Gemini CLI bụ naanị mmalite: ọ bụ ebumnuche `omniroute run` mana enweghị usoro `setup-*`/`configure`. > **Ntụaka zuru ezu:** tebụl ukwu — ihe iwu ọ bụla na-ede, ọkọlọtọ ọ bụla, > mpaghara vs dịpụrụ adịpụ, na ngwaọrụ ndị chọrọ `/v1` suffix — dị na > **[Njikọ CLI](../guides/CLI-INTEGRATIONS.md)**. ### Ịgba ọsọ ndị a n'ime akpa Iwu `setup-*` e mere n'ime akpa OmniRoute na-ede n'ime ụlọ akpa ahụ, nke ọ nweghị CLI onye ọbịa na-agụ ma nke na-apụ n'anya na akpa ahụ. OmniRoute na-achọpụta nke ahụ ma na-apụ `2` na ntụziaka kama ide. Ụzọ abụọ akwadoro n'ihu — wụnye CLI na onye ọbịa ma `omniroute connect` na akpa ahụ, ma ọ bụ jikọta-mount config dirs ma tọọ `CLI_CONFIG_HOME` (profaịlụ `host` mejupụtara). Iwu `setup-*` ọ bụla, gbakwunyere `omniroute configure` na `omniroute config set`, na-anabata `--allow-container-write` mgbe ịhazi CLIs nke akpa ahụ bụ ihe ị chere n'ezie; `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true` na-eme otu ihe ahụ maka ihe nkesa. Lee [Ntuziaka Docker → Ịhazi ngwaọrụ CLI onye ọbịa](../guides/DOCKER_GUIDE.md#configuring-host-cli-tools-when-omniroute-runs-in-docker). Ebe nkwụsị **tinye** dashboard (`POST /api/cli-tools/apply`) na-eme ka otu nchedo ahụ: n'ime akpa, ederede nke ebumnuche ya anaghị ejikọta-mount site na onye ọbịa na-aza **`422`** na `containerEphemeralTarget: true`, ederede njehie dị nchebe na — maka ngwaọrụ ndị nwere usoro nri onye ọbịa (claude, codex, opencode, cline, kilo, gaa n'ihu) — `hostSetupCommand` (dịka `omniroute setup-opencode`) iji gbaa ọsọ na onye ọbịa kama; ọ nweghị ihe edere. `dryRun: true` na-aga n'ihu na-arụ ọrụ na ọnọdụ akpa ma na-eweghachi nlele anya e degharịrị + ụzọ ebumnuche na-emetụghị diski. Ọdịnaya nlele anya abụghị nhazi na-ebu nzere iji detuo ma ọ bụ bubata. Tinye na ngwaọrụ mbụ/URL isi/API igodo/ihe nlereanya na onye ọbịa, ma ọ bụ jiri iwu nhazi akụkụ onye ọbịa egosipụtara. Lee [nchekwa nhazi CLI](../security/CLI-CONFIGURATION.md) maka isi nlele anya na nkwekọrịta arịrịọ. Omume a bụ ebumnuche ma nchekwa-nchekwa site na `tests/unit/api/cli-tools/apply-container-guard.test.ts` — anaghị "edozi" 422 site na iwepụ nchedo ahụ. --- ## Isi Eziokwu Katalọgụ ejikọrọ ọnụ dị na `src/shared/constants/cliTools.ts` dịka `CLI_TOOLS: Record`. Ntinye ọ bụla nwere oghere ndị a (akọwapụtara na `src/shared/schemas/cliCatalog.ts`): | Oghere | Ụdị | Nkọwa | | ----------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------- | | `category` | `"code" \| "agent"` | Ibe ngwá ọrụ ahụ na-apụta na ya | | `vendor` | `string` | Ebe ngwá ọrụ si bịa ("Anthropic", "OSS (P. Gauthier)") | | `acpSpawnable` | `boolean` | A pụkwara iji ya dịka ACP Agent (a na-egosi baajị) | | `baseUrlSupport` | `"full" \| "partial" \| "none"` | Ọkwa nkwado endpoint ahaziri iche. `"none"` = MITM backlog | | `configType` | `"env" \| "custom" \| "guide" \| "custom-builder" \| "mitm"` | Usoro nhazi | | `id`, `name`, `color`, `description`, `docsUrl` | ọkọlọtọ | Oghere ndị bụ isi a na-egosi | A **naghị egosi** ntinye ndị nwere `baseUrlSupport: "none"` na ibe dashboard — e debanyere ha na MITM backlog maka atụmatụ 11 (lee `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md`). ### Ọkwa ikike (edebanyere na katalọgụ × enwere ike ịchọpụta × enwere ike ịhazi × enwere ike ibido) Ọ bụghị ngwá ọrụ niile edebanyere na katalọgụ ka enwere ike ịchọpụta, ịhazi, ma ọ bụ ibido. Ọkwa ọ bụla nwere otu isi mmalite na-ekwupụta ya, ule drift na-emekwa ka ha nọgide kwekọọ: | Ọkwa | Ihe ọ pụtara | Ebe ekwupụtara ya | | ----------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------ | | **Nke dị na katalọgụ** | Na-apụta na katalọgụ dashboard (aha, vendor, docs, ụdị nhazi) | `src/shared/constants/cliTools.ts` (`CLI_TOOLS`) | | **Nke a pụrụ ịchọpụta** | Nchọpụta binary/config, nyocha ahụike, ụzọ config | `src/shared/services/cliRuntime.ts` (katalọgụ runtime `CLI_TOOLS`) | | **Nke a pụrụ ịhazi** | `omniroute configure ` na-akwado ya (usoro nrụnye dị) | `bin/cli/cli-manifest.mjs` (`configure: true`) | | **Nke a pụrụ ibido** | `omniroute run ` na-akwado ya (akọwapụtara ntinye env/args) | `bin/cli/cli-manifest.mjs` (`run: true`) | `bin/cli/cli-manifest.mjs` bụ manifest mmebe iwu a pụrụ ịrụ ọrụ nke bụ isi maka akụkụ iwu CLI: `run`, `configure` na ndị na-emepụta shell-completion niile na-enweta ndepụta target ha, mkpebi alias (dịka ọmụmaatụ `kilocode`/`kilo-code`/`kilo_cli` → `kilo`) na njikọ flag `--model` site na ya. Ihe nche drift `tests/unit/cli/cli-manifest-drift.test.ts` na-achọpụta na manifest ahụ, katalọgụ runtime, katalọgụ UI na akụkụ consumer niile na-adịkọ n'otu ọnọdụ — target agbakwunyere n'otu akụkụ na-enweghị ndị ọzọ na-eme ka suite daa kama ikwe ka drift mee n'amaghị ama. --- ## 1. Ndepụta Ngwaọrụ Koodu CLI (ngwaọrụ 26) Ngwaọrụ niile dị na `/dashboard/cli-code`. Ndị nwere `baseUrlSupport: none` ka ejikọrọ site na MITM ma ọ bụ ntuziaka aka kama iji URL isi omenala: | 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 | Ngwaọrụ nwere `baseUrlSupport: "partial"` na-egosi akara "⚠ Base URL parcial" na kaadị dashboard. --- ## 2. Katalọgụ Ndị nnọchi anya CLI (ngwaọrụ 10) Ndị nnọchi anya na-arụ ọrụ n'onwe ha nke na-apụta na `/dashboard/cli-agents`: | id | aha | onye nrụpụta | 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. Ndị nnọchi anya ACP (/dashboard/acp-agents) Ihu a (nke a gbanwere aha ya site na `/dashboard/agents`) na-egosi CLI ndị OmniRoute nwere ike **ịmalite** dịka injin mmezu backend site na protokol stdio/ACP. A na-elekọta katalọgụ ahụ iche na `src/lib/acp/registry.ts`, ọ **bụghịkwa** otu ihe ahụ dị ka `CLI_TOOLS`. --- ## 4. Ndepụta Ọrụ MITM Fọdụrụ (anaghị egosi ya na dashboard) CLI ndị a anaghị akwado URL ntọala ahaziri iche n'ụzọ ebumpụta ụwa, e **depụtaghịkwa ha** na ibe CLI Code ma ọ bụ CLI Agents. Ha bụ ndị a na-atụle maka nnabata MITM na atụmatụ 11: | CLI | Ihe kpatara ya | | ------------------- | ------------------------------------------------------------ | | windsurf | BYOK nwere oke naanị na ụfọdụ ụdị Claude + URL/token ụlọ ọrụ | | amp | Usoro gburugburu mechiri emechi (Sourcegraph) | | amazon-q / kiro-cli | Nyocha njirimara AWS SSO, enweghị URL ahaziri iche | | cowork | Anthropic Desktop, enweghị endpoint enwere ike ịhazi | Lee `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md` maka ntụaka obe zuru ezu. --- ## 5. API Nchọpụta N'ìgwè A na-achịkọta nchọpụta ngwaọrụ niile site n'otu endpoint: **`GET /api/cli-tools/all-statuses`** - Nyocha njirimara: `requireCliToolsAuth(request)` (otu ihe ahụ dị ka ụzọ `/api/cli-tools/` ndị ọzọ) - Ọ na-eweghachi: `Record` (ụdị: `src/shared/types/cliBatchStatus.ts`) - Atụmatụ: `Promise.all` n'elu ngwaọrụ niile, timeout nke 5s maka ngwaọrụ ọ bụla - Cache: LRU dị na ebe nchekwa nke config file `mtime` na-egosi. A na-eme ka cache ghara ịdị irè mgbe mtime gbanwere. A na-atọgharị ya mgbe sava malitegharịrị. Ọdịdị nzaghachi maka ngwaọrụ ọ bụla: ```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; // edoziri ka ọ dị nchebe, enweghị stack traces } ``` --- ## 6. Ndị Nhazi Ntọala maka Ngwaọrụ Ọhụrụ Ngwaọrụ ọhụrụ nwere `configType: "custom"` nwere ụzọ API ntọala nke ha: | Ụzọ | Ngwaọrụ | | ------------------------------------------- | ------------------------------------------------------------------------ | | `POST /api/cli-tools/forge-settings` | ForgeCode (.forge.toml) | | `POST /api/cli-tools/jcode-settings` | jcode (akara --base-url) | | `POST /api/cli-tools/deepseek-tui-settings` | DeepSeek TUI (OPENAI_BASE_URL, nke ochie) | | `POST /api/cli-tools/codewhale-settings` | CodeWhale (OPENAI_BASE_URL, nke mbụ + mmekọrịta nke ochie `~/.deepseek`) | | `POST /api/cli-tools/smelt-settings` | Smelt | | `POST /api/cli-tools/pi-settings` | Onye nnọchi anya ide koodu 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` + igodo `.env` pụrụ iche) | Ụzọ niile na-eji `sanitizeErrorMessage()` maka nzaghachi njehie (Iwu Siri Ike #12). --- ## 7. Nhazi Peeji Dashboard ### Koodu CLI (`/dashboard/cli-code`) - `src/app/(dashboard)/dashboard/cli-code/page.tsx` — komponẹntị sava - `src/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx` — grid onye ahịa - `src/app/(dashboard)/dashboard/cli-code/[id]/page.tsx` — peeji nkọwa ngwaọrụ - `src/app/(dashboard)/dashboard/cli-code/components/` — kaadị ngwaọrụ pụrụ iche 12 + `ToolDetailClient.tsx` ### Ndị Nnọchi Anya CLI (`/dashboard/cli-agents`) - `src/app/(dashboard)/dashboard/cli-agents/page.tsx` — komponẹntị sava - `src/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx` — grid onye ahịa - `src/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx` — na-ejigharị `ToolDetailClient` ### Ndị Nnọchi Anya ACP (`/dashboard/acp-agents`) - `src/app/(dashboard)/dashboard/acp-agents/page.tsx` — komponẹntị sava (e si na `agents/` bugharịa ya) ### Komponẹntị UI Ndị A Na-Ejikọta Ọnụ (`src/shared/components/cli/`) | Faịlụ | Ebumnuche | | ----------------------- | --------------------------------------------------------- | | `CliToolCard.tsx` | Kaadị ọnọdụ nwere ọgụgụ isi (nchọpụta + nhazi + endpoint) | | `CliConceptCard.tsx` | Kaadị nkọwa echiche maka peeji ọ bụla | | `CliComparisonCard.tsx` | Ntụnyere kọlụm atọ gafee ụdị CLI | | `BaseUrlSelect.tsx` | Ndepụta nhọrọ endpoint (Mpaghara/Igwe ojii/Nke ahaziri) | | `ApiKeySelect.tsx` | Ihe nhọpụta igodo API | | `ManualConfigModal.tsx` | Modal iberibe nhazi enwere ike iṅomi | ### Hook A Na-Ejikọta Ọnụ (`src/shared/hooks/cli/`) | Faịlụ | Ebumnuche | | ------------------------- | ------------------------------------------------------------------------ | | `useToolBatchStatuses.ts` | Na-eweta `/api/cli-tools/all-statuses`, na-ejikwa ọnọdụ nbudata/mmegharị | --- ## 8. i18n Agbakwunyere namespace ọhụrụ na atụmatụ 14 F9: | Namespace | Ebumnuche | | ----------- | --------------------------------------------------------------------------------- | | `cliCommon` | Eriri ndị a na-ekekọrịta (akara kaadị, ederede echiche/ntụnyere, akara ibe nkọwa) | | `cliCode` | Eriri ndị dị na ibe CLI Code | | `cliAgents` | Eriri ndị dị na ibe CLI Agents | | `acpAgents` | Eriri ndị dị na ibe ACP Agents | E nyere ntụgharị PT-BR na EN zuru ezu. Locale 39 ndị ọzọ na-eji EN na-akpaghị aka site na njikọta n'ogo namespace dị na `src/i18n/request.ts`. --- ## 9. Mmalite Ngwa Ngwa ### Nzọụkwụ 1 — Nweta OmniRoute API Key 1. Mepee `/dashboard/api-manager` → **Mepụta API Key** 2. Nye ya aha (dịka `cli-tools`) ma họrọ ikike niile 3. Detuo key ahụ — ị ga-achọ ya maka CLI ọ bụla dị n'okpuru > Key gị na-adị ka nke a: `sk-xxxxxxxxxxxxxxxx-xxxxxxxxx` --- ### Nzọụkwụ 2 — Wụnye Ngwaọrụ CLI Ngwaọrụ niile dabere na npm chọrọ Node.js 22.22.2+ ma ọ bụ 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 (enwere ike ibido ya site na `omniroute run gemini` → elu /v1beta) npm install -g @google/gemini-cli # Aider pip install aider-chat # Smelt cargo install smelt # Dabere na Rust # Pi coding agent # lee https://github.com/zechnerj/pi-coding-agent maka nrụnye # jcode # lee https://github.com/1jehuang/jcode maka nrụnye ``` --- ### Nzọụkwụ 3 — Hazie Site na Dashboard 1. Gaa na `http://localhost:20128/dashboard/cli-code` 2. Chọta ngwaọrụ gị na grid 3. Pịa kaadị ahụ iji mepee ibe nkọwa ngwaọrụ ahụ 4. Họrọ API key gị na base URL 5. Pịa **Tinye Nhazi** ma ọ bụ detuo snippet nhazi aka --- ### Nzọụkwụ 4 — Tọọ Environment Variables Zuru Ụwa ```bash # Endpoint Izugbe nke 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 na-agụ GOOGLE_GEMINI_BASE_URL na ROOT (SDK ya na-agbakwụnye /v1beta/... n'onwe ya) export GOOGLE_GEMINI_BASE_URL="http://localhost:20128" export GEMINI_API_KEY="sk-your-omniroute-key" ``` > Maka **sava dịpụrụ adịpụ**, jiri IP ma ọ bụ domain sava ahụ dochie `localhost:20128`, > dịka `http://:20128`. --- ### Nzọụkwụ 4 — Hazie Ngwaọrụ Ọ Bụla #### Claude Code ```bash # Mepụta ~/.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 ``` Jiri mgbọrọgwụ gateway Anthropic ejikọtara ọnụ maka Claude Code. Etinyekwala `/v1` ebe a. **Nnwale:** `claude "say hello"` --- #### OpenAI Codex Codex ọgbara ọhụrụ (v0.137+) na-agụ naanị `~/.codex/config.toml` — `config.yaml` ochie bụ nke npm CLI mgbe ochie, a na-eleghara ya anya n'enweghị ọkwa. API key ahụ na-anọgide na environment variable `OMNIROUTE_API_KEY` (`env_key`), ọ dịghị mgbe ọ ga-adị n'ime faịlụ ahụ: ```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" ``` Ntụaka zuru ezu (profiles, `wire_api`, context windows): [CODEX-CLI-CONFIGURATION.md](../guides/CODEX-CLI-CONFIGURATION.md). **Nnwale:** `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 ``` **Nnwale:** `opencode` > Jiri `opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant high` > iji zipu ụdị ndị na-eche echiche. --- #### Cline (CLI ma ọ bụ VS Code) **Ụdị 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 ``` **Ụdị VS Code:** Ntọala extension Cline → API Provider: `OpenAI Compatible` → Base URL: `http://localhost:20128/v1` Ma ọ bụ jiri dashboard OmniRoute → **Ngwaọrụ CLI → Cline → Tinye Nhazi**. --- #### KiloCode (CLI ma ọ bụ VS Code) **Ụdị CLI:** ```bash kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key ``` **Ntọala VS Code:** ```json { "kilo-code.openAiBaseUrl": "http://localhost:20128/v1", "kilo-code.apiKey": "sk-your-omniroute-key" } ``` Ma ọ bụ jiri dashboard OmniRoute → **Ngwaọrụ CLI → KiloCode → Tinye Nhazi**. --- #### Continue (Extension VS Code) Dezie `~/.continue/config.yaml`: ```yaml models: - name: OmniRoute provider: openai model: auto apiBase: http://localhost:20128/v1 apiKey: sk-your-omniroute-key default: true ``` Malitegharịa VS Code mgbe idezichara ya. --- #### VS Code Insiders (`chatLanguageModels.json`) Jiri nke a mgbe ahaziri VS Code Insiders maka model endpoint omenala ma ịchọrọ ka OmniRoute rụọ ọrụ na-enweghị field header omenala. **Ebe akwadoro:** - Linux: `~/.config/Code - Insiders/User/chatLanguageModels.json` - Windows: `%APPDATA%/Code - Insiders/User/chatLanguageModels.json` **Ọmụmaatụ iji utuaha OmniRoute nwere token:** ```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" } } ] ``` **Ihe ndị kwesịrị ịma:** - Jiri igodo API e mepụtara na OmniRoute dochie `sk-your-omniroute-key`. - Ogige `url` kwesịrị iz pointing gaa na `/api/v1/vscode/{token}/chat/completions`. - Ogige `modelsUrl` kwesịrị iz pointing gaa na `/api/v1/vscode/{token}/models`. - Họrọ usoro nkịtị nke `/v1` + nkụnyeisi Bearer mgbe onye ahịa na-akwado nkụnyeisi omenala. - Token ndị agbakwunyere na URL bụ ụzọ ndabere maka ndakọrịta ma nwee ike ịpụta na ndekọ ndezi ma ọ bụ akụkọ proxy. --- #### Kiro CLI (Amazon) ```bash # Banye na akaụntụ AWS/Kiro gị: kiro-cli login # CLI na-eji nkwenye njirimara nke ya — OmniRoute adịghị mkpa dịka backend maka Kiro CLI n'onwe ya. # Jiri kiro-cli n'akụkụ OmniRoute maka ngwaọrụ ndị ọzọ. kiro-cli status ``` Maka ngwa desktọpụ **Kiro IDE**, jiri endpoint MITM nke OmniRoute wepụtara n'okpuru `/dashboard/cli-tools → Kiro`. --- ## 10. OmniRoute CLI nke ime Faịlụ binary `omniroute` na-enye iwu maka usoro ndụ sava, nhazi, nchọpụta nsogbu, na njikwa ndị na-eweta ọrụ. Ebe mbido: `bin/omniroute.mjs`. ```bash omniroute # Bido sava (ọdụ ụgbọ mmiri ndabara bụ 20128) omniroute setup # Ọkachamara nhazi na-emekọrịta ihe omniroute doctor # Nyochaa nhazi, DB, ọdụ ụgbọ mmiri, na gburugburu oge nrụọrụ omniroute providers list # Njikọ ndị na-eweta ọrụ ahaziri omniroute providers test-all # Nwalee njikọ ọ bụla na-arụ ọrụ omniroute reset-password # Tọgharịa okwuntughe onye nchịkwa omniroute logs # Gbasaa ndekọ arịrịọ ozugbo omniroute health # Ọnọdụ ahụike zuru ezu (ndị nkwụsị, cache, ebe nchekwa) omniroute --version # Bipụta ụdị omniroute --help # Gosi iwu niile ``` ### Nhazi & Mbido ```bash omniroute setup # Ọkachamara nhazi na-emekọrịta ihe omniroute setup --non-interactive # Ọnọdụ CI/akpaaka (na-agụ env vars + flags) omniroute setup --password '' # Tọọ okwuntughe onye nchịkwa ozugbo omniroute setup --add-provider \ --provider openai \ --api-key '' \ --test-provider # Tinye ma nwalee onye na-eweta ọrụ n'otu oge ``` Mgbanwe gburugburu ebe a na-amata maka nhazi anaghị emekọrịta ihe: | Var | Ebumnuche | | ------------------- | ------------------------------------------------------------------------------------- | | `OMNIROUTE_API_KEY` | Igodo API nke onye na-eweta ọrụ (ejikọtara na `--api-key` site na Commander `.env()`) | | `DATA_DIR` | Dochie ndekọ data OmniRoute | A na-ebufe ntinye ndị ọzọ niile anaghị emekọrịta ihe dịka flags, ọ bụghị mgbanwe gburugburu: `--password`, `--provider`, `--provider-name`, `--provider-base-url`, `--default-model` (lee nhọrọ `omniroute setup` ndị dị n'elu). ### Nchọpụta nsogbu ```bash omniroute doctor # Nyochaa nhazi, DB, ọdụ ụgbọ mmiri, oge nrụọrụ, ebe nchekwa, na ịdị ndụ omniroute doctor --json # JSON igwe nwere ike ịgụ omniroute doctor --no-liveness # Mafere nyocha ahụike HTTP omniroute doctor --host 0.0.0.0 # Dochie host maka nyocha ịdị ndụ omniroute doctor --liveness-url # Dochie URL zuru ezu nke endpoint ahụike ``` Doctor na-eme nyocha ndị a: `Config`, `Database`, `Storage/encryption`, `Port availability`, `Node runtime`, `Native binary` (better-sqlite3), `Memory`, na `Server liveness`. Ọ na-eji koodu na-abụghị efu kwụsị ma ọ bụrụ na nyocha ọ bụla bụ `fail`. ### Njikwa ndị na-eweta ọrụ ```bash omniroute providers available # Katalọgụ ndị na-eweta ọrụ OmniRoute omniroute providers available --search openai # Nzacha katalọgụ site na id/name/alias/category omniroute providers available --category api-key # Nzacha site na category (api-key, oauth, free, ...) omniroute providers available --json # JSON igwe nwere ike ịgụ omniroute providers list # Njikọ ndị na-eweta ọrụ ahaziri omniroute providers list --json omniroute providers test # Nwalee otu njikọ ahaziri omniroute providers test-all # Nwalee njikọ ọ bụla na-arụ ọrụ omniroute providers validate # Nkwado nhazi nke mpaghara naanị omniroute providers add --credential-env PROVIDER_KEY omniroute providers import ./providers.json --dry-run --json omniroute providers auth # Usoro OAuth dị adị omniroute providers edit --default-model omniroute providers remove --yes ``` `providers add/import/auth/edit/remove` na-ebu API ụzọ, ya mere ha na-arụ ọrụ megide ọnọdụ mpaghara ma ọ bụ nke ime obodo dị anya na-arụ ọrụ. Ntinye nzere kwesịrị iji `--credential-stdin` ma ọ bụ `--credential-env`; `--dry-run --json` na-akọ naanị ọnụnọ/ọdịdị ezoro ezo. `providers available` na-agụ katalọgụ OmniRoute; `providers list/test/test-all/validate` na-ejigide omume SQLite mpaghara ha ma ha anaghị achọ ka sava na-arụ ọrụ. ### Mweghachi & Ntọgharị ```bash omniroute reset-password # Tọgharịa okwuntughe onye nchịkwa (ọzọkwa: omniroute-reset-password) omniroute reset-encrypted-columns # Gosi ịdọ aka ná ntị + dry-run maka ntọgharị nzere ezoro ezo omniroute reset-encrypted-columns --force # Wepụ nzere ezoro ezo n'ezie site n'itinye null na SQLite ``` ### Mbupụ Nzere (⚠ jiri nlezianya mee ya) ```bash omniroute auth export # Gosi ịdọ aka ná ntị + ọnụ ụzọ nkwenye — enweghị ohere DB omniroute auth export --force # Bupụ nzere E WEPUOLA NZOCHI nke njikọ NIILE gaa na stdout dịka JSON omniroute auth export --force --id # Bupụ naanị njikọ dabara adaba omniroute auth export --force --format env # Wepụta ahịrị OMNIROUTE__= omniroute auth export --force --out creds.json # Dee ya na faịlụ (e ji ikike 0600 kee ya) ``` `auth export` bụ nke **mpaghara naanị** (ịgụ SQLite ozugbo, enweghị ụzọ HTTP), ma a kpachapụrụ anya mee ka ọ bipụta/dee ụkpụrụ `apiKey`/`accessToken`/`refreshToken`/`idToken` dịka **ederede doro anya** — nke ahụ bụ njirimara ahụ, ọ bụghị ntụpọ. A naghị agụ ihe ọ bụla site na database, a naghịkwa ewepụ nzuzo ihe ọ bụla, ma e wezụga mgbe e nyere `--force`. Akara ịdọ aka ná ntị stderr na-apụta mgbe niile tupu ewepụta ederede doro anya ọ bụla. Ọ chọrọ ka edobe `STORAGE_ENCRYPTION_KEY`. A na-akọ ubi nke mwepụ nzuzo ya dara (igodo ochie, ciphertext mebiri emebi) dịka `DecryptFailed: true` kama ịkwụsị mbupụ ahụ niile ma ọ bụ ikpughe njehie kpatara ya. ### Iwu nta ndị ọzọ Ndị a na-eche na sava OmniRoute na-arụ ọrụ, ma e wezụga ebe e kwuru ihe ọzọ: ```bash omniroute status # Ọnọdụ oge-ngagharị zuru ezu omniroute logs # Gosi ndekọ arịrịọ na-aga n'ihu (--json, --search, --follow) omniroute config list # Gosi ngwa CLI ahaziri omniroute provider list # Depụta ndị na-eweta dị (aha ọzọ maka providers list) omniroute provider add # Debanye OmniRoute dịka onye na-eweta na ngwa omniroute keys add | list | remove # Jikwaa igodo API omniroute models [provider] # Depụta ụdị (--json, --search) omniroute combo list | switch | create | delete omniroute backup # Mepụta foto-ọnọdụ nke nhazi + DB omniroute restore # Weghachite site na foto-ọnọdụ gara aga omniroute health # Nkọwa ahụike zuru ezu (ndị nkwụsị, cache, ebe nchekwa) omniroute quota # Ojiji oke onye na-eweta omniroute cache # Ọnọdụ cache omniroute cache clear # Hichapụ cache semantic + signature omniroute mcp status | restart # Ọnọdụ / ịmalitegharị sava MCP omniroute a2a status | card # Ọnọdụ sava A2A / kaadị agent omniroute tunnel list | create | stop # Jikwaa ọwara (cloudflare/tailscale/ngrok) omniroute env show | get | set # Nyochaa / tọọ mgbanwe gburugburu (nwa oge) omniroute test # Nnwale ngwa ngwa nke njikọ onye na-eweta omniroute update # Lelee mmelite omniroute completion # Mepụta mmecha shell ``` ### Ọkọlọtọ ndị a na-ejikarị | Ọkọlọtọ | Nkọwa | | ------------------- | --------------------------------------------------------- | | `--no-open` | Emeghela ihe nchọgharị n'onwe ya mgbe a malitere | | `--port ` | Dochie ọdụ API (ndabara 20128) | | `--mcp` | Gbaa dịka sava MCP site na stdio (maka IDE) | | `--non-interactive` | Ọnọdụ CI (enweghị ajụjụ; na-agụ site na env/ọkọlọtọ) | | `--json` | Mmepụta JSON igwe nwere ike ịgụ (doctor, providers, wdg.) | | `--help`, `-h` | Gosi enyemaka metụtara iwu ahụ kpọmkwem | | `--version`, `-v` | Bipụta ụdị arụnyere | --- ## Ebe Njedebe API Dị | Ebe njedebe | Nkọwa | Ihe e ji ya eme | | -------------------------- | ----------------------------------------- | -------------------------------- | | `/v1/chat/completions` | Mkparịta ụka ọkọlọtọ (ndị na-eweta niile) | Ngwaọrụ ọgbara ọhụrụ niile | | `/v1/responses` | API nzaghachi (usoro OpenAI) | Codex, usoro ọrụ ndị nnọchi anya | | `/v1/completions` | Mmecha ederede usoro ochie | Ngwaọrụ ochie na-eji `prompt:` | | `/v1/embeddings` | Ntinye mkpụrụokwu ederede | RAG, ọchụchọ | | `/v1/images/generations` | Mmepụta onyonyo | GPT-Image, Flux, wdg. | | `/v1/audio/speech` | Ederede gaa n'olu | ElevenLabs, OpenAI TTS | | `/v1/audio/transcriptions` | Olu gaa n'ederede | Deepgram, AssemblyAI | Ọmụmaatụ dị njikere ka e mado ya nke nwere URL OmniRoute e tinyere token: ```txt Ọmụmaatụ token: sk-a3ab3c080beaee3a-69f4a4-070d71af Ntọala OpenAI ọkọlọtọ: http://localhost:20128/v1 Ụdị VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/models Mkparịta ụka VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completions Nzaghachi VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responses Mkpado Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tags Mkparịta ụka Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chat ``` --- ## Nchọpụta na Ndozi Nsogbu | Njehie | Ihe kpatara ya | Ndozi | | --------------------------------------------------- | ---------------------------------------- | -------------------------------------------------------------------- | | `Connection refused` | OmniRoute anaghị arụ ọrụ | `omniroute serve` | | `401 Unauthorized` | Igodo API ezighi ezi | Lelee na `/dashboard/api-manager` | | `No combo configured` | Enweghị ngwakọta ntụgharị ụzọ na-arụ ọrụ | Hazie ya na `/dashboard/combos` | | CLI na-egosi "not installed" | Faịlụ binary adịghị na PATH | Lelee `which ` | | Dashboard na-egosi "not detected" mgbe echichara ya | Cache emechiela | Pịa "⟳ Weghachite nchọpụta" na dashboard | | Njikọ ochie `/dashboard/cli-tools` | Bookmark tupu v3.8.6 | A na-atụgharị ya na-akpaghị aka gaa na `/dashboard/cli-code` (308) | | Njikọ ochie `/dashboard/agents` | Bookmark tupu v3.8.6 | A na-atụgharị ya na-akpaghị aka gaa na `/dashboard/acp-agents` (308) |