# CLI Tools — OmniRoute (Yorùbá) 🌐 **Languages:** 🇺🇸 [English](../../../../reference/CLI-TOOLS.md) · 🇪🇹 [am](../../../am/docs/reference/CLI-TOOLS.md) · 🇸🇦 [ar](../../../ar/docs/reference/CLI-TOOLS.md) · 🇦🇿 [az](../../../az/docs/reference/CLI-TOOLS.md) · 🇧🇬 [bg](../../../bg/docs/reference/CLI-TOOLS.md) · 🇧🇩 [bn](../../../bn/docs/reference/CLI-TOOLS.md) · 🇧🇦 [bs](../../../bs/docs/reference/CLI-TOOLS.md) · 🇨🇿 [cs](../../../cs/docs/reference/CLI-TOOLS.md) · 🇩🇰 [da](../../../da/docs/reference/CLI-TOOLS.md) · 🇩🇪 [de](../../../de/docs/reference/CLI-TOOLS.md) · 🇬🇷 [el](../../../el/docs/reference/CLI-TOOLS.md) · 🇪🇸 [es](../../../es/docs/reference/CLI-TOOLS.md) · 🇪🇪 [et](../../../et/docs/reference/CLI-TOOLS.md) · 🇮🇷 [fa](../../../fa/docs/reference/CLI-TOOLS.md) · 🇫🇮 [fi](../../../fi/docs/reference/CLI-TOOLS.md) · 🇫🇷 [fr](../../../fr/docs/reference/CLI-TOOLS.md) · 🇮🇪 [ga](../../../ga/docs/reference/CLI-TOOLS.md) · 🇮🇳 [gu](../../../gu/docs/reference/CLI-TOOLS.md) · 🇳🇬 [ha](../../../ha/docs/reference/CLI-TOOLS.md) · 🇮🇱 [he](../../../he/docs/reference/CLI-TOOLS.md) · 🇮🇳 [hi](../../../hi/docs/reference/CLI-TOOLS.md) · 🇭🇷 [hr](../../../hr/docs/reference/CLI-TOOLS.md) · 🇭🇺 [hu](../../../hu/docs/reference/CLI-TOOLS.md) · 🇦🇲 [hy](../../../hy/docs/reference/CLI-TOOLS.md) · 🇮🇩 [id](../../../id/docs/reference/CLI-TOOLS.md) · 🇳🇬 [ig](../../../ig/docs/reference/CLI-TOOLS.md) · 🇮🇹 [it](../../../it/docs/reference/CLI-TOOLS.md) · 🇯🇵 [ja](../../../ja/docs/reference/CLI-TOOLS.md) · 🇬🇪 [ka](../../../ka/docs/reference/CLI-TOOLS.md) · 🇰🇭 [km](../../../km/docs/reference/CLI-TOOLS.md) · 🇮🇳 [kn](../../../kn/docs/reference/CLI-TOOLS.md) · 🇰🇷 [ko](../../../ko/docs/reference/CLI-TOOLS.md) · 🇱🇹 [lt](../../../lt/docs/reference/CLI-TOOLS.md) · 🇱🇻 [lv](../../../lv/docs/reference/CLI-TOOLS.md) · 🇮🇳 [ml](../../../ml/docs/reference/CLI-TOOLS.md) · 🇮🇳 [mr](../../../mr/docs/reference/CLI-TOOLS.md) · 🇲🇾 [ms](../../../ms/docs/reference/CLI-TOOLS.md) · 🇲🇹 [mt](../../../mt/docs/reference/CLI-TOOLS.md) · 🇲🇲 [my](../../../my/docs/reference/CLI-TOOLS.md) · 🇳🇵 [ne](../../../ne/docs/reference/CLI-TOOLS.md) · 🇳🇱 [nl](../../../nl/docs/reference/CLI-TOOLS.md) · 🇳🇴 [no](../../../no/docs/reference/CLI-TOOLS.md) · 🇮🇳 [or](../../../or/docs/reference/CLI-TOOLS.md) · 🇮🇳 [pa](../../../pa/docs/reference/CLI-TOOLS.md) · 🇵🇭 [phi](../../../phi/docs/reference/CLI-TOOLS.md) · 🇵🇱 [pl](../../../pl/docs/reference/CLI-TOOLS.md) · 🇵🇹 [pt](../../../pt/docs/reference/CLI-TOOLS.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/reference/CLI-TOOLS.md) · 🇷🇴 [ro](../../../ro/docs/reference/CLI-TOOLS.md) · 🇷🇺 [ru](../../../ru/docs/reference/CLI-TOOLS.md) · 🇱🇰 [si](../../../si/docs/reference/CLI-TOOLS.md) · 🇸🇰 [sk](../../../sk/docs/reference/CLI-TOOLS.md) · 🇸🇮 [sl](../../../sl/docs/reference/CLI-TOOLS.md) · 🇷🇸 [sr](../../../sr/docs/reference/CLI-TOOLS.md) · 🇸🇪 [sv](../../../sv/docs/reference/CLI-TOOLS.md) · 🇰🇪 [sw](../../../sw/docs/reference/CLI-TOOLS.md) · 🇮🇳 [ta](../../../ta/docs/reference/CLI-TOOLS.md) · 🇮🇳 [te](../../../te/docs/reference/CLI-TOOLS.md) · 🇹🇭 [th](../../../th/docs/reference/CLI-TOOLS.md) · 🇹🇷 [tr](../../../tr/docs/reference/CLI-TOOLS.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/reference/CLI-TOOLS.md) · 🇵🇰 [ur](../../../ur/docs/reference/CLI-TOOLS.md) · 🇺🇿 [uz](../../../uz/docs/reference/CLI-TOOLS.md) · 🇻🇳 [vi](../../../vi/docs/reference/CLI-TOOLS.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/reference/CLI-TOOLS.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/reference/CLI-TOOLS.md) --- Ìgbà ìkẹyìn tí a ṣe àfikún: 2026-08-23 OmniRoute ń ṣepọ̀ pẹ̀lú ẹ̀ka mẹ́ta ti àwọn irinṣẹ́ CLI tí a pín káàkiri ojúewé dashboard mẹ́ta tí a yà sọ́tọ̀: | Ojúewé | Route | Èrò àkànṣe | Iye | | ------------------ | ----------------------- | ------------------------------------------------------------------------------- | ----------- | | **Àwọn CLI Code** | `/dashboard/cli-code` | Àwọn irinṣẹ́ kóòdù tí o tọ́ka sí OmniRoute (Client → CLI → OmniRoute → Provider) | 26 | | **Àwọn CLI Agent** | `/dashboard/cli-agents` | Àwọn agent aládàáṣe tí o tọ́ka sí OmniRoute (ìṣàn kan náà, ààlà tó gbòòrò sí i) | 10 | | **Àwọn ACP Agent** | `/dashboard/acp-agents` | Àwọn CLI tí OmniRoute ń dá sílẹ̀ gẹ́gẹ́ bí backend nípasẹ̀ stdio/ACP (ìṣàn òdìkejì) | wo registry | Àwọn route àtijọ́ ń ṣe àtúndarí nípasẹ̀ 308: `/dashboard/cli-tools` → `/dashboard/cli-code`, `/dashboard/agents` → `/dashboard/acp-agents`. --- ## Bí Ó Ṣe Ń Ṣiṣẹ́ ``` Àwọn CLI Code / Àwọn CLI Agent (ìṣàn lílò): Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ... │ ▼ (gbogbo wọn tọ́ka sí OmniRoute) http://YOUR_SERVER:20128/v1 │ ▼ (OmniRoute ń darí sí provider tó yẹ) Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ... Àwọn ACP Agent (ìṣàn dídá sílẹ̀ òdìkejì): Ìbéèrè client → OmniRoute → ń dá CLI sílẹ̀ nípasẹ̀ stdio/ACP → ìdáhùn ``` **Àwọn àǹfààní:** - API key kan láti ṣàkóso gbogbo àwọn irinṣẹ́ - Títọpinpin iye owó kọjá gbogbo àwọn CLI nínú dashboard - Yíyí model padà láìṣàtúnṣe gbogbo irinṣẹ́ - Ó ń ṣiṣẹ́ ní agbègbè rẹ àti lórí àwọn server jíjìn (VPS, Docker, Akamai, Cloudflare Tunnel) --- ## Ṣètò láìfọwọ́ṣe pẹ̀lú `setup-*` O kò nílò láti kọ àtòjọ-ètò irinṣẹ́ kọ̀ọ̀kan pẹ̀lú ọwọ́. OmniRoute ní àṣẹ `setup-*` kan fún CLI kọ̀ọ̀kan tí a ṣe àtìlẹ́yìn fún, èyí tí ó máa ń ka àkójọ àwọn model tí ó wà ní **àsìkò gidi** láti inú OmniRoute tí ń ṣiṣẹ́ (ní ẹ̀rọ agbègbè tàbí ní ọ̀nà jíjìn), tí yóò sì kọ àtòjọ-ètò ti irinṣẹ́ náà sí orí ẹ̀rọ rẹ: ```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 omniroute setup-zed ``` Ọ̀kọ̀ọ̀kan gba `--remote --api-key ` (láti ṣètò irinṣẹ́ agbègbè kan láti ṣiṣẹ́ pẹ̀lú OmniRoute jíjìn), `--dry-run` (láti ṣe àyẹ̀wò ṣáájú láìkọ nǹkan), àti `--port`. Àwọn irinṣẹ́ tí kò ní ìṣàwárí model aládàáṣiṣẹ́ (Cline, Kilo, Roo, Goose, Aider, Qwen, 5dive) gba `--model ` (àti `--yes` fún ìṣiṣẹ́ tí kò nílò ìbáṣepọ̀). `setup-5dive` ni ìlànà kan ṣoṣo tí kì í kọ sábẹ́ `$HOME`: ó máa ń ṣètò ọ̀wọ́ àwọn agent 5dive nípa kíkọ profile ìfàṣẹ̀sí tí root ní sí orí host ọ̀wọ́ náà, nítorí náà ó tún máa ń ṣiṣẹ́ ara rẹ̀ nípasẹ̀ `sudo`, kò sì ní mode jíjìn tirẹ̀. Láti ṣe ìfilọ́lẹ̀ CLI kan pẹ̀lú env tó yẹ tí a fi sínú rẹ̀ láìkọ àtòjọ-ètò kankan rárá, lo olùfilọ́lẹ̀ gbogbogbò `omniroute run ` (claude, codex, aider, goose, opencode, qwen, gemini — àwọn target àti alias wá láti `bin/cli/cli-manifest.mjs`); àwọn olùfilọ́lẹ̀ àtọwọ́dọ́wọ́ fún irinṣẹ́ kọ̀ọ̀kan, `omniroute launch` (Claude Code) àti `omniroute launch-codex` (Codex), ṣì wà. Gemini CLI jẹ́ ti ìfilọ́lẹ̀ nìkan: ó jẹ́ target `omniroute run`, ṣùgbọ́n kò ní ìlànà `setup-*`/`configure`. > **Ìtọ́kasí kíkún:** tábìlì àkọ́kọ́ — ohun tí àṣẹ kọ̀ọ̀kan ń kọ, gbogbo flag, > agbègbè ní ìfiwéra pẹ̀lú jíjìn, àti àwọn irinṣẹ́ wo ló nílò àsẹ̀yìn `/v1` — wà > nínú **[Àwọn Ìṣọ̀kan CLI](../guides/CLI-INTEGRATIONS.md)**. ### Ṣíṣe àwọn wọ̀nyí nínú container kan Àṣẹ `setup-*` tí a ṣiṣẹ́ nínú container OmniRoute yóò kọ sínú home ti container náà fúnra rẹ̀, èyí tí kò sí CLI host kankan tí yóò kà, tí yóò sì pòórá pẹ̀lú container náà. OmniRoute máa ń ṣàwárí èyí, yóò sì jáde pẹ̀lú `2` àti àwọn ìtọ́sọ́nà dípò kí ó kọ nǹkan. Ọ̀nà méjì tí a ṣe àtìlẹ́yìn fún láti tẹ̀síwájú ni — fi CLI sí orí host, kí o sì lo `omniroute connect` láti sopọ̀ mọ́ container náà, tàbí ṣe bind-mount àwọn config dirs, kí o sì ṣètò `CLI_CONFIG_HOME` (profile `host` ti compose). Gbogbo àṣẹ `setup-*`, pẹ̀lú `omniroute configure` àti `omniroute config set`, gba `--allow-container-write` nígbà tí ohun tí o fẹ́ gan-an ni láti ṣètò àwọn CLI ti container náà fúnra rẹ̀; `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true` ṣe ohun kan náà fún server náà. Wo [Ìtọ́sọ́nà Docker → Ṣíṣètò àwọn irinṣẹ́ CLI host](../guides/DOCKER_GUIDE.md#configuring-host-cli-tools-when-omniroute-runs-in-docker). **Apply endpoint** ti dashboard (`POST /api/cli-tools/apply`) ń fi ààbò kan náà múlò: nínú container kan, ìkọ̀wé tí target rẹ̀ kò jẹ́ bind-mounted láti host yóò dáhùn pẹ̀lú **`422`**, `containerEphemeralTarget: true`, ọ̀rọ̀ àṣìṣe tó ní ààbò, àti — fún àwọn irinṣẹ́ tó ní ìlànà host (claude, codex, opencode, cline, kilo, continue) — `hostSetupCommand` kan (fún àpẹẹrẹ, `omniroute setup-opencode`) láti ṣiṣẹ́ lórí host dípò bẹ́ẹ̀; kò sí ohun tí a ó kọ. `dryRun: true` ṣì ń ṣiṣẹ́ ní mode container, ó sì ń dá àyẹ̀wò ṣáájú tí a ti yọ ìsọfúnni kókó kúrò nínú rẹ̀ padà, pẹ̀lú path target, láìfọwọ́ kan disk. Àkóónú àyẹ̀wò ṣáájú kì í ṣe àtòjọ-ètò tó ní ẹ̀rí ìdánimọ̀ tí a lè ṣe àdàkọ tàbí import. Ṣe apply pẹ̀lú àwọn ìwọlé irinṣẹ́/base URL/API key/model ìpilẹ̀ṣẹ̀ lórí host, tàbí lo àṣẹ ìṣètò lórí host tí a tọ́ka sí. Wo [Ààbò àtòjọ-ètò CLI](../security/CLI-CONFIGURATION.md) fún header àyẹ̀wò ṣáájú àti àdéhùn request. Ìhùwàsí yìí jẹ́ èyí tí a mọ̀ọ́mọ̀ ṣe, a sì ń dáàbò bò ó lọ́wọ́ regression pẹ̀lú `tests/unit/api/cli-tools/apply-container-guard.test.ts` — má ṣe “ṣàtúnṣe” 422 láé nípa yíyọ guard náà kúrò. --- ## Orísun Òtítọ́ Àkójọ ìṣọ̀kan náà wà nínú `src/shared/constants/cliTools.ts` gẹ́gẹ́ bí `CLI_TOOLS: Record`. Kọ̀ọ̀kan àkọsílẹ̀ ní àwọn ààyè wọ̀nyí (tí a ṣàlàyé nínú `src/shared/schemas/cliCatalog.ts`): | Ààyè | Irú | Àpèjúwe | | ----------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------------- | | `category` | `"code" \| "agent"` | Ojú-ewé tí irinṣẹ́ náà máa hàn lórí | | `vendor` | `string` | Orísun irinṣẹ́ ("Anthropic", "OSS (P. Gauthier)") | | `acpSpawnable` | `boolean` | Ó tún ṣeé lò gẹ́gẹ́ bí ACP Agent (a ó fi báàjì hàn) | | `baseUrlSupport` | `"full" \| "partial" \| "none"` | Ìpele àtìlẹ́yìn fún endpoint àkànṣe. `"none"` = àkójọ iṣẹ́ MITM tí ń dúró | | `configType` | `"env" \| "custom" \| "guide" \| "custom-builder" \| "mitm"` | Ọ̀nà ìṣètò | | `id`, `name`, `color`, `description`, `docsUrl` | àgbékalẹ̀ boṣewa | Àwọn ààyè ìfihàn pàtàkì | Àwọn àkọsílẹ̀ tí ó ní `baseUrlSupport: "none"` **kì í hàn** nínú àwọn ojú-ewé dashboard — a forúkọsílẹ̀ wọn sínú àkójọ iṣẹ́ MITM tí ń dúró fún ètò 11 (wo `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md`). ### Àwọn ìpele agbára (tí a kójọ × tí a lè ṣàwárí × tí a lè ṣètò × tí a lè ṣe ìfilọ́lẹ̀) Kì í ṣe gbogbo irinṣẹ́ tí a kójọ ni a lè ṣàwárí, ṣètò tàbí ṣe ìfilọ́lẹ̀ rẹ̀. Ìpele kọ̀ọ̀kan ní orísun kan tí ń kéde rẹ̀, ìdánwò yíyapa sì ń mú kí wọ́n wà ní ìbámu: | Ìpele | Ìtumọ̀ | Ibi tí a ti kéde rẹ̀ | | ---------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------- | | **Tí a kójọ** | Ó hàn nínú àkójọ dashboard (orúkọ, olùpèsè, àkọsílẹ̀, irú ìṣètò) | `src/shared/constants/cliTools.ts` (`CLI_TOOLS`) | | **Tí a lè ṣàwárí** | Ìṣàwárí binary/ìṣètò, àwọn àyẹ̀wò ìlera, àwọn ipa-ọ̀nà ìṣètò | `src/shared/services/cliRuntime.ts` (àkójọ runtime `CLI_TOOLS`) | | **Tí a lè ṣètò** | `omniroute configure ` ń ṣe àtìlẹ́yìn rẹ̀ (ìlànà ìṣètò wà) | `bin/cli/cli-manifest.mjs` (`configure: true`) | | **Tí a lè ṣe ìfilọ́lẹ̀** | `omniroute run ` ń ṣe àtìlẹ́yìn rẹ̀ (a ti ṣàlàyé ìfisínú env/args) | `bin/cli/cli-manifest.mjs` (`run: true`) | `bin/cli/cli-manifest.mjs` ni manifest ìṣiṣẹ́ àṣẹ àṣẹ-àṣẹ fún àwọn ojú-ọ̀nà àṣẹ CLI: `run`, `configure` àti àwọn olùṣẹ̀dá shell-completion gbogbo wọn ń gba àwọn àkójọ target, ìtúmọ̀ alias (fún àpẹẹrẹ `kilocode`/`kilo-code`/`kilo_cli` → `kilo`) àti ìsopọ̀ flag `--model` láti inú rẹ̀. Olùṣọ́ yíyapa `tests/unit/cli/cli-manifest-drift.test.ts` ń fìdí rẹ̀ múlẹ̀ pé manifest, àkójọ runtime, àkójọ UI àti gbogbo ojú-ọ̀nà oníbàárà wà ní ìbámu — target tí a bá ṣàfikún sí ojú-ọ̀nà kan láì ṣàfikún rẹ̀ sí àwọn yòókù yóò mú kí àkójọpọ̀ ìdánwò kùnà dípò kí yíyapa ṣẹlẹ̀ ní ìdákẹ́jẹ́. --- ## 1. Àkójọ Kóòdù CLI (irinṣẹ́ 27) Gbogbo irinṣẹ́ tó hàn nínú `/dashboard/cli-code`. Àwọn tó ní `baseUrlSupport: none` ni a so nípasẹ̀ MITM tàbí ìtọ́sọ́nà àfọwọ́ṣe dípò URL ìpìlẹ̀ àkànṣe kan: | id | orúkọ | olùpèsè | 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 | | 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 | Àwọn irinṣẹ́ tó ní `baseUrlSupport: "partial"` máa ńṣàfihàn báàjì "⚠ URL ìpìlẹ̀ apá kan" lórí káàdì dásíbọ́ọ̀dù náà. --- ## 2. Àkójọ Àwọn Aṣojú CLI (irinṣẹ́ 10) Àwọn aṣojú aládàáṣe tí ó hàn nínú `/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. Àwọn Aṣojú ACP (/dashboard/acp-agents) Ojú-ewé yìí (tí a tún sọ orúkọ rẹ̀ láti `/dashboard/agents`) ń ṣàfihàn àwọn CLI tí OmniRoute lè **ṣe ìpilẹ̀ṣẹ̀** gẹ́gẹ́ bí ẹ̀rọ ìmúṣẹ backend nípasẹ̀ ìlànà stdio/ACP. Àkójọ náà ni a ń bójú tó lọ́tọ̀ nínú `src/lib/acp/registry.ts`, kò sì **dọ́gba** pẹ̀lú `CLI_TOOLS`. --- ## 4. Àtòjọ Iṣẹ́ MITM Tí Ó Kù (kò hàn lórí dashboard) Àwọn CLI wọ̀nyí kò ṣe àtìlẹ́yìn fún URL ìpìlẹ̀ àdáni lọ́nà abinibi, a kò sì **ṣe àkójọ wọn** nínú àwọn ojú-ewé CLI Code tàbí CLI Agents. Wọ́n jẹ́ àwọn olùdíje fún ìdásẹ́wọ́lé MITM nínú ètò 11: | CLI | Ìdí | | ------------------- | -------------------------------------------------------------- | | windsurf | BYOK ní ààlà sí àwọn model Claude tí a yàn + URL/token ilé-iṣẹ́ | | amp | Ètò alákóso tí ó pa mọ́ (Sourcegraph) | | amazon-q / kiro-cli | Ìfàṣẹsí AWS SSO, kò sí URL àdáni | | cowork | Anthropic Desktop, kò sí endpoint tí a lè ṣètò | Wo `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md` fún gbogbo ìtọ́kasí-agbelebu náà. --- ## 5. API Ìṣàwárí Ọ̀pọ̀lọpọ̀ Gbogbo ìṣàwárí irinṣẹ́ ni a ṣàkójọpọ̀ nípasẹ̀ endpoint kan ṣoṣo: **`GET /api/cli-tools/all-statuses`** - Ìfàṣẹsí: `requireCliToolsAuth(request)` (kannáà bí àwọn route `/api/cli-tools/` yòókù) - Ó ń dá padà: `Record` (type: `src/shared/types/cliBatchStatus.ts`) - Ọgbọ́n: `Promise.all` lórí gbogbo irinṣẹ́, àkókò ìdádúró 5s fún irinṣẹ́ kọ̀ọ̀kan - Cache: LRU inú-memory tí a ṣe atọ́ka rẹ̀ nípasẹ̀ `mtime` fáìlì config. A máa sọ cache di asán nígbà tí mtime bá yí padà. A máa tún un ṣe nígbà tí server bá tún bẹ̀rẹ̀. Ìrísí ìdáhùn fún irinṣẹ́ kọ̀ọ̀kan: ```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; // a ti sọ di mímọ́, kò sí àwọn stack trace } ``` --- ## 6. Àwọn Olùṣàkóso Ètò fún Àwọn Irinṣẹ́ Tuntun Àwọn irinṣẹ́ tuntun tí ó ní `configType: "custom"` ní àwọn ipa-ọ̀nà API ètò tí a yà sọ́tọ̀ fún wọn: | Ipa-ọ̀nà | Irinṣẹ́ | | ------------------------------------------- | -------------------------------------------------------------------- | | `POST /api/cli-tools/forge-settings` | ForgeCode (.forge.toml) | | `POST /api/cli-tools/jcode-settings` | jcode (àmì --base-url) | | `POST /api/cli-tools/deepseek-tui-settings` | DeepSeek TUI (OPENAI_BASE_URL, ti àtijọ́) | | `POST /api/cli-tools/codewhale-settings` | CodeWhale (OPENAI_BASE_URL, àkọ́kọ́ + ìmúdọ́gba `~/.deepseek` ti àtijọ́) | | `POST /api/cli-tools/smelt-settings` | Smelt | | `POST /api/cli-tools/pi-settings` | Aṣojú ìkọ́ kóòdù 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` + kọ́kọ́rọ́ `.env` tí a yà sọ́tọ̀) | Gbogbo àwọn ipa-ọ̀nà lo `sanitizeErrorMessage()` fún àwọn ìdáhùn àṣìṣe (Òfin Tí Kò Ṣeé Yípadà #12). --- ## 7. Ìṣètò Àwọn Ojú-ìwé Pátákó Ìṣàkóso ### Àwọn Kóòdù CLI (`/dashboard/cli-code`) - `src/app/(dashboard)/dashboard/cli-code/page.tsx` — àkójọpọ̀ ẹ̀ka apèsè - `src/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx` — àkój ọ̀nà oníbàárà - `src/app/(dashboard)/dashboard/cli-code/[id]/page.tsx` — ojú-ìwé kúlẹ̀kúlẹ̀ irinṣẹ́ - `src/app/(dashboard)/dashboard/cli-code/components/` — káàdì irinṣẹ́ àkànṣe 12 + `ToolDetailClient.tsx` ### Àwọn Aṣojú CLI (`/dashboard/cli-agents`) - `src/app/(dashboard)/dashboard/cli-agents/page.tsx` — àkójọpọ̀ ẹ̀ka apèsè - `src/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx` — àkój ọ̀nà oníbàárà - `src/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx` — tún lo `ToolDetailClient` ### Àwọn Aṣojú ACP (`/dashboard/acp-agents`) - `src/app/(dashboard)/dashboard/acp-agents/page.tsx` — àkójọpọ̀ ẹ̀ka apèsè (tí a gbé láti `agents/`) ### Àwọn Àkójọpọ̀ UI Pínpín (`src/shared/components/cli/`) | Fáìlì | Ìdí | | ----------------------- | --------------------------------------------- | | `CliToolCard.tsx` | Káàdì ipò ọlọ́gbọ́n (ìmúdájú + ètò + ibi-ìparí) | | `CliConceptCard.tsx` | Káàdì àlàyé èrò fún ojú-ìwé kọ̀ọ̀kan | | `CliComparisonCard.tsx` | Ìfiwéra oníògún mẹ́ta láàrín àwọn irú CLI | | `BaseUrlSelect.tsx` | Àkójọ ibi-ìparí (Agbègbè/Àwọsánmà/Àkànṣe) | | `ApiKeySelect.tsx` | Olùyan kọ́kọ́rọ́ API | | `ManualConfigModal.tsx` | Fèrèsé àkànṣe àjákù ètò tí a lè ṣe àdàkọ | ### Hook Pínpín (`src/shared/hooks/cli/`) | Fáìlì | Ìdí | | ------------------------- | ----------------------------------------------------------------------- | | `useToolBatchStatuses.ts` | Ń mú `/api/cli-tools/all-statuses`, ó sì ń ṣàkóso ipò ìgbàwọlé/ìsọdọ̀tun | --- ## 8. i18n Àwọn namespace tuntun tí a ṣàfikún nínú ètò 14 F9: | Namespace | Ète | | ----------- | ------------------------------------------------------------------------------------- | | `cliCommon` | Àwọn ọ̀rọ̀ tí a pín papọ̀ (àwọn àmì káàdì, àwọn ọ̀rọ̀ èrò/ìfiwéra, àwọn àmì ojú-ewé àlàyé) | | `cliCode` | Àwọn ọ̀rọ̀ ojú-ewé CLI Code | | `cliAgents` | Àwọn ọ̀rọ̀ ojú-ewé CLI Agents | | `acpAgents` | Àwọn ọ̀rọ̀ ojú-ewé ACP Agents | Àwọn ìtumọ̀ PT-BR àti EN ní kíkún wà. Àwọn locale 39 mìíràn máa ń padà sí EN láìfọwọ́sí nípasẹ̀ ìdapọ̀ ní ìpele namespace nínú `src/i18n/request.ts`. --- ## 9. Ìbẹ̀rẹ̀ Kíákíá ### Ìgbésẹ̀ 1 — Gba Kọ́kọ́rọ́ API OmniRoute 1. Ṣí `/dashboard/api-manager` → **Ṣẹ̀dá Kọ́kọ́rọ́ API** 2. Fún un ní orúkọ (fún àpẹẹrẹ, `cli-tools`) kí o sì yan gbogbo àwọn àṣẹ ìwọlé 3. Ṣe àdàkọ kọ́kọ́rọ́ náà — ìwọ yóò nílò rẹ̀ fún gbogbo CLI tó wà nísàlẹ̀ > Kọ́kọ́rọ́ rẹ máa rí bíi: `sk-xxxxxxxxxxxxxxxx-xxxxxxxxx` --- ### Ìgbésẹ̀ 2 — Fi Àwọn Irinṣẹ́ CLI Sori Ẹ̀rọ Gbogbo àwọn irinṣẹ́ tó dá lórí npm nílò Node.js 22.22.2+ tà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 (a lè ṣe ìfilọ́lẹ̀ rẹ̀ nípasẹ̀ `omniroute run gemini` → ojú-ọ̀nà /v1beta) npm install -g @google/gemini-cli # Aider pip install aider-chat # Smelt cargo install smelt # Ó dá lórí Rust # Aṣojú ìkọ̀wé kóòdù Pi # wo https://github.com/zechnerj/pi-coding-agent fún bí a ṣe ń fi í sori ẹrọ # jcode # wo https://github.com/1jehuang/jcode fún bí a ṣe ń fi í sori ẹrọ ``` --- ### Ìgbésẹ̀ 3 — Ṣètò Nípasẹ̀ Dashboard 1. Lọ sí `http://localhost:20128/dashboard/cli-code` 2. Wá irinṣẹ́ rẹ nínú grid náà 3. Tẹ káàdì náà láti ṣí ojú-ewé àlàyé irinṣẹ́ 4. Yan kọ́kọ́rọ́ API rẹ àti URL ìpìlẹ̀ 5. Tẹ **Lo Àtòjọ Ètò** tàbí ṣe àdàkọ àjákù àtòjọ ètò àfọwọ́ṣe náà --- ### Ìgbésẹ̀ 4 — Ṣètò Àwọn Onírúurú Àyíká Àgbáyé ```bash # Endpoint Àgbáyé 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 ń ka GOOGLE_GEMINI_BASE_URL ní ROOT (SDK rẹ̀ fúnra rẹ̀ máa ń fi /v1beta/... kún un) export GOOGLE_GEMINI_BASE_URL="http://localhost:20128" export GEMINI_API_KEY="sk-your-omniroute-key" ``` > Fún **server jíjìn**, rọ́pò `localhost:20128` pẹ̀lú IP tàbí domain server náà, > fún àpẹẹrẹ `http://:20128`. --- ### Ìgbésẹ̀ 4 — Ṣètò Irinṣẹ́ Kọ̀ọ̀kan #### Claude Code ```bash # Ṣẹ̀dá ~/.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 ``` Lo gbòǹgbò gateway Anthropic àpapọ̀ fún Claude Code. Má ṣe fi `/v1` kún un níbí. **Ìdánwò:** `claude "say hello"` --- #### OpenAI Codex Codex òde òní (v0.137+) ń ka `~/.codex/config.toml` nìkan — `config.yaml` àtijọ́ jẹ́ ti CLI npm àtijọ́, a sì máa ń kọjá rẹ̀ láìfi ìkìlọ̀ hàn. Kọ́kọ́rọ́ API náà dúró nínú onírúurú àyíká `OMNIROUTE_API_KEY` (`env_key`), kì í ṣe nínú fáìlì náà: ```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" ``` Àkíyèsí kíkún (àwọn profile, `wire_api`, àwọn window context): [CODEX-CLI-CONFIGURATION.md](../guides/CODEX-CLI-CONFIGURATION.md). **Ìdánwò:** `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 ``` **Ìdánwò:** `opencode` > Lo `opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant high` > láti fi àwọn variant ìrònú ránṣẹ́. --- #### Cline (CLI tàbí VS Code) **Ìpo 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 ``` **Ìpo VS Code:** Àwọn ètò extension Cline → Olùpèsè API: `OpenAI Compatible` → URL Ìpìlẹ̀: `http://localhost:20128/v1` Tàbí lo dashboard OmniRoute → **Àwọn Irinṣẹ́ CLI → Cline → Lo Àtòjọ Ètò**. --- #### KiloCode (CLI tàbí VS Code) **Ìpo CLI:** ```bash kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key ``` **Àwọn ètò VS Code:** ```json { "kilo-code.openAiBaseUrl": "http://localhost:20128/v1", "kilo-code.apiKey": "sk-your-omniroute-key" } ``` Tàbí lo dashboard OmniRoute → **Àwọn Irinṣẹ́ CLI → KiloCode → Lo Àtòjọ Ètò**. --- #### Continue (Extension VS Code) Ṣàtúnṣe `~/.continue/config.yaml`: ```yaml models: - name: OmniRoute provider: openai model: auto apiBase: http://localhost:20128/v1 apiKey: sk-your-omniroute-key default: true ``` Tún VS Code bẹ̀rẹ̀ lẹ́yìn ṣíṣe àtúnṣe. --- #### VS Code Insiders (`chatLanguageModels.json`) Lo èyí nígbà tí a bá ti ṣètò VS Code Insiders fún àwọn model endpoint àdáni, tí o sì fẹ́ kí OmniRoute ṣiṣẹ́ láìsí field header àdáni. **Ibi tí a dábàá:** - Linux: `~/.config/Code - Insiders/User/chatLanguageModels.json` - Windows: `%APPDATA%/Code - Insiders/User/chatLanguageModels.json` **Àpẹẹrẹ lílo orúkọ àfirọ́pò OmniRoute tí a fi token sí:** ```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" } } ] ``` **Àwọn àkíyèsí:** - Rọ́pò `sk-your-omniroute-key` pẹ̀lú kọ́kọ́rọ́ API tí a ṣẹ̀dá nínú OmniRoute. - Ààyè `url` gbọ́dọ̀ tọ́ka sí `/api/v1/vscode/{token}/chat/completions`. - Ààyè `modelsUrl` gbọ́dọ̀ tọ́ka sí `/api/v1/vscode/{token}/models`. - Yan ìṣàn `/v1` déédéé + àkọlé Bearer nígbà tí client bá ṣe àtìlẹ́yìn fún àwọn àkọlé àdáni. - Àwọn token tí a fi sínú URL jẹ́ ọ̀nà àfikún fún ìbámu, wọ́n sì lè hàn nínú àwọn àkọsílẹ̀ editor tàbí ìtàn proxy. --- #### Kiro CLI (Amazon) ```bash # Wọlé sí àkọọ́lẹ̀ AWS/Kiro rẹ: kiro-cli login # CLI náà ń lo ìfàṣẹsí tirẹ̀ — a kò nílò OmniRoute gẹ́gẹ́ bí backend fún Kiro CLI fúnra rẹ̀. # Lo kiro-cli lẹ́gbẹ̀ẹ́ OmniRoute fún àwọn irinṣẹ́ mìíràn. kiro-cli status ``` Fún app desktop **Kiro IDE**, lo endpoint MITM tí OmniRoute ṣí sílẹ̀ lábẹ́ `/dashboard/cli-tools → Kiro`. --- ## 10. CLI OmniRoute Abẹ́nú Fáìlì aláṣiṣẹ́ `omniroute` ń pèsè àwọn àṣẹ fún ìṣàkóso ìgbésí-ayé olupin, ìṣètò, ìwádìí ìṣòro, àti ìṣàkóso olùpèsè. Ojú-ìwọlé: `bin/omniroute.mjs`. ```bash omniroute # Bẹ̀rẹ̀ olupin (port àìyípadà 20128) omniroute setup # Olùrànlọ́wọ́ ìṣètò alábáṣepọ̀ omniroute doctor # Ṣàyẹ̀wò àtòjọ-ètò, DB, àwọn port, runtime omniroute providers list # Àwọn ìsopọ̀ olùpèsè tí a ti ṣètò omniroute providers test-all # Dán gbogbo ìsopọ̀ tó ń ṣiṣẹ́ wò omniroute reset-password # Tún ọ̀rọ̀ aṣínà alákòóso ṣe omniroute logs # Ṣàn àwọn àkọsílẹ̀ ìbéèrè omniroute health # Ìlera kíkún (breakers, cache, memory) omniroute --version # Ṣàfihàn ẹ̀yà omniroute --help # Ṣàfihàn gbogbo àwọn àṣẹ ``` ### Ìṣètò & Ìpilẹ̀ṣẹ̀ ```bash omniroute setup # Olùrànlọ́wọ́ ìṣètò alábáṣepọ̀ omniroute setup --non-interactive # Ipò CI/àìfọwọ́ṣe (ń ka env vars + flags) omniroute setup --password '' # Ṣètò ọ̀rọ̀ aṣínà alákòóso ní tààrà omniroute setup --add-provider \ --provider openai \ --api-key '' \ --test-provider # Ṣàfikún olùpèsè, kí o sì dán an wò lẹ́ẹ̀kan náà ``` Àwọn environment variables tí a mọ̀ fún ìṣètò àìbáṣepọ̀: | Var | Ète | | ------------------- | --------------------------------------------------------------------- | | `OMNIROUTE_API_KEY` | Kọ́kọ́rọ́ API olùpèsè (tí a so mọ́ `--api-key` nípasẹ̀ Commander `.env()`) | | `DATA_DIR` | Rọ́pò ibi ìpamọ́ dátà OmniRoute | Gbogbo àwọn ìwọlé àìbáṣepọ̀ yòókù ni a ń fi ránṣẹ́ gẹ́gẹ́ bí flags, kì í ṣe environment variables: `--password`, `--provider`, `--provider-name`, `--provider-base-url`, `--default-model` (wo àwọn àṣàyàn `omniroute setup` lókè). ### Ìwádìí Ìṣòro ```bash omniroute doctor # Ṣàyẹ̀wò àtòjọ-ètò, DB, àwọn port, runtime, memory, àti bóyá olupin wà láàyè omniroute doctor --json # JSON tí ẹ̀rọ lè kà omniroute doctor --no-liveness # Fò ìdánwò ìlera HTTP kọjá omniroute doctor --host 0.0.0.0 # Rọ́pò host ìṣàyẹ̀wò bóyá olupin wà láàyè omniroute doctor --liveness-url # Rọ́pò URL endpoint ìlera ní ẹ̀kúnrẹ́rẹ́ ``` Doctor ń ṣe àwọn àyẹ̀wò wọ̀nyí: `Config`, `Database`, `Storage/encryption`, `Port availability`, `Node runtime`, `Native binary` (better-sqlite3), `Memory`, àti `Server liveness`. Yóò jáde pẹ̀lú kóòdù tí kì í ṣe odo bí àyẹ̀wò èyíkéyìí bá jẹ́ `fail`. ### Ìṣàkóso Olùpèsè ```bash omniroute providers available # Kátálọ́ọ̀gù olùpèsè OmniRoute omniroute providers available --search openai # Ṣe àlẹ̀mọ́ kátálọ́ọ̀gù nípa id/orúkọ/alias/ẹ̀ka omniroute providers available --category api-key # Ṣe àlẹ̀mọ́ nípa ẹ̀ka (api-key, oauth, free, ...) omniroute providers available --json # JSON tí ẹ̀rọ lè kà omniroute providers list # Àwọn ìsopọ̀ olùpèsè tí a ti ṣètò omniroute providers list --json omniroute providers test # Dán ìsopọ̀ kan tí a ti ṣètò wò omniroute providers test-all # Dán gbogbo ìsopọ̀ tó ń ṣiṣẹ́ wò omniroute providers validate # Ìfọwọ́sí ìgbékalẹ̀ ti abẹ́nú nìkan omniroute providers add --credential-env PROVIDER_KEY omniroute providers import ./providers.json --dry-run --json omniroute providers auth # Ìṣàn OAuth tó ti wà omniroute providers edit --default-model omniroute providers remove --yes ``` `providers add/import/auth/edit/remove` kọ́kọ́ lo API, nítorí náà wọ́n ń ṣiṣẹ́ lòdì sí àyíká abẹ́nú tàbí jíjìnnà tó ń ṣiṣẹ́. Ó yẹ kí ìwọlé ẹ̀rí ìdánimọ̀ lo `--credential-stdin` tàbí `--credential-env`; `--dry-run --json` ń jabo nìkan nípa wíwà/ìrísí tí a ti fi pamọ́. `providers available` ń ka kátálọ́ọ̀gù OmniRoute; `providers list/test/test-all/validate` ń pa ìhùwàsí SQLite abẹ́nú wọn mọ́, wọn kò sì nílò kí olupin máa ṣiṣẹ́. Fún node àkànṣe tó bá OpenAI mu tàbí tó bá Anthropic mu, so àwọn ẹ̀rí ìdánimọ̀ mọ́ ID node tí `omniroute nodes add` dá padà, ní lílo `omniroute keys add "$NODE_ID" --stdin`. Èyí nílò olupin tó ń ṣiṣẹ́ àti ìfàṣẹsí ìṣàkóso fún àyíká tó ń ṣiṣẹ́. CLI náà ń lo `POST /api/providers`, èyí tí ń fọwọ́sí node náà, tí ó sì ń da àwọn ètò endpoint rẹ̀ kọ sínú ìsopọ̀ náà. Node tí kò sí, ìkùnà ìfàṣẹsí, tàbí olupin tí kò sí nílẹ̀ yóò dá àṣìṣe padà láì dá ẹ̀rí ìdánimọ̀ abẹ́nú àfidípò sílẹ̀. `nodes add --base-url` ń ṣètò endpoint node; ó yàtọ̀ sí àdírẹ́sì olupin nínú `OMNIROUTE_BASE_URL`. Fún àwọn fáìlì OpenAPI, lo `omniroute openapi dump --format json --out ./openapi.json`; `--output` àgbáyé ń yan ìṣètò àfihàn CLI, kì í ṣe orúkọ fáìlì ibi tí a ó kọ sí. ### Ìmúpadàbọ̀sípò & Àtúntò ```bash omniroute reset-password # Tún ọ̀rọ̀ aṣínà alákòóso ṣe (bákan náà: omniroute-reset-password) omniroute reset-encrypted-columns # Ṣàfihàn ìkìlọ̀ + ìdánwò gbígbẹ fún àtúntò ẹ̀rí ìdánimọ̀ tó ní ìfipamọ́ omniroute reset-encrypted-columns --force # Yọ àwọn ẹ̀rí ìdánimọ̀ tó ní ìfipamọ́ kúrò ní SQLite ní tòótọ́ ``` ### Ìkó Ẹ̀rí Ìdánimọ̀ Jáde (⚠ lò ó pẹ̀lú ìṣọ́ra) ```bash omniroute auth export # Ṣàfihàn ìkìlọ̀ + ibodè ìmúdájú — kò ní wọ DB omniroute auth export --force # Kó àwọn ẹ̀rí ìdánimọ̀ TÍ A TI ṢÍ PAMỌ́ fún GBOGBO ìsopọ̀ jáde sí stdout gẹ́gẹ́ bí JSON omniroute auth export --force --id # Kó ìsopọ̀ tó bá mu nìkan jáde omniroute auth export --force --format env # Ṣe àgbéjáde àwọn ìlà OMNIROUTE__= omniroute auth export --force --out creds.json # Kọ sínú fáìlì kan (tí a dá pẹ̀lú àṣẹ 0600) ``` `auth export` jẹ́ **fún agbègbè nìkan** (kíkà SQLite tààrà, kò sí ipa-ọ̀nà HTTP) ó sì mọ̀ọ́mọ̀ ń tẹ̀ jáde/kọ àwọn iye `apiKey`/`accessToken`/`refreshToken`/`idToken` ní **ọ̀rọ̀ gbangba** — èyí ni ẹ̀ya iṣẹ́ náà, kì í ṣe àṣìṣe. Kò sí ohun tí a ó kà láti inú ibi ìpamọ́ dátà, bẹ́ẹ̀ ni kò sí ohun tí a ó tú ìfipamọ́ rẹ̀, láìsí `--force`. Àkíyèsí ìkìlọ̀ kan máa ń tẹ̀ jáde sí stderr nígbà gbogbo kí ọ̀rọ̀ gbangba èyíkéyìí tó jáde. Ó nílò kí a ṣètò `STORAGE_ENCRYPTION_KEY`. Ààyè kan tí ìtú-ìfipamọ́ rẹ̀ bá kùnà (kọ́kọ́rọ́ tí ó ti pẹ́, ciphertext tó bàjẹ́) ni a ó jùmọ̀ ròyìn gẹ́gẹ́ bí `DecryptFailed: true` dípò fífi gbogbo ìkójáde náà dúró tàbí jíjẹ́ kí àṣìṣe abẹ́lẹ̀ náà tú jáde. ### Àwọn àṣẹ abẹ́ mìíràn Àwọn wọ̀nyí rò pé olupin OmniRoute kan ń ṣiṣẹ́, àyàfi bí a bá sọ pé ó yàtọ̀: ```bash omniroute status # Ipò àkókò-ṣiṣẹ́ tó péye omniroute logs # Ṣàn àwọn àkọsílẹ̀ ìbéèrè (--json, --search, --follow) omniroute config list # Ṣàfihàn àwọn irinṣẹ́ CLI tí a ti ṣètò omniroute provider list # Ṣe àtòjọ àwọn olùpèsè tó wà (orúkọ àfikún fún providers list) omniroute provider add # Forúkọ OmniRoute sílẹ̀ gẹ́gẹ́ bí olùpèsè lórí irinṣẹ́ kan omniroute keys add | list | remove # Ṣàkóso àwọn kọ́kọ́rọ́ API omniroute models [provider] # Ṣe àtòjọ àwọn àwòṣe (--json, --search) omniroute combo list | switch | create | delete omniroute backup # Ya àwòrán-ìpamọ́ config + DB omniroute restore # Mú padà láti inú àwòrán-ìpamọ́ tẹ́lẹ̀ omniroute health # Ìlera tó kúnrẹ́rẹ́ (breakers, cache, memory) omniroute quota # Lílò iye ìpín olùpèsè omniroute cache # Ipò cache omniroute cache clear # Pa semantic + signature caches rẹ́ omniroute mcp status | restart # Ipò olupin MCP / tún un bẹ̀rẹ̀ omniroute a2a status | card # Ipò olupin A2A / káàdì aṣojú omniroute tunnel list | create | stop # Ṣàkóso àwọn tunnel (cloudflare/tailscale/ngrok) omniroute env show | get | set # Ṣàyẹ̀wò / ṣètò àwọn onírúurú env (fún ìgbà díẹ̀) omniroute test # Ìdánwò kíákíá ti ìsopọ̀ olùpèsè omniroute update # Ṣàyẹ̀wò àwọn ìmúdójúìwọ̀n omniroute completion # Ṣẹ̀dá ìparí àṣẹ shell ``` ### Àwọn àsíá tó wọ́pọ̀ | Àsíá | Àpèjúwe | | ------------------- | ------------------------------------------------------------- | | `--no-open` | Má ṣe ṣí aṣàwákiri fúnra rẹ̀ nígbà ìbẹ̀rẹ̀ | | `--port ` | Rọ́pò port API (àìyípadà 20128) | | `--mcp` | Ṣiṣẹ́ gẹ́gẹ́ bí olupin MCP lórí stdio (fún àwọn IDE) | | `--non-interactive` | Ipò CI (kò sí àwọn ìbéèrè; ó ń kà láti env/àwọn àsíá) | | `--json` | Àbájáde JSON tí ẹ̀rọ lè kà (doctor, providers, àti bẹ́ẹ̀ bẹ́ẹ̀ lọ) | | `--help`, `-h` | Ṣàfihàn ìrànlọ́wọ́ tó jẹ́ ti àṣẹ náà | | `--version`, `-v` | Tẹ ẹ̀yà tí a ti fi sílẹ̀ jáde | --- ## Àwọn Ojú-òpó API Tó Wà | Ojú-òpó | Àpèjúwe | Ohun Tí A Fi Ń Lò Ó | | -------------------------- | --------------------------------- | ----------------------------------- | | `/v1/chat/completions` | Ìfọ̀rọ̀wérọ̀ boṣewa (gbogbo olùpèsè) | Gbogbo irinṣẹ́ òde òní | | `/v1/responses` | API Responses (ìlànà OpenAI) | Codex, àwọn ìṣàn-iṣẹ́ aṣojú | | `/v1/completions` | Àwọn ìparí ọ̀rọ̀ àtijọ́ | Àwọn irinṣẹ́ àtijọ́ tó ń lo `prompt:` | | `/v1/embeddings` | Àwọn àfikún-nọ́ńbà ọ̀rọ̀ | RAG, ìṣàwárí | | `/v1/images/generations` | Ṣíṣẹ̀dá àwòrán | GPT-Image, Flux, àti bẹ́ẹ̀ bẹ́ẹ̀ lọ | | `/v1/audio/speech` | Ọ̀rọ̀ sí ohùn | ElevenLabs, OpenAI TTS | | `/v1/audio/transcriptions` | Ohùn sí ọ̀rọ̀ | Deepgram, AssemblyAI | Àwọn àpẹẹrẹ tí ó ṣe tán láti lẹ̀ mọ́ pẹ̀lú URL OmniRoute tí a fi token sí: ```txt Àpẹẹrẹ token: sk-a3ab3c080beaee3a-69f4a4-070d71af Ìpìlẹ̀ OpenAI boṣewa: http://localhost:20128/v1 Àwọn model VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/models Ìfọ̀rọ̀wérọ̀ VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completions Àwọn ìdáhùn VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responses Àwọn tag Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tags Ìfọ̀rọ̀wérọ̀ Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chat ``` --- ## Yíyanjú Ìṣòro | Àṣìṣe | Okùnfà | Àtúnṣe | | ----------------------------------------------- | ----------------------------- | ---------------------------------------------------- | | `Connection refused` | OmniRoute kò ṣiṣẹ́ | `omniroute serve` | | `401 Unauthorized` | API key tí kò tọ́ | Ṣàyẹ̀wò nínú `/dashboard/api-manager` | | `No combo configured` | Kò sí combo ìtọ́sọ́nà tó ń ṣiṣẹ́ | Ṣètò rẹ̀ nínú `/dashboard/combos` | | CLI fi "not installed" hàn | Binary kò sí nínú PATH | Ṣàyẹ̀wò `which ` | | Dashboard fi "not detected" hàn lẹ́yìn fífi sílẹ̀ | Cache ti di àtijọ́ | Tẹ "⟳ Refresh detection" nínú dashboard | | Ọ̀nà àsopọ̀ àtijọ́ `/dashboard/cli-tools` | Bookmark ṣáájú-v3.8.6 | A darí rẹ̀ laifọwọ́yi sí `/dashboard/cli-code` (308) | | Ọ̀nà àsopọ̀ àtijọ́ `/dashboard/agents` | Bookmark ṣáájú-v3.8.6 | A darí rẹ̀ laifọwọ́yi sí `/dashboard/acp-agents` (308) | ## Ṣàkóso ìlànà inference-key pẹ̀lú OmniRoute CLI Lo àyíká ìṣàkóso tí a ti jẹ́rìí sí (wo [Ipo Jíjìn](../guides/REMOTE-MODE.md)) láti ṣàyẹ̀wò tàbí ṣe ìmúdójúìwọ̀n inference key tó ti wà nípasẹ̀ ID rẹ̀: ```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` jẹ́ orúkọ-àfirọ́pò fún `--model-access-mode all`. Ìmúdójúìwọ̀n náà yóò pa àtòjọ model tí a gbà láàyè rẹ́. Ó ń pa scopes, àwọn òfin ìsopọ̀, àwọn model tí a dí, àwọn ààlà oṣùwọ̀n àti àwọn ààlà ìnáwó mọ́, nítorí náà àwọn ìṣàkóso mìíràn wọ̀nyẹn ṣì lè kọ ìbéèrè kan. Ṣíṣe pàtó `--allowed-models ""` tún máa yan `all`; darapọ̀ mọ́ `--model-access-mode restricted` láti jẹ́ kí key tó ní ìhámọ́ dúró láìsí model kankan tí a gbà láàyè. Àtòjọ tí kò ṣófo, tí a fi àmì-kọ́má yà, máa yan `restricted` àyàfi tí a bá sọ ọ́ ní pàtó. A ó kọ ìpapọ̀ `all` tó tako ara rẹ̀ pẹ̀lú àtòjọ ìgbàláàyè tí kò ṣófo kí a tó fi ìbéèrè ránṣẹ́. `--rate-limit 30` ń ṣètò iye ìbéèrè fún ìṣẹ́jú kan, ó sì ń pa àwọn òfin fún àwọn àkókò mìíràn mọ́. `--max-cost 5` ń mú ààlà USD ojoojúmọ́ ṣiṣẹ́ láìyí ààlà ọ̀sọ̀ọ̀sẹ̀ padà; `--max-cost 0` ń yọ ààlà ojoojúmọ́ kúrò, ó sì ń pa toggle ààlà lílò tó wà àti ààlà ọ̀sọ̀ọ̀sẹ̀ mọ́. Àwọn field ìlànà tí a kò fi sínú rẹ̀ kò ní yí padà. Àwọn ìyípadà oṣùwọ̀n máa kọ́kọ́ ka ìlànà tó wà lọ́wọ́lọ́wọ́; yẹra fún ṣíṣe àtúnṣe lẹ́ẹ̀kan náà sí array rate-limit ti key kan náà. Àwọn command ìlànà ń lo `GET`/`PATCH /api/keys/{id}` tí a ti jẹ́rìí sí, wọ́n sì ń tẹ̀lé àyíká tó ń ṣiṣẹ́ àti àṣàyàn àgbáyé `--api-key`. Àbájáde JSON ní àwọn field ìlànà nìkan, láìsí key tí a tọ́jú tàbí àwòrán rẹ̀ tí a bo mọ́lẹ̀. Credential fún inference nìkan kò lè fúnni láṣẹ fún àwọn ìyípadà ìṣàkóso. 401/403 túmọ̀ sí pé a gbọ́dọ̀ ṣàyẹ̀wò credential ìṣàkóso àti àyíká; kò fi hàn pé ìkùnà CLI-token tàbí salt abẹ́lé wà. Wo [Token CLI](../security/CLI_TOKEN.md) fún àdéhùn ìjẹ́rìísí abẹ́lé tó yàtọ̀.