# CLI Tools — OmniRoute (Lietuvių) 🌐 **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) · 🇱🇻 [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) --- Paskutinį kartą atnaujinta: 2026-08-23 „OmniRoute“ integruojamas su trijų kategorijų CLI įrankiais, išdėstytais trijuose atskiruose valdymo skydelio puslapiuose: | Puslapis | Maršrutas | Koncepcija | Skaičius | | --------------- | ----------------------- | ------------------------------------------------------------------------------------------ | ------------ | | **CLI kodai** | `/dashboard/cli-code` | Programavimo įrankiai, nukreipiami į „OmniRoute“ (klientas → CLI → „OmniRoute“ → teikėjas) | 26 | | **CLI agentai** | `/dashboard/cli-agents` | Autonominiai agentai, nukreipiami į „OmniRoute“ (tokia pati eiga, platesnė aprėptis) | 10 | | **ACP agentai** | `/dashboard/acp-agents` | CLI, kuriuos „OmniRoute“ paleidžia kaip vidinę sistemą per stdio/ACP (atvirkštinė eiga) | žr. registrą | Seni maršrutai peradresuojami naudojant 308: `/dashboard/cli-tools` → `/dashboard/cli-code`, `/dashboard/agents` → `/dashboard/acp-agents`. --- ## Kaip tai veikia ``` CLI kodai / CLI agentai (naudojimo eiga): Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ... │ ▼ (visi nukreipiami į „OmniRoute“) http://YOUR_SERVER:20128/v1 │ ▼ („OmniRoute“ nukreipia į tinkamą teikėją) Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ... ACP agentai (atvirkštinė paleidimo eiga): Kliento užklausa → „OmniRoute“ → paleidžia CLI per stdio/ACP → atsakymas ``` **Pranašumai:** - Vienas API raktas visiems įrankiams valdyti - Visų CLI išlaidų stebėjimas valdymo skydelyje - Modelių perjungimas neperkonfigūruojant kiekvieno įrankio - Veikia vietoje ir nuotoliniuose serveriuose (VPS, Docker, Akamai, Cloudflare Tunnel) --- ## Automatinis konfigūravimas naudojant `setup-*` Nereikia kiekvieno įrankio konfigūracijos rašyti rankiniu būdu. „OmniRoute“ pateikia po vieną `setup-*` komandą kiekvienam palaikomam CLI; ji nuskaito **aktyvų** modelių katalogą iš veikiančio „OmniRoute“ egzemplioriaus (vietinio arba nuotolinio) ir įrašo paties įrankio konfigūraciją jūsų kompiuteryje: ```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 ``` Kiekviena komanda priima `--remote --api-key ` (vietiniam įrankiui sukonfigūruoti naudoti nuotolinį „OmniRoute“), `--dry-run` (peržiūrai nieko neįrašant) ir `--port`. Įrankiams, kurie automatiškai neaptinka modelių (Cline, Kilo, Roo, Goose, Aider, Qwen, 5dive), reikia `--model ` (ir `--yes`, kai komandos vykdomos neinteraktyviai). `setup-5dive` yra vienintelis konfigūravimo scenarijus, kuris nerašo į `$HOME`: jis konfigūruoja 5dive agentų grupę, grupės pagrindiniame kompiuteryje įrašydamas root priklausantį autentifikavimo profilį, todėl iš naujo paleidžiamas per `sudo` ir pats neturi nuotolinio režimo. Norėdami paleisti CLI su įterptais tinkamais aplinkos kintamaisiais ir visiškai neįrašyti konfigūracijos, naudokite bendrąją `omniroute run ` paleidimo priemonę (claude, codex, aider, goose, opencode, qwen, gemini — paskirties vietos ir alternatyvūs pavadinimai gaunami iš `bin/cli/cli-manifest.mjs`); senosios atskiriems įrankiams skirtos paleidimo priemonės `omniroute launch` (Claude Code) ir `omniroute launch-codex` (Codex) tebėra prieinamos. Gemini CLI galima tik paleisti: tai yra `omniroute run` paskirties vieta, tačiau ji neturi `setup-*`/`configure` konfigūravimo scenarijaus. > **Išsami nuoroda:** pagrindinė lentelė — ką įrašo kiekviena komanda, visos parinktys, > vietinis ir nuotolinis režimai bei kuriems įrankiams reikia `/v1` priesagos — pateikta > dokumente **[CLI integracijos](../guides/CLI-INTEGRATIONS.md)**. ### Vykdymas konteineryje Konteineryje „OmniRoute“ įvykdyta `setup-*` komanda įrašo duomenis į paties konteinerio namų katalogą, kurio neskaito joks pagrindinio kompiuterio CLI ir kuris išnyksta kartu su konteineriu. „OmniRoute“ tai aptinka ir, užuot ką nors įrašęs, baigia darbą su kodu `2` bei pateikia instrukcijas. Galimi du palaikomi sprendimai — įdiegti CLI pagrindiniame kompiuteryje ir naudoti `omniroute connect` prisijungiant prie konteinerio arba prijungti konfigūracijos katalogus ir nustatyti `CLI_CONFIG_HOME` („Compose“ profilis `host`). Kiekviena `setup-*` komanda, taip pat `omniroute configure` ir `omniroute config set`, priima `--allow-container-write`, kai iš tiesų norite konfigūruoti paties konteinerio CLI; `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true` tą patį atlieka serveriui. Žr. [„Docker“ vadovas → Pagrindinio kompiuterio CLI įrankių konfigūravimas](../guides/DOCKER_GUIDE.md#configuring-host-cli-tools-when-omniroute-runs-in-docker). Valdymo skydelio **pritaikymo galinis taškas** (`POST /api/cli-tools/apply`) taiko tą pačią apsaugą: konteineryje, jei įrašymo paskirties vieta nėra prijungta iš pagrindinio kompiuterio, pateikiamas **`422`** atsakymas su `containerEphemeralTarget: true`, saugiu klaidos tekstu ir — įrankiams, turintiems pagrindiniam kompiuteriui skirtą konfigūravimo scenarijų (claude, codex, opencode, cline, kilo, continue) — `hostSetupCommand` (pvz., `omniroute setup-opencode`), kurią reikia vykdyti pagrindiniame kompiuteryje; niekas neįrašoma. `dryRun: true` ir toliau veikia konteinerio režimu bei grąžina užmaskuotą peržiūrą ir paskirties kelią, nepaliesdamas disko. Peržiūros turinys nėra konfigūracija su prisijungimo duomenimis, kurią būtų galima kopijuoti ar importuoti. Pagrindiniame kompiuteryje pritaikykite pradinius įrankio / bazinio URL / API rakto / modelio įvesties duomenis arba naudokite nurodytą pagrindiniam kompiuteriui skirtą konfigūravimo komandą. Informacijos apie peržiūros antraštę ir užklausos sutartį žr. dokumente [CLI konfigūracijos saugumas](../security/CLI-CONFIGURATION.md). Toks veikimas yra tyčinis ir nuo regresijų apsaugotas testu `tests/unit/api/cli-tools/apply-container-guard.test.ts` — niekada „netaisykite“ 422 klaidos pašalindami apsaugą. --- ## Tiesos šaltinis Bendras katalogas yra faile `src/shared/constants/cliTools.ts`, kaip `CLI_TOOLS: Record`. Kiekvienas įrašas turi šiuos laukus (apibrėžtus faile `src/shared/schemas/cliCatalog.ts`): | Laukas | Tipas | Aprašymas | | ----------------------------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------- | | `category` | `"code" \| "agent"` | Kuriame puslapyje rodomas įrankis | | `vendor` | `string` | Įrankio kilmė („Anthropic“, „OSS (P. Gauthier)“) | | `acpSpawnable` | `boolean` | Taip pat galima naudoti kaip ACP agentą (rodoma žyma) | | `baseUrlSupport` | `"full" \| "partial" \| "none"` | Pasirinktinio galinio taško palaikymo lygis. `"none"` = MITM darbų sąrašas | | `configType` | `"env" \| "custom" \| "guide" \| "custom-builder" \| "mitm"` | Konfigūravimo mechanizmas | | `id`, `name`, `color`, `description`, `docsUrl` | standartiniai | Pagrindiniai rodymo laukai | Įrašai, kurių `baseUrlSupport: "none"`, **nerodomi** valdymo skydelio puslapiuose — jie užregistruoti 11 plano MITM darbų sąraše (žr. `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md`). ### Galimybių lygiai (įtrauktas į katalogą × aptinkamas × konfigūruojamas × paleidžiamas) Ne kiekvienas į katalogą įtrauktas įrankis yra aptinkamas, konfigūruojamas ar paleidžiamas. Kiekvienas lygis turi vieną deklaravimo šaltinį, o neatitikimų testas užtikrina jų suderinamumą: | Lygis | Reikšmė | Deklaruojama | | ------------------------ | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | | **Įtrauktas į katalogą** | Rodomas valdymo skydelio kataloge (pavadinimas, tiekėjas, dokumentacija, konfigūracijos tipas) | `src/shared/constants/cliTools.ts` (`CLI_TOOLS`) | | **Aptinkamas** | Dvejetainio failo / konfigūracijos aptikimas, būklės patikros, konfigūracijos keliai | `src/shared/services/cliRuntime.ts` (`CLI_TOOLS` vykdymo katalogas) | | **Konfigūruojamas** | Palaikomas naudojant `omniroute configure ` (yra sąrankos receptas) | `bin/cli/cli-manifest.mjs` (`configure: true`) | | **Paleidžiamas** | Palaikomas naudojant `omniroute run ` (apibrėžtas aplinkos / argumentų įterpimas) | `bin/cli/cli-manifest.mjs` (`run: true`) | `bin/cli/cli-manifest.mjs` yra kanoninis vykdomasis CLI komandų sąsajų manifestas: `run`, `configure` ir apvalkalo automatinio užbaigimo generatoriai savo tikslų sąrašus, alternatyvių pavadinimų nustatymą (pavyzdžiui, `kilocode`/`kilo-code`/`kilo_cli` → `kilo`) ir `--model` parametro susiejimą gauna iš jo. Neatitikimų apsauga `tests/unit/cli/cli-manifest-drift.test.ts` patikrina, kad manifestas, vykdymo katalogas, UI katalogas ir visos naudojančios sąsajos išliktų sinchronizuotos — pridėjus tikslą prie vienos sąsajos, bet nepridėjus prie kitų, testų rinkinys nepavyksta, užuot leidęs neatitikimams likti nepastebėtiems. --- ## 1. „CLI Code“ katalogas (26 įrankiai) Visi įrankiai, rodomi `/dashboard/cli-code`. Įrankiai, kurių `baseUrlSupport: none`, prijungiami per MITM arba naudojant rankinį vadovą, o ne tinkintą bazinį URL: | 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 | Įrankių, kurių `baseUrlSupport: "partial"`, kortelėje valdymo skydelyje rodomas ženklelis „⚠ Dalinis bazinis URL“. --- ## 2. CLI agentų katalogas (10 įrankių) Autonominiai agentai, rodomi `/dashboard/cli-agents`: | id | name | vendor | baseUrlSupport | acpSpawnable | | ------------ | ---------------- | ------------------------ | -------------- | ------------ | | hermes-agent | Hermes Agent | Nous Research | full | false | | openclaw | OpenClaw | OSS (P. Steinberger) | full | true | | goose | Goose | Block / Linux Foundation | full | true | | interpreter | Open Interpreter | OSS | full | true | | warp | Warp AI | Warp Inc. | partial | true | | agent-deck | Agent Deck | asheshgoplani (OSS) | full | false | | omp | Oh My Pi | OSS | full | true | | letta | Letta CLI | Letta | full | false | | prime-agent | Prime Agent | Prime Intellect (OSS) | full | false | | 5dive | 5dive | OSS (5dive-ai) | full | false | --- ## 3. ACP agentai (/dashboard/acp-agents) Šiame puslapyje (pervadintame iš `/dashboard/agents`) rodomos CLI, kurias OmniRoute gali **paleisti** kaip fonines vykdymo sistemas per stdio/ACP protokolą. Katalogas atskirai tvarkomas faile `src/lib/acp/registry.ts` ir **nėra** toks pats kaip `CLI_TOOLS`. --- ## 4. MITM darbų sąrašas (valdymo skydelyje nerodomas) Toliau nurodytos CLI savaime nepalaiko pasirinktinio bazinio URL ir **nėra pateiktos** CLI Code ar CLI agentų puslapiuose. Jos yra kandidatės MITM perėmimui 11-ajame plane: | CLI | Priežastis | | ------------------- | ---------------------------------------------------------------------------- | | windsurf | BYOK apsiriboja pasirinktais Claude modeliais ir įmonės URL / prieigos raktu | | amp | Uždara ekosistema (Sourcegraph) | | amazon-q / kiro-cli | AWS SSO autentifikavimas, nėra pasirinktinio URL | | cowork | Anthropic Desktop, nėra konfigūruojamo galinio taško | Visas kryžmines nuorodas žr. `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md`. --- ## 5. Paketinio aptikimo API Visų įrankių aptikimas sujungtas į vieną galinį tašką: **`GET /api/cli-tools/all-statuses`** - Autentifikavimas: `requireCliToolsAuth(request)` (toks pats kaip kituose `/api/cli-tools/` maršrutuose) - Grąžina: `Record` (tipas: `src/shared/types/cliBatchStatus.ts`) - Strategija: `Promise.all` visiems įrankiams, kiekvienam įrankiui taikomas 5 s skirtasis laikas - Podėlis: atmintyje saugoma LRU, indeksuojama pagal konfigūracijos failo `mtime`. Pasikeitus `mtime`, podėlis panaikinamas. Paleidus serverį iš naujo, nustatomas iš naujo. Kiekvieno įrankio atsakymo struktūra: ```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; // išvalyta, be dėklo pėdsakų } ``` --- ## 6. Naujų įrankių nustatymų tvarkyklės Nauji įrankiai su `configType: "custom"` turi specialius nustatymų API maršrutus: | Maršrutas | Įrankis | | ------------------------------------------- | -------------------------------------------------------------------------------- | | `POST /api/cli-tools/forge-settings` | ForgeCode (.forge.toml) | | `POST /api/cli-tools/jcode-settings` | jcode (--base-url vėliavėlė) | | `POST /api/cli-tools/deepseek-tui-settings` | DeepSeek TUI (OPENAI_BASE_URL, senasis) | | `POST /api/cli-tools/codewhale-settings` | CodeWhale (OPENAI_BASE_URL, pagrindinis + senojo `~/.deepseek` sinchronizavimas) | | `POST /api/cli-tools/smelt-settings` | Smelt | | `POST /api/cli-tools/pi-settings` | Pi programavimo agentas | | `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` + specialus `.env` raktas) | Visuose maršrutuose klaidų atsakymams naudojama `sanitizeErrorMessage()` (griežta taisyklė Nr. 12). --- ## 7. Valdymo skydelio puslapių architektūra ### CLI kodai (`/dashboard/cli-code`) - `src/app/(dashboard)/dashboard/cli-code/page.tsx` — serverio komponentas - `src/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx` — kliento tinklelis - `src/app/(dashboard)/dashboard/cli-code/[id]/page.tsx` — įrankio išsamios informacijos puslapis - `src/app/(dashboard)/dashboard/cli-code/components/` — 12 specializuotų įrankių kortelių + `ToolDetailClient.tsx` ### CLI agentai (`/dashboard/cli-agents`) - `src/app/(dashboard)/dashboard/cli-agents/page.tsx` — serverio komponentas - `src/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx` — kliento tinklelis - `src/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx` — pakartotinai naudoja `ToolDetailClient` ### ACP agentai (`/dashboard/acp-agents`) - `src/app/(dashboard)/dashboard/acp-agents/page.tsx` — serverio komponentas (perkeltas iš `agents/`) ### Bendrinami UI komponentai (`src/shared/components/cli/`) | Failas | Paskirtis | | ----------------------- | ----------------------------------------------------------------------------- | | `CliToolCard.tsx` | Išmanioji būsenos kortelė (aptikimas + konfigūracija + galinis taškas) | | `CliConceptCard.tsx` | Kiekvieno puslapio koncepcijos paaiškinimo kortelė | | `CliComparisonCard.tsx` | Trijų stulpelių skirtingų CLI tipų palyginimas | | `BaseUrlSelect.tsx` | Galinio taško išskleidžiamasis sąrašas (vietinis / debesijos / pasirinktinis) | | `ApiKeySelect.tsx` | API rakto parinkiklis | | `ManualConfigModal.tsx` | Kopijuojamos konfigūracijos fragmento modalinis langas | ### Bendrinamas Hook (`src/shared/hooks/cli/`) | Failas | Paskirtis | | ------------------------- | ----------------------------------------------------------------------- | | `useToolBatchStatuses.ts` | Gauna `/api/cli-tools/all-statuses`, valdo įkėlimo / atnaujinimo būseną | --- ## 8. i18n 14 plano F9 etape pridėtos naujos vardų sritys: | Vardų sritis | Paskirtis | | ------------ | --------------------------------------------------------------------------------------------------- | | `cliCommon` | Bendros eilutės (kortelių žymos, sąvokų / palyginimų tekstai, išsamios informacijos puslapio žymos) | | `cliCode` | CLI Code puslapio eilutės | | `cliAgents` | CLI Agents puslapio eilutės | | `acpAgents` | ACP Agents puslapio eilutės | Pateikti išsamūs PT-BR ir EN vertimai. Kitoms 39 lokalėms automatiškai naudojama EN atsarginė versija, atliekant sujungimą vardų srities lygmeniu faile `src/i18n/request.ts`. --- ## 9. Greitoji pradžia ### 1 veiksmas — gaukite OmniRoute API raktą 1. Atidarykite `/dashboard/api-manager` → **Sukurti API raktą** 2. Suteikite jam pavadinimą (pvz., `cli-tools`) ir pasirinkite visus leidimus 3. Nukopijuokite raktą — jo reikės kiekvienam toliau nurodytam CLI > Jūsų raktas atrodo taip: `sk-xxxxxxxxxxxxxxxx-xxxxxxxxx` --- ### 2 veiksmas — įdiekite CLI įrankius Visiems npm pagrįstiems įrankiams reikalinga Node.js 22.22.2+ arba 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 (paleidžiama naudojant `omniroute run gemini` → /v1beta sąsają) npm install -g @google/gemini-cli # Aider pip install aider-chat # Smelt cargo install smelt # Pagrįsta Rust # Pi programavimo agentas # diegimo instrukcijas žr. https://github.com/zechnerj/pi-coding-agent # jcode # diegimo instrukcijas žr. https://github.com/1jehuang/jcode ``` --- ### 3 veiksmas — sukonfigūruokite valdymo skydelyje 1. Eikite į `http://localhost:20128/dashboard/cli-code` 2. Tinklelyje raskite savo įrankį 3. Spustelėkite kortelę, kad atidarytumėte išsamios įrankio informacijos puslapį 4. Pasirinkite savo API raktą ir bazinį URL 5. Spustelėkite **Taikyti konfigūraciją** arba nukopijuokite rankinės konfigūracijos fragmentą --- ### 4 veiksmas — nustatykite visuotinius aplinkos kintamuosius ```bash # Universalus OmniRoute galinis taškas 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 nuskaito GOOGLE_GEMINI_BASE_URL ŠAKNINIU lygmeniu (jo SDK pats prideda /v1beta/...) export GOOGLE_GEMINI_BASE_URL="http://localhost:20128" export GEMINI_API_KEY="sk-your-omniroute-key" ``` > Jei naudojate **nuotolinį serverį**, pakeiskite `localhost:20128` serverio IP adresu arba domenu, > pvz., `http://:20128`. --- ### 4 veiksmas — sukonfigūruokite kiekvieną įrankį #### Claude Code ```bash # Sukurkite ~/.claude/settings.json: mkdir -p ~/.claude && cat > ~/.claude/settings.json << EOF { "env": { "ANTHROPIC_BASE_URL": "http://localhost:20128", "ANTHROPIC_AUTH_TOKEN": "sk-your-omniroute-key" } } EOF ``` Claude Code naudokite suvienodinto Anthropic šliuzo šakninį adresą. Čia nepridėkite `/v1`. **Bandymas:** `claude "say hello"` --- #### OpenAI Codex Šiuolaikinė Codex versija (v0.137+) nuskaito tik `~/.codex/config.toml` — senasis `config.yaml` priklauso ankstesniam npm CLI ir yra nepastebimai ignoruojamas. API raktas saugomas aplinkos kintamajame `OMNIROUTE_API_KEY` (`env_key`), o ne faile: ```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" ``` Išsamus žinynas (profiliai, `wire_api`, konteksto langai): [CODEX-CLI-CONFIGURATION.md](../guides/CODEX-CLI-CONFIGURATION.md). **Bandymas:** `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 ``` **Bandymas:** `opencode` > Norėdami siųsti mąstymo variantus, naudokite > `opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant high`. --- #### Cline (CLI arba VS Code) **CLI režimas:** ```bash mkdir -p ~/.cline/data && cat > ~/.cline/data/globalState.json << EOF { "apiProvider": "openai", "openAiBaseUrl": "http://localhost:20128/v1", "openAiApiKey": "sk-your-omniroute-key" } EOF ``` **VS Code režimas:** Cline plėtinio nuostatos → API teikėjas: `OpenAI Compatible` → Bazinis URL: `http://localhost:20128/v1` Arba naudokite OmniRoute valdymo skydelį → **CLI įrankiai → Cline → Taikyti konfigūraciją**. --- #### KiloCode (CLI arba VS Code) **CLI režimas:** ```bash kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key ``` **VS Code nuostatos:** ```json { "kilo-code.openAiBaseUrl": "http://localhost:20128/v1", "kilo-code.apiKey": "sk-your-omniroute-key" } ``` Arba naudokite OmniRoute valdymo skydelį → **CLI įrankiai → KiloCode → Taikyti konfigūraciją**. --- #### Continue (VS Code plėtinys) Redaguokite `~/.continue/config.yaml`: ```yaml models: - name: OmniRoute provider: openai model: auto apiBase: http://localhost:20128/v1 apiKey: sk-your-omniroute-key default: true ``` Baigę redaguoti, paleiskite VS Code iš naujo. --- #### VS Code Insiders (`chatLanguageModels.json`) Naudokite tai, kai VS Code Insiders sukonfigūruotas naudoti pasirinktinių galinių taškų modelius ir norite, kad OmniRoute veiktų be pasirinktinio antraštės lauko. **Rekomenduojama vieta:** - Linux: `~/.config/Code - Insiders/User/chatLanguageModels.json` - Windows: `%APPDATA%/Code - Insiders/User/chatLanguageModels.json` **Pavyzdys, kuriame naudojamas prieigos raktu apsaugotas „OmniRoute“ alternatyvusis pavadinimas:** ```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" } } ] ``` **Pastabos:** - Pakeiskite `sk-your-omniroute-key` „OmniRoute“ sukurtu API raktu. - Laukas `url` turėtų nurodyti `/api/v1/vscode/{token}/chat/completions`. - Laukas `modelsUrl` turėtų nurodyti `/api/v1/vscode/{token}/models`. - Kai klientas palaiko pasirinktines antraštes, pirmenybę teikite įprastam `/v1` ir „Bearer“ antraštės naudojimui. - URL įterpti prieigos raktai yra suderinamumui skirtas atsarginis sprendimas ir gali būti rodomi redaktoriaus žurnaluose arba tarpinio serverio istorijoje. --- #### Kiro CLI (Amazon) ```bash # Prisijunkite prie savo AWS/Kiro paskyros: kiro-cli login # CLI naudoja savo autentifikavimą — pačiai Kiro CLI „OmniRoute“ kaip vidinė sistema nereikalinga. # Naudokite kiro-cli kartu su „OmniRoute“, skirtu kitiems įrankiams. kiro-cli status ``` **Kiro IDE** darbalaukio programai naudokite „OmniRoute“ pateikiamą MITM galinį tašką, esantį `/dashboard/cli-tools → Kiro`. --- ## 10. Vidinė OmniRoute CLI `omniroute` vykdomasis failas suteikia komandas serverio gyvavimo ciklui, konfigūravimui, diagnostikai ir teikėjų valdymui. Įėjimo taškas: `bin/omniroute.mjs`. ```bash omniroute # Paleisti serverį (numatytasis prievadas 20128) omniroute setup # Interaktyvus sąrankos vediklis omniroute doctor # Patikrinti konfigūraciją, DB, prievadus ir vykdymo aplinką omniroute providers list # Sukonfigūruoti teikėjų ryšiai omniroute providers test-all # Išbandyti kiekvieną aktyvų ryšį omniroute reset-password # Iš naujo nustatyti administratoriaus slaptažodį omniroute logs # Srautiniu būdu rodyti užklausų žurnalus omniroute health # Išsami būklė (grandinės pertraukikliai, podėlis, atmintis) omniroute --version # Parodyti versiją omniroute --help # Parodyti visas komandas ``` ### Sąranka ir inicijavimas ```bash omniroute setup # Interaktyvus sąrankos vediklis omniroute setup --non-interactive # CI / automatizavimo režimas (skaito aplinkos kintamuosius ir parinktis) omniroute setup --password '' # Tiesiogiai nustatyti administratoriaus slaptažodį omniroute setup --add-provider \ --provider openai \ --api-key '' \ --test-provider # Vienu veiksmu pridėti ir išbandyti teikėją ``` Atpažįstami neinteraktyvios sąrankos aplinkos kintamieji: | Kintamasis | Paskirtis | | ------------------- | ------------------------------------------------------------------- | | `OMNIROUTE_API_KEY` | Teikėjo API raktas (susietas su `--api-key` per Commander `.env()`) | | `DATA_DIR` | Pakeisti numatytąjį OmniRoute duomenų katalogą | Visos kitos neinteraktyvios įvestys perduodamos kaip parinktys, o ne aplinkos kintamieji: `--password`, `--provider`, `--provider-name`, `--provider-base-url`, `--default-model` (žr. pirmiau pateiktas `omniroute setup` parinktis). ### Diagnostika ```bash omniroute doctor # Patikrinti konfigūraciją, DB, prievadus, vykdymo aplinką, atmintį ir veikimą omniroute doctor --json # Mašinoms nuskaitomas JSON omniroute doctor --no-liveness # Praleisti HTTP būklės patikrą omniroute doctor --host 0.0.0.0 # Pakeisti veikimo patikros pagrindinį kompiuterį omniroute doctor --liveness-url # Pakeisti visą būklės galinio taško URL ``` Diagnostikos komanda atlieka šias patikras: `Config`, `Database`, `Storage/encryption`, `Port availability`, `Node runtime`, `Native binary` (better-sqlite3), `Memory` ir `Server liveness`. Jei kurios nors patikros rezultatas yra `fail`, programa baigiama su nenuliniu išėjimo kodu. ### Teikėjų valdymas ```bash omniroute providers available # OmniRoute teikėjų katalogas omniroute providers available --search openai # Filtruoti katalogą pagal ID / pavadinimą / alternatyvų pavadinimą / kategoriją omniroute providers available --category api-key # Filtruoti pagal kategoriją (api-key, oauth, free, ...) omniroute providers available --json # Mašinoms nuskaitomas JSON omniroute providers list # Sukonfigūruoti teikėjų ryšiai omniroute providers list --json omniroute providers test # Išbandyti vieną sukonfigūruotą ryšį omniroute providers test-all # Išbandyti kiekvieną aktyvų ryšį omniroute providers validate # Tik vietinis struktūros tikrinimas omniroute providers add --credential-env PROVIDER_KEY omniroute providers import ./providers.json --dry-run --json omniroute providers auth # Esamas OAuth procesas omniroute providers edit --default-model omniroute providers remove --yes ``` `providers add/import/auth/edit/remove` pirmiausia naudoja API, todėl veikia su aktyviu vietiniu arba nuotoliniu kontekstu. Prisijungimo duomenims įvesti reikėtų naudoti `--credential-stdin` arba `--credential-env`; `--dry-run --json` pateikia tik užmaskuotą informaciją apie buvimą ir struktūrą. `providers available` skaito OmniRoute katalogą; `providers list/test/test-all/validate` išlaiko vietinę SQLite veikseną ir nereikalauja veikiančio serverio. Pasirinktiniam su OpenAI arba Anthropic suderinamam mazgui prisijungimo duomenis susiekite su mazgo ID, kurį grąžino `omniroute nodes add`, naudodami `omniroute keys add "$NODE_ID" --stdin`. Tam būtinas veikiantis serveris ir aktyvaus konteksto valdymo autentifikavimas. CLI naudoja `POST /api/providers`, kuris patikrina mazgą ir nukopijuoja jo galinio taško nustatymus į ryšį. Jei mazgo nėra, nepavyksta autorizavimas arba serveris nepasiekiamas, grąžinama klaida nesukuriant atsarginių vietinių prisijungimo duomenų. `nodes add --base-url` nustato mazgo galinį tašką; jis skiriasi nuo serverio adreso, nurodyto `OMNIROUTE_BASE_URL`. OpenAPI failams naudokite `omniroute openapi dump --format json --out ./openapi.json`; visuotinė parinktis `--output` nustato CLI išvesties formatavimą, o ne paskirties failo pavadinimą. ### Atkūrimas ir nustatymas iš naujo ```bash omniroute reset-password # Iš naujo nustatyti administratoriaus slaptažodį (taip pat: omniroute-reset-password) omniroute reset-encrypted-columns # Parodyti įspėjimą ir bandomąjį užšifruotų prisijungimo duomenų nustatymą iš naujo omniroute reset-encrypted-columns --force # Iš tikrųjų nustatyti užšifruotų SQLite prisijungimo duomenų reikšmę į null ``` ### Prisijungimo duomenų eksportavimas (⚠ elkitės atsargiai) ```bash omniroute auth export # Parodyti įspėjimą ir patvirtinimo užklausą — be prieigos prie DB omniroute auth export --force # Eksportuoti VISŲ ryšių IŠŠIFRUOTUS prisijungimo duomenis į standartinę išvestį JSON formatu omniroute auth export --force --id # Eksportuoti tik atitinkantį ryšį omniroute auth export --force --format env # Išvesti OMNIROUTE__= eilutes omniroute auth export --force --out creds.json # Įrašyti į failą (sukuriamą su 0600 leidimais) ``` `auth export` veikia **tik lokaliai** (tiesiogiai skaito SQLite, nenaudoja HTTP maršruto) ir sąmoningai išveda į ekraną arba įrašo **atvirojo teksto** `apiKey`/`accessToken`/`refreshToken`/`idToken` reikšmes — tai funkcija, o ne klaida. Be `--force` niekas neskaitoma iš duomenų bazės ir niekas neiššifruojama. Prieš išvedant bet kokį atvirąjį tekstą, stderr visada parodoma įspėjamoji juosta. Būtina nustatyti `STORAGE_ENCRYPTION_KEY`. Jei lauko nepavyksta iššifruoti (pasenęs raktas, sugadintas šifruotas tekstas), pateikiama `DecryptFailed: true`, užuot nutraukus visą eksportavimą ar atskleidus susijusią klaidą. ### Kitos antrinės komandos Jei nenurodyta kitaip, jos veikia, kai paleistas OmniRoute serveris: ```bash omniroute status # Išsami vykdymo būsenos informacija omniroute logs # Srautiniai užklausų žurnalai (--json, --search, --follow) omniroute config list # Rodyti sukonfigūruotus CLI įrankius omniroute provider list # Pateikti galimus teikėjus (komandos providers list alternatyva) omniroute provider add # Užregistruoti OmniRoute kaip įrankio teikėją omniroute keys add | list | remove # Tvarkyti API raktus omniroute models [provider] # Pateikti modelius (--json, --search) omniroute combo list | switch | create | delete omniroute backup # Sukurti konfigūracijos ir DB momentinę kopiją omniroute restore # Atkurti iš ankstesnės momentinės kopijos omniroute health # Išsami sistemos būklė (grandinės pertraukikliai, podėlis, atmintis) omniroute quota # Teikėjo kvotos naudojimas omniroute cache # Podėlio būsena omniroute cache clear # Išvalyti semantinį ir parašų podėlius omniroute mcp status | restart # MCP serverio būsena / paleidimas iš naujo omniroute a2a status | card # A2A serverio būsena / agento kortelė omniroute tunnel list | create | stop # Tvarkyti tunelius (cloudflare/tailscale/ngrok) omniroute env show | get | set # Peržiūrėti / nustatyti aplinkos kintamuosius (laikinai) omniroute test # Teikėjo ryšio veikimo patikra omniroute update # Patikrinti, ar yra naujinių omniroute completion # Generuoti apvalkalo užbaigimo scenarijų ``` ### Bendrosios parinktys | Parinktis | Aprašas | | ------------------- | ------------------------------------------------------------------ | | `--no-open` | Paleidžiant automatiškai neatverti naršyklės | | `--port ` | Pakeisti API prievadą (numatytasis — 20128) | | `--mcp` | Vykdyti kaip MCP serverį per stdio (IDE aplinkoms) | | `--non-interactive` | CI režimas (be raginimų; skaito iš aplinkos kintamųjų / parinkčių) | | `--json` | Kompiuterio skaitoma JSON išvestis (doctor, providers ir kt.) | | `--help`, `-h` | Rodyti konkrečios komandos žinyną | | `--version`, `-v` | Išvesti įdiegtą versiją | --- ## Galimi API galiniai taškai | Galinis taškas | Aprašymas | Kam naudoti | | -------------------------- | ------------------------------------- | --------------------------------------------- | | `/v1/chat/completions` | Standartinis pokalbis (visi teikėjai) | Visiems šiuolaikiniams įrankiams | | `/v1/responses` | Atsakymų API (OpenAI formatas) | Codex, agentinėms darbo eigoms | | `/v1/completions` | Pasenęs teksto užbaigimas | Senesniems įrankiams, naudojantiems `prompt:` | | `/v1/embeddings` | Teksto vektoriniai atvaizdai | RAG, paieškai | | `/v1/images/generations` | Vaizdų generavimas | GPT-Image, Flux ir kt. | | `/v1/audio/speech` | Teksto vertimas į kalbą | ElevenLabs, OpenAI TTS | | `/v1/audio/transcriptions` | Kalbos vertimas į tekstą | Deepgram, AssemblyAI | Paruošti įklijuoti pavyzdžiai su prieigos raktu papildytu OmniRoute URL: ```txt Prieigos rakto pavyzdys: sk-a3ab3c080beaee3a-69f4a4-070d71af Standartinis OpenAI pagrindinis adresas: http://localhost:20128/v1 VS Code modeliai: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/models VS Code pokalbiai: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completions VS Code atsakymai: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responses Ollama žymos: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tags Ollama pokalbiai: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chat ``` --- ## Trikčių šalinimas | Klaida | Priežastis | Sprendimas | | -------------------------------------------- | ------------------------------ | ----------------------------------------------------------- | | `Connection refused` | OmniRoute neveikia | `omniroute serve` | | `401 Unauthorized` | Netinkamas API raktas | Patikrinkite `/dashboard/api-manager` | | `No combo configured` | Nėra aktyvaus maršruto derinio | Sukonfigūruokite `/dashboard/combos` | | CLI rodo „neįdiegta“ | Dvejetainio failo nėra PATH | Patikrinkite `which ` | | Įdiegus valdymo skydelyje rodoma „neaptikta“ | Pasenusi podėlio informacija | Valdymo skydelyje spustelėkite „⟳ Atnaujinti aptikimą“ | | Sena nuoroda `/dashboard/cli-tools` | Iki v3.8.6 sukurta žymelė | Automatiškai peradresuojama į `/dashboard/cli-code` (308) | | Sena nuoroda `/dashboard/agents` | Iki v3.8.6 sukurta žymelė | Automatiškai peradresuojama į `/dashboard/acp-agents` (308) | ## Išvadų generavimo rakto politikos valdymas naudojant OmniRoute CLI Naudokite autentifikuotą valdymo kontekstą (žr. [Nuotolinis režimas](../guides/REMOTE-MODE.md)), kad galėtumėte peržiūrėti arba atnaujinti esamą išvadų generavimo raktą pagal jo ID: ```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` yra `--model-access-mode all` alternatyvusis pavadinimas. Atnaujinant išvalomas leidžiamų modelių sąrašas. Išsaugomos aprėptys, ryšio taisyklės, užblokuoti modeliai, užklausų dažnio ir išlaidų ribos, todėl šios kitos kontrolės priemonės vis tiek gali atmesti užklausą. Aiškiai nurodžius `--allowed-models ""`, taip pat pasirenkama `all`; derinkite tai su `--model-access-mode restricted`, kad išlaikytumėte apribotą raktą be leidžiamų modelių. Ne tuščias kableliais atskirtas sąrašas parenka `restricted`, nebent aiškiai nurodyta kitaip. Prieštaringas `all` ir netuščio leidžiamų modelių sąrašo derinys atmetamas prieš siunčiant užklausą. `--rate-limit 30` nustato užklausų per minutę skaičių ir išsaugo kitų laiko intervalų taisykles. `--max-cost 5` įjungia dienos išlaidų ribą USD, nekeisdamas savaitės ribos; `--max-cost 0` pašalina dienos ribą ir išsaugo esamą naudojimo ribos jungiklio būseną bei savaitės ribą. Nenurodyti politikos laukai lieka nepakeisti. Keičiant užklausų dažnio ribas, pirmiausia nuskaitoma dabartinė politika; venkite vienu metu redaguoti to paties rakto užklausų dažnio ribų masyvą. Politikos komandos naudoja autentifikuotas `GET`/`PATCH /api/keys/{id}` užklausas ir atsižvelgia į aktyvų kontekstą bei visuotinę `--api-key` parinktį. JSON išvestyje pateikiami tik politikos laukai, be išsaugoto rakto ar jo užmaskuoto atvaizdo. Tik išvadų generavimui skirti kredencialai negali autorizuoti valdymo pakeitimų. Gavus 401/403, reikia patikrinti valdymo kredencialus ir kontekstą; tai nepatvirtina vietinio CLI prieigos rakto ar salt reikšmės klaidos. Apie atskirą vietinio autentifikavimo sutartį žr. [CLI prieigos raktas](../security/CLI_TOKEN.md).