Files
OmniRoute/docs/i18n/yo/docs/reference/CLI-TOOLS.md
Diego Rodrigues de Sa e Souza b637350680 fix(docs): re-sync the 65 documentation mirror sets; section-level docs pipeline; drift gate blocking (#13940)
1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors.

⚠️ base-red inherited: #12732
2026-09-17 02:55:31 -03:00

47 KiB
Raw Blame History

CLI Tools — OmniRoute (Yorùbá)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 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 · 🇨🇳 zh-CN · 🇹🇼 zh-TW


Ìgbà ìkẹyìn tí a ṣe àfikún: 2026-08-23

OmniRoute ń ṣiṣẹ́ pọ̀ pẹ̀lú ẹ̀ka mẹ́ta ti àwọn irinṣẹ́ CLI tí a pín káàkiri àwọn ojú-ewé dashboard mẹ́ta ọ̀tọ̀ọ̀tọ̀:

Ojú-ewé Route Èròǹgbà Iye
Àwọn Kóòdù CLI /dashboard/cli-code Àwọn irinṣẹ́ kóòdù tí o darí sí OmniRoute (Client → CLI → OmniRoute → Olùpèsè) 26
Àwọn Aṣojú CLI /dashboard/cli-agents Àwọn aṣojú aládàáṣiṣẹ́ tí o darí sí OmniRoute (ìṣàn kan náà, ààyè tó gbòòrò) 10
Àwọn Aṣojú ACP /dashboard/acp-agents Àwọn CLI tí OmniRoute ń ṣe ìpilẹ̀ṣẹ̀ 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ṣẹ́

CLI Code's / CLI Agents (ìṣà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í olùpèsè tó yẹ)
    Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ...

ACP Agents (ìṣàn ìdásílẹ̀ òdìkejì):
    Ìbéèrè oníbàárà → OmniRoute → dá CLI sílẹ̀ nípasẹ̀ stdio/ACP → ìdáhùn

Àwọn àǹfààní:

  • Kọ́kọ́rọ́ API kan ṣoṣo láti ṣàkóso gbogbo irinṣẹ́
  • Ìtọ́pa iye owó lórí gbogbo àwọn CLI nínú dasibodu
  • Yíyí awoṣe padà láìní láti tún gbogbo irinṣẹ́ ṣe àgbékalẹ̀
  • Ó ń ṣiṣẹ́ lórí ẹ̀rọ agbègbè àti àwọn olupin jíjìn (VPS, Docker, Akamai, Cloudflare Tunnel)

Ṣe àgbékalẹ̀ aládàáṣe pẹ̀lú setup-*

O kò nílò láti kọ àgbékalẹ̀ 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ó ń ka àkójọ awoṣe tó ń ṣiṣẹ́ lọ́wọ́lọ́wọ́ láti inú OmniRoute tó ń ṣiṣẹ́ (ní agbègbè tàbí ní jíjìn), tó sì ń kọ àgbékalẹ̀ irinṣẹ́ náà fúnra rẹ̀ sórí ẹ̀rọ rẹ:

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

Ọ̀kọ̀ọ̀kan gba --remote <url> --api-key <key> (ṣètò irinṣẹ́ agbègbè kan láti lo OmniRoute jíjìn), --dry-run (ṣàgbéyẹ̀wò láìkọ ohunkóhun), àti --port. Àwọn irinṣẹ́ tí kò ní ìṣàwárí awoṣe aládàáṣe (Cline, Kilo, Roo, Goose, Aider, Qwen, 5dive) gba --model <id> (à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: ó ń ṣètò ẹgbẹ́ àwọn aṣojú 5dive nípasẹ̀ kíkọ prófáìlì ìfàṣẹsí tí root ni lórí olupin ẹgbẹ́ náà, nítorí náà ó tún ara rẹ̀ ṣiṣẹ́ nípasẹ̀ sudo kò sì ní ipò jíjìn tirẹ̀. Láti ṣe ìfilọ́lẹ̀ CLI kan pẹ̀lú env tó yẹ tí a ti fi sínú rẹ̀ láìkọ àgbékalẹ̀ kankan rárá, lo olùfilọ́lẹ̀ gbogbogbò omniroute run <target> (claude, codex, aider, goose, opencode, qwen, gemini — àwọn ibi-àfojúsùn àti àwọn orúkọ ìnagijẹ wá láti bin/cli/cli-manifest.mjs); àwọn olùfilọ́lẹ̀ irinṣẹ́-kọ̀ọ̀kan àtijọ́ omniroute launch (Claude Code) àti omniroute launch-codex (Codex) ṣì wà. Gemini CLI jẹ́ fún ìfilọ́lẹ̀ nìkan: ó jẹ́ ibi-àfojúsùn 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 àsìá, ti agbègbè sí ti jíjìn, àti àwọn irinṣẹ́ wo ló nílò ìfikún /v1 — wà nínú Àwọn Ìṣopọ̀ CLI.

Ṣíṣe àwọn wọ̀nyí nínú container kan

Àṣẹ setup-* tí a ṣe nínú container OmniRoute máa ń kọ sínú home ti container náà fúnra rẹ̀, èyí tí kò sí CLI kankan lórí host tó máa 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ọ́nisọ́nà dípò kíkọ. Ọ̀nà méjì tí a ṣe àtìlẹ́yìn fún láti tẹ̀síwájú ni — fi CLI sori host kí o sì lo omniroute connect láti sopọ̀ mọ́ container náà, tàbí ṣe bind-mount àwọn àkójọpọ̀ àgbékalẹ̀ kí o sì ṣètò CLI_CONFIG_HOME (prófáìlì compose host). Gbogbo àṣẹ setup-*, pẹ̀lú omniroute configure àti omniroute config set, gba --allow-container-write nígbà tí ṣíṣe àgbékalẹ̀ àwọn CLI ti container náà fúnra rẹ̀ ni ohun tí o túmọ̀ sí gan-an; OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true ṣe ohun kan náà fún olupin náà. Wo Ìtọ́sọ́nà Docker → Ṣíṣe àgbékalẹ̀ àwọn irinṣẹ́ CLI host.

Ojú-ọ̀nà ìmúlò dasibodu náà (POST /api/cli-tools/apply) ń fipá mú ààbò kan náà: nínú container kan, ìkọ̀wé tí ibi-àfojúsùn rẹ̀ kò jẹ́ bind-mounted láti host máa dáhùn pẹ̀lú 422 àti containerEphemeralTarget: true, ọ̀rọ̀ àṣìṣe ààbò náà à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ò rẹ̀; kò sí ohun tí a kọ. dryRun: true ṣì ń ṣiṣẹ́ ní ipò container ó sì máa ń dá àkóónú tí a ṣẹ̀dá + ọ̀nà ibi-àfojúsùn padà láìfọwọ́ kan disiki, kí o lè ṣàgbéyẹ̀wò láti dasibodu kí o sì fi sílò lórí host. Ìhùwàsí yìí jẹ́ ìmọ̀ọ́mọ̀, a sì ń dáàbò bo ó lọ́wọ́ ìpadàsẹ́yìn nípasẹ̀ tests/unit/api/cli-tools/apply-container-guard.test.ts — má ṣe “tún” 422 ṣe nípa yíyọ ààbò náà kúrò.


Orísun Òtítọ́

Kátálọ́ọ̀gù àpapọ̀ náà wà nínú src/shared/constants/cliTools.ts gẹ́gẹ́ bí CLI_TOOLS: Record<string, CliCatalogEntry>.

Àkọọ́lẹ̀ kọ̀ọ̀kan ní àwọn pápá wọ̀nyí (tí a ṣàlàyé nínú src/shared/schemas/cliCatalog.ts):

Pápá Irú Àpèjúwe
category "code" | "agent" Ojú-ewé tí irinṣẹ́ náà máa farahàn sí
vendor string Orísun irinṣẹ́ ("Anthropic", "OSS (P. Gauthier)")
acpSpawnable boolean Ó tún lè ṣiṣẹ́ gẹ́gẹ́ bí ACP Agent (a máa fi báàjì hàn)
baseUrlSupport "full" | "partial" | "none" Ìpele àtìlẹ́yìn endpoint àdáni. "none" = àkójọ iṣẹ́ MITM
configType "env" | "custom" | "guide" | "custom-builder" | "mitm" Ọ̀nà ìṣètò
id, name, color, description, docsUrl boṣewa Àwọn pápá ìfihàn pàtàkì

Àwọn àkọọ́lẹ̀ tí ó ní baseUrlSupport: "none" ni a kì í fi hàn lórí àwọn ojú-ewé dashboard — a forúkọ wọn sílẹ̀ nínú àkójọ iṣẹ́ MITM fún ètò 11 (wo _tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md).

Àwọn ìpele agbára (tí a ṣàkọsílẹ̀ × tí a lè ṣàwárí × tí a lè ṣètò × tí a lè ṣe ìfilọ́lẹ̀)

Kì í ṣe gbogbo irinṣẹ́ tí a ṣàkọsílẹ̀ 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ò ìyapa sì ń mú kí wọ́n wà ní ìbámu:

Ìpele Ìtumọ̀ Ibi tí a ti kéde rẹ̀
Tí a ṣàkọsílẹ̀ Ó farahàn nínú kátálọ́ọ̀gù 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í fáìlì ìṣiṣẹ́/config, àyẹ̀wò ìlera, àwọn ọ̀nà config src/shared/services/cliRuntime.ts (kátálọ́ọ̀gù runtime CLI_TOOLS)
Tí a lè ṣètò omniroute configure <cli> ṣ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 <target> ṣe àtìlẹ́yìn rẹ̀ (a ti ṣàlàyé ìfúnni env/args) bin/cli/cli-manifest.mjs (run: true)

bin/cli/cli-manifest.mjs ni manifẹ́ẹ́sì ìṣiṣẹ́ àṣẹ àṣẹ̀wọlé fún àwọn ojú-ọ̀nà àṣẹ CLI: run, configure àti àwọn amújáde ìparí-àṣẹ shell, gbogbo wọn ni wọ́n ti ń gba àwọn àkójọ target wọn, ìyànjú alias (fún àpẹẹrẹ kilocode/kilo-code/kilo_clikilo) àti àsopọ̀ flag --model láti inú rẹ̀. Olùṣọ́ ìyapa tests/unit/cli/cli-manifest-drift.test.ts ń fìdí rẹ̀ múlẹ̀ pé manifẹ́ẹ́sì náà, kátálọ́ọ̀gù runtime, kátálọ́ọ̀gù 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í ìyapa ṣẹlẹ̀ láìsí ìkìlọ̀.


1. Àkójọ Ohun Èlò CLI Code (ohun èlò 26)

Gbogbo ohun èlò tí ó farahà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:

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

Àwọn ohun èlò tí ó ní baseUrlSupport: "partial" máa ń ṣàfihàn àmì "⚠ URL ìpìlẹ̀ aláìpé" lórí káàdì dashboard 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ú-ìwé yìí (tí a tún sọ orúkọ rẹ̀ láti /dashboard/agents) ń ṣàfihàn àwọn CLI tí OmniRoute lè dá sílẹ̀ gẹ́gẹ́ bí ẹ̀rọ ìṣiṣẹ́ backend nípasẹ̀ ìlànà stdio/ACP. Àkójọ náà ni a ń tọ́jú lọ́tọ̀ nínú src/lib/acp/registry.ts, ó sì yàtọ̀CLI_TOOLS.


4. Àtòjọ Iṣẹ́ MITM Tí Ó Ṣì Kù (kò hàn nínú dashboard)

Àwọn CLI wọ̀nyí kò ṣe àtìlẹ́yìn fún URL ìpìlẹ̀ àdáni nípa ẹ̀dá wọn, a kò sì ṣàkọsílẹ̀ wọn nínú àwọn ojú-ìwé CLI Code tàbí CLI Agents. Wọ́n jẹ́ olùdíje fún ìdásílẹ̀ MITM nínú ètò 11:

CLI Ìdí
windsurf BYOK ní ààlà sí àwọn àwòṣe Claude tí a yàn + URL/token ilé-iṣẹ́
amp Ètò àyíká 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 àtọ́ka-àgbélébùú kíkún.


5. API Ìṣàwárí Ní Ìpele-Ẹgbẹ́

Gbogbo ìṣàwárí irinṣẹ́ ni a kó jọ nípasẹ̀ endpoint kan ṣoṣo:

GET /api/cli-tools/all-statuses

  • Ìfàṣẹ̀sí: requireCliToolsAuth(request) (kannáà bí àwọn route /api/cli-tools/ mìíràn)
  • Ó ń dá padà: Record<toolId, ToolBatchStatus> (irú: src/shared/types/cliBatchStatus.ts)
  • Ọgbọ́n: Promise.all lórí gbogbo àwọn irinṣẹ́, timeout 5s fún irinṣẹ́ kọ̀ọ̀kan
  • Cache: LRU inú-memory tí a ṣe atọ́ka rẹ̀ nípasẹ̀ mtime fáìlì config. Cache yóò di asán nígbà tí mtime bá yí padà. A ó tún un ṣe nígbà tí server bá tún bẹ̀rẹ̀.

Ìrísí ìdáhùn fún irinṣẹ́ kọ̀ọ̀kan:

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 àìléwu, kò sí àwọn stack trace
}

6. Àwọn Olùtọ́jú Ètò fún Àwọn Irinṣẹ́ Tuntun

Àwọn irinṣẹ́ tuntun tí ó ní configType: "custom" ní àwọn ipa-ọ̀nà API ètò àkànṣe:

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ọ̀wé 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 àkànṣe)

Gbogbo àwọn ipa-ọ̀nà ń lo sanitizeErrorMessage() fún àwọn èsì àṣìṣe (Òfin Líle #12).


7. Àwòrán-Ètò Àwọn Ojú-Ìwé Pátákó Ìdarí

Kóòdù CLI (/dashboard/cli-code)

  • src/app/(dashboard)/dashboard/cli-code/page.tsx — àkójọpọ̀ ẹ̀yà apèsè
  • src/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx — àkój àkójọpọ̀ oníbàárà
  • src/app/(dashboard)/dashboard/cli-code/[id]/page.tsx — ojú-ìwé àlàyé 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ọ̀ ẹ̀yà apèsè
  • src/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx — àkój àkójọpọ̀ 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ọ̀ ẹ̀yà apèsè (a gbé láti agents/)

Àwọn Àkójọpọ̀ Ẹ̀yà UI Pínpín (src/shared/components/cli/)

Fáìlì Ète
CliToolCard.tsx Káàdì ipò ọlọ́gbọ́n (àwárí + àtòpọ̀ + ojú-òpó)
CliConceptCard.tsx Káàdì àlàyé èrò fún ojú-ìwé kọ̀ọ̀kan
CliComparisonCard.tsx Àfiwé ọlọ̀wọ̀ mẹ́ta láàárín àwọn irú CLI
BaseUrlSelect.tsx Àkojọ aṣàyàn ojú-òpó (Agbègbè/Àwọsánmà/Àkànṣe)
ApiKeySelect.tsx Aṣàyàn kọ́kọ́rọ́ API
ManualConfigModal.tsx Fèrèsé àkànṣe àjẹkù àtòpọ̀ tí a lè ṣẹ̀dà

Hook Pínpín (src/shared/hooks/cli/)

Fáìlì Ète
useToolBatchStatuses.ts Ń gba /api/cli-tools/all-statuses, ó sì ń ṣàkóso ipò ìrùsókè/ì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 (àwọn àkọlé káàdì, àwọn ọ̀rọ̀ àlàyé èrò/ìfiwéra, àwọn àkọlé ojú-ìwé ẹ̀kúnrẹ́rẹ́)
cliCode Àwọn ọ̀rọ̀ ojú-ìwé CLI Code
cliAgents Àwọn ọ̀rọ̀ ojú-ìwé CLI Agents
acpAgents Àwọn ọ̀rọ̀ ojú-ìwé ACP Agents

Àwọn ìtumọ̀ PT-BR àti EN ní ẹ̀kúnrẹ́rẹ́ 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 àṣẹ
  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:

# 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è bẹ̀rẹ̀ 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ú àkójọpọ̀ náà
  3. Tẹ káàdì náà láti ṣí ojú-ìwé ẹ̀kúnrẹ́rẹ́ irinṣẹ́ náà
  4. Yan kọ́kọ́rọ́ API rẹ àti URL ìpìlẹ̀
  5. Tẹ Lo Ètò tàbí ṣe àdàkọ àjákù ètò àfọwọ́ṣe náà

Ìgbésẹ̀ 4 — Ṣètò Àwọn Àyípadà Àyíká Àgbáyé

# Ojú-ọ̀nà À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ẹ̀ ń 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ìnnà, fi IP tàbí domain server náà rọ́pò localhost:20128, fún àpẹẹrẹ http://<your-server-ip>:20128.


Ìgbésẹ̀ 4 — Ṣètò Irinṣẹ́ Kọ̀ọ̀kan

Claude Code

# Ṣẹ̀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ò ẹnu-ọ̀nà Anthropic tí a ṣọ̀kan 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ọbi ara sí i láìsọ ohunkóhun. Kọ́kọ́rọ́ API wà nínú àyípadà àyíká OMNIROUTE_API_KEY (env_key), kì í sì í wà nínú fáìlì náà:

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"

Ìtọ́kasí ẹ̀kúnrẹ́rẹ́ (àwọn profile, wire_api, àwọn window context): CODEX-CLI-CONFIGURATION.md.

Ìdánwò: 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

Ìdánwò: opencode

Lo opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant high láti fi àwọn variant tó ń ronú ránṣẹ́.


Cline (CLI tàbí VS Code)

Ìpo CLI:

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ò.


KiloCode (CLI tàbí VS Code)

Ìpo CLI:

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

Àwọn ètò VS Code:

{
  "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ò.


Continue (Extension VS Code)

Ṣàtúnṣe ~/.continue/config.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 ṣíṣà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í pápá 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 alias OmniRoute tí a ti fi token sí:

[
  {
    "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ú API key tí a ṣẹ̀dá nínú OmniRoute.
  • Field url gbọ́dọ̀ tọ́ka sí /api/v1/vscode/{token}/chat/completions.
  • Field modelsUrl gbọ́dọ̀ tọ́ka sí /api/v1/vscode/{token}/models.
  • Yan ìlànà /v1 déédéé + Bearer header nígbà tí client bá ṣe àtìlẹ́yìn fún custom headers.
  • À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 log editor tàbí ìtàn proxy.

Kiro CLI (Amazon)

# Wọlé sí account AWS/Kiro rẹ:
kiro-cli login

# CLI náà ń lo auth tirẹ̀ — OmniRoute kò ṣe pàtàkì gẹ́gẹ́ bí backend fún Kiro CLI fúnra rẹ̀.
# Lo kiro-cli lẹ́gbẹ̀ẹ́ OmniRoute fún àwọn tool míì.
kiro-cli status

Fún app desktop Kiro IDE, lo endpoint MITM tí OmniRoute pèsè ní abẹ́ /dashboard/cli-tools → Kiro.


10. OmniRoute CLI Abẹ́nú

Fáìlì aláṣẹ omniroute ń pèsè àwọn àṣẹ fún ìṣàkóso ìgbésí-ayé server, ìṣètò, àyẹ̀wò ìṣòro, àti ìṣàkóso provider. Ibi ìbẹ̀rẹ̀: bin/omniroute.mjs.

omniroute                              # Bẹ̀rẹ̀ server (port àiyípadà 20128)
omniroute setup                        # Olùrànlọ́wọ́ ìṣètò alábàáṣiṣẹ́pọ̀
omniroute doctor                       # Ṣàyẹ̀wò config, DB, ports, runtime
omniroute providers list               # Àwọn ìsopọ̀ provider tí a ti ṣètò
omniroute providers test-all           # Dán gbogbo ìsopọ̀ tó ń ṣiṣẹ́ wò
omniroute reset-password               # Tún ọ̀rọ̀ aṣínà admin ṣe
omniroute logs                         # Ṣàn àwọn àkọsílẹ̀ request
omniroute health                       # Ìlera alálàyé (breakers, cache, memory)
omniroute --version                    # Tẹ version jáde
omniroute --help                       # Ṣàfihàn gbogbo àwọn àṣẹ

Ìṣètò & Ìpilẹ̀ṣẹ̀

omniroute setup                        # Olùrànlọ́wọ́ ìṣètò alábàáṣiṣẹ́pọ̀
omniroute setup --non-interactive      # Ipò CI/automation (ń ka env vars + flags)
omniroute setup --password '<value>'   # Ṣètò ọ̀rọ̀ aṣínà admin ní tààrà
omniroute setup --add-provider \
  --provider openai \
  --api-key '<value>' \
  --test-provider                      # Ṣàfikún provider kan kí o sì dán an wò lẹ́ẹ̀kan náà

Àwọn environment variables tí a mọ̀ fún ìṣètò tí kì í ṣe alábàáṣiṣẹ́pọ̀:

Var Ìdí
OMNIROUTE_API_KEY Kọ́kọ́rọ́ API provider (tí a so mọ́ --api-key nípasẹ̀ Commander .env())
DATA_DIR Rọ́pò ibi ìpamọ́ data OmniRoute

Gbogbo àwọn ìwọlé míì tí kì í ṣe alábàáṣiṣẹ́pọ̀ 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 options omniroute setup lókè).

Àyẹ̀wò Ìṣòro

omniroute doctor                       # Ṣàyẹ̀wò config, DB, ports, runtime, memory, liveness
omniroute doctor --json                # JSON tí ẹ̀rọ lè kà
omniroute doctor --no-liveness         # Fò àyẹ̀wò ìlera HTTP kọjá
omniroute doctor --host 0.0.0.0        # Rọ́pò host liveness
omniroute doctor --liveness-url <url>  # Rọ́pò URL endpoint ìlera ní ẹ̀kúnrẹ́rẹ́

Doctor náà ń ṣe àwọn àyẹ̀wò wọ̀nyí: Config, Database, Storage/encryption, Port availability, Node runtime, Native binary (better-sqlite3), Memory, àti Server liveness. Ó máa jáde pẹ̀lú iye tí kì í ṣe òdo bí àyẹ̀wò èyíkéyìí bá jẹ́ fail.

Ìṣàkóso Provider

omniroute providers available                       # Kátálọ́ọ̀gù provider OmniRoute
omniroute providers available --search openai       # Ṣe àlẹ̀mọ́ kátálọ́ọ̀gù nípasẹ̀ id/orúkọ/alias/category
omniroute providers available --category api-key    # Ṣe àlẹ̀mọ́ nípasẹ̀ category (api-key, oauth, free, ...)
omniroute providers available --json                # JSON tí ẹ̀rọ lè kà

omniroute providers list                            # Àwọn ìsopọ̀ provider tí a ti ṣètò
omniroute providers list --json

omniroute providers test <id|name>                  # 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 agbègbè nìkan
omniroute providers add <provider> --credential-env PROVIDER_KEY
omniroute providers import ./providers.json --dry-run --json
omniroute providers auth <provider>                 # Ìṣàn OAuth tó ti wà
omniroute providers edit <id|name> --default-model <model>
omniroute providers remove <id|name> --yes

providers add/import/auth/edit/remove ń lo API lákọ̀ọ́kọ́, nítorí náà wọ́n ń ṣiṣẹ́ lòdì sí context agbègbè tàbí jíjìn tó ń ṣiṣẹ́. Fún ìwọlé credential, lo --credential-stdin tàbí --credential-env; --dry-run --json ń jabo ìfarahàn/ìrísí tí a ti fi ààbò bo nìkan. providers available ń ka kátálọ́ọ̀gù OmniRoute; providers list/test/test-all/validate ṣì ń pa ìhùwàsí SQLite agbègbè wọn mọ́, wọn kò sì béèrè pé kí server máa ṣiṣẹ́.

Ìmúpadàbọ̀sípò & Àtúntò

omniroute reset-password                # Tún ọ̀rọ̀ aṣínà admin ṣe (bákan náà: omniroute-reset-password)
omniroute reset-encrypted-columns       # Ṣàfihàn ìkìlọ̀ + dry-run fún àtúntò credential tí a ti encrypt
omniroute reset-encrypted-columns --force  # Mú àwọn credential tí a ti encrypt di null ní SQLite ní tòótọ́

Ìkójáde Credential (⚠ lò ó pẹ̀lú ìṣọ́ra)

omniroute auth export                                 # Ṣàfihàn ìkìlọ̀ + ìdènà ìjẹ́rìísí — kò ráyè wọ DB
omniroute auth export --force                          # Kó credential tí a ti DECRYPT ti GBOGBO ìsopọ̀ jáde sí stdout gẹ́gẹ́ bí JSON
omniroute auth export --force --id <id>                 # Kó ìsopọ̀ tó bá mu nìkan jáde
omniroute auth export --force --format env               # Ṣe ìtẹ̀jáde àwọn ìlà OMNIROUTE_<PROVIDER>_<FIELD>=<value>
omniroute auth export --force --out creds.json           # Kọ sínú fáìlì kan (tí a dá pẹ̀lú àwọn ìyọ̀nda 0600)

auth export jẹ́ ti agbègbè nìkan (kíka SQLite ní tààrà, kò sí route HTTP) ó sì mọ̀ọ́mọ̀ tẹ̀/Kọ àwọn iye apiKey/accessToken/refreshToken/idToken plaintext jáde — èyí ni iṣẹ́ náà, kì í ṣe àṣìṣe. A kò ka ohunkóhun láti database, a kò sì decrypt ohunkóhun láìsí --force. Àmi ìkìlọ̀ stderr máa ń tẹ̀ jáde nígbà gbogbo kí plaintext èyíkéyìí tó jáde. Ó nílò kí a ṣètò STORAGE_ENCRYPTION_KEY. Field tí decrypt rẹ̀ bá kùnà (kọ́kọ́rọ́ àtijọ́, ciphertext tó bàjẹ́) ni a máa jabo gẹ́gẹ́ bí <field>DecryptFailed: true dípò fífi òpin sí gbogbo ìkójáde náà tàbí jíjẹ́ kí àṣìṣe inú rẹ̀ tú síta.

Àwọn subcommands míì

Àwọn wọ̀nyí gbà pé server OmniRoute kan ń ṣiṣẹ́, àyàfi bí a bá sọ ohun mìíràn:

omniroute status                       # Ipò àkókò-ṣiṣe tó péye
omniroute logs                         # Ṣàfihàn àwọn àkọsílẹ̀ ìbéèrè lọ́wọ́lọ́wọ́ (--json, --search, --follow)
omniroute config show                  # Ṣàfihàn àtòpọ̀ lọ́wọ́lọ́wọ́

omniroute provider list                # Ṣàkọsílẹ̀ àwọn olùpèsè tó wà (orúkọ-àfirọ́ ti providers list)
omniroute provider add                 # Forúkọsílẹ̀ OmniRoute 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]            # Ṣàkọsílẹ̀ àwọn àwòṣe (--json, --search)
omniroute combo list | switch | create | delete

omniroute backup                       # Ya àwòrán-ipò àtòpọ̀ + DB
omniroute restore                      # Mú padà láti inú àwòrán-ipò tẹ́lẹ̀

omniroute health                       # Ìlera tó kúnrẹ́rẹ́ (àwọn olùdádúró, cache, memory)
omniroute quota                        # Ìlò ìpín olùpèsè
omniroute cache                        # Ipò cache
omniroute cache clear                  # Pa àwọn cache semantic + signature rẹ́

omniroute mcp status | restart         # Ipò olupin MCP / tún 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 <k> | set <k> <v>  # Ṣàyẹ̀wò / ṣètò àwọn env vars (fún ìgbà díẹ̀)

omniroute test                         # Ìdánwò smoke fún àsopọ̀ olùpèsè
omniroute update                       # Ṣàyẹ̀wò àwọn ìmúdójúìwọ̀n
omniroute completion                   # Ṣẹ̀dá ìparí shell

Àwọn àsíá tí a sábà máa ń lò

Àsíá Àpèjúwe
--no-open Má ṣe ṣí browser fúnra rẹ̀ nígbà ìbẹ̀rẹ̀
--port <n> Rọ́pò port API (àiyípadà 20128)
--mcp Ṣiṣẹ́ gẹ́gẹ́ bí olupin MCP lórí stdio (fún àwọn IDE)
--non-interactive Ipo CI (kò sí ì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ọ́ pàtó fún àṣẹ
--version, -v Tẹ ẹ̀yà tí a ti fi sílẹ̀ jáde

Àwọn Endpoint API Tó Wà

Endpoint Àpèjúwe Ohun Tí A Lè Lò Ó Fún
/v1/chat/completions Ìfọ̀rọ̀wérọ̀ boṣewa (gbogbo olùpèsè) Gbogbo irinṣẹ́ òde òní
/v1/responses API Responses (ọ̀nà ìgbékalẹ̀ OpenAI) Codex, àwọn ìṣàn iṣẹ́ aṣojú
/v1/completions Ìparí ọ̀rọ̀ àtijọ́ Àwọn irinṣẹ́ àtijọ́ tó ń lo prompt:
/v1/embeddings Àwọn embedding ọ̀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ó ní token:

À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 èsì 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 Ohun Tó Fà Á Àtúnṣe
Connection refused OmniRoute kò ṣiṣẹ́ omniroute serve
401 Unauthorized Kọ́kọ́rọ́ API kò tọ̀nà Ṣàyẹ̀wò nínú /dashboard/api-manager
No combo configured Kò sí combo ìdarí ipa-ọ̀nà tó ń ṣiṣẹ́ Ṣètò rẹ̀ nínú /dashboard/combos
CLI fi "not installed" hàn Binary kò sí nínú PATH Ṣàyẹ̀wò which <command>
Dashboard fi "not detected" hàn lẹ́yìn fífi sí ẹrọ Cache ti di àtijọ́ Tẹ "⟳ Refresh detection" nínú dashboard
Link àtijọ́ /dashboard/cli-tools Bookmark ṣáájú v3.8.6 A darí rẹ̀ fúnra rẹ̀ sí /dashboard/cli-code (308)
Link àtijọ́ /dashboard/agents Bookmark ṣáájú v3.8.6 A darí rẹ̀ fúnra rẹ̀ sí /dashboard/acp-agents (308)