# CLI Tools — OmniRoute (Slovenščina) 🌐 **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) · 🇷🇸 [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) --- Nazadnje posodobljeno: 2026-08-23 OmniRoute se integrira s tremi kategorijami orodij CLI, razporejenimi po treh namenskih straneh nadzorne plošče: | Stran | Pot | Koncept | Število | | -------------- | ----------------------- | --------------------------------------------------------------------------------------- | --------------- | | **Kode CLI** | `/dashboard/cli-code` | Orodja za programiranje, usmerjena v OmniRoute (odjemalec → CLI → OmniRoute → ponudnik) | 26 | | **Agenti CLI** | `/dashboard/cli-agents` | Avtonomni agenti, usmerjeni v OmniRoute (enak potek, širši obseg) | 10 | | **Agenti ACP** | `/dashboard/acp-agents` | Orodja CLI, ki jih OmniRoute zažene kot zaledje prek stdio/ACP (obraten potek) | glejte register | Podedovane poti so preusmerjene s kodo 308: `/dashboard/cli-tools` → `/dashboard/cli-code`, `/dashboard/agents` → `/dashboard/acp-agents`. --- ## Kako deluje ``` Kode CLI / Agenti CLI (potek uporabe): Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ... │ ▼ (vsi so usmerjeni v OmniRoute) http://YOUR_SERVER:20128/v1 │ ▼ (OmniRoute usmeri zahtevo k ustreznemu ponudniku) Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ... Agenti ACP (obraten potek zagona): Zahteva odjemalca → OmniRoute → zažene CLI prek stdio/ACP → odgovor ``` **Prednosti:** - En ključ API za upravljanje vseh orodij - Spremljanje stroškov vseh orodij CLI na nadzorni plošči - Preklapljanje med modeli brez ponovnega konfiguriranja vsakega orodja - Deluje lokalno in na oddaljenih strežnikih (VPS, Docker, Akamai, Cloudflare Tunnel) --- ## Samodejna konfiguracija z `setup-*` Konfiguracije posameznega orodja vam ni treba pisati ročno. OmniRoute vključuje ukaz `setup-*` za vsak podprt CLI, ki prebere **aktualni** katalog modelov iz delujoče instance OmniRoute (lokalne ali oddaljene) in zapiše lastno konfiguracijo orodja v vaš računalnik: ```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 ``` Vsak sprejema `--remote --api-key ` (konfiguracija lokalnega orodja za oddaljeno instanco OmniRoute), `--dry-run` (predogled brez zapisovanja) in `--port`. Orodja brez samodejnega odkrivanja modelov (Cline, Kilo, Roo, Goose, Aider, Qwen, 5dive) sprejemajo `--model ` (in `--yes` za neinteraktivne zagone). `setup-5dive` je edini postopek, ki ne zapisuje pod `$HOME`: konfigurira skupino agentov 5dive tako, da na gostitelju skupine zapiše avtentikacijski profil v lasti korenskega uporabnika, zato se znova zažene prek `sudo` in nima lastnega oddaljenega načina. Če želite zagnati CLI z vstavljenimi ustreznimi spremenljivkami okolja in povsem brez zapisovanja konfiguracije, uporabite splošni zaganjalnik `omniroute run ` (claude, codex, aider, goose, opencode, qwen, gemini — cilji in vzdevki izvirajo iz `bin/cli/cli-manifest.mjs`); podedovana zaganjalnika za posamezni orodji `omniroute launch` (Claude Code) in `omniroute launch-codex` (Codex) ostajata na voljo. Gemini CLI podpira samo zagon: je cilj za `omniroute run`, vendar nima postopka `setup-*`/`configure`. > **Celotna referenca:** glavna tabela — kaj zapiše posamezen ukaz, vse zastavice, > lokalni in oddaljeni način ter katera orodja zahtevajo pripono `/v1` — je v dokumentu > **[Integracije CLI](../guides/CLI-INTEGRATIONS.md)**. ### Izvajanje teh ukazov znotraj vsebnika Ukaz `setup-*`, izveden znotraj vsebnika OmniRoute, zapisuje v lastno domačo mapo vsebnika, ki je ne bere noben CLI na gostitelju in ki izgine skupaj z vsebnikom. OmniRoute to zazna in se konča s kodo `2` ter prikaže navodila, namesto da bi zapisoval. Na voljo sta dva podprta načina nadaljevanja — namestite CLI na gostitelja in uporabite `omniroute connect` za povezavo z vsebnikom ali pa priklopite konfiguracijske mape in nastavite `CLI_CONFIG_HOME` (profil compose `host`). Vsak ukaz `setup-*` ter tudi `omniroute configure` in `omniroute config set` sprejema `--allow-container-write`, kadar dejansko želite konfigurirati lastna orodja CLI vsebnika; `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true` enako omogoči tudi za strežnik. Glejte [Vodnik za Docker → Konfiguriranje orodij CLI na gostitelju](../guides/DOCKER_GUIDE.md#configuring-host-cli-tools-when-omniroute-runs-in-docker). **Končna točka za uveljavitev** na nadzorni plošči (`POST /api/cli-tools/apply`) uveljavlja isto varovalo: v vsebniku zapis, katerega cilj ni priklopljen z gostitelja, vrne **`422`** z `containerEphemeralTarget: true`, varnim besedilom napake in — za orodja s postopkom za gostitelja (claude, codex, opencode, cline, kilo, continue) — vrednostjo `hostSetupCommand` (npr. `omniroute setup-opencode`), ki jo je treba izvesti na gostitelju; nič se ne zapiše. `dryRun: true` še naprej deluje v načinu vsebnika in vrne anonimiziran predogled ter ciljno pot, ne da bi posegel v disk. Vsebina predogleda ni konfiguracija s poverilnicami, ki bi jo lahko kopirali ali uvozili. Uveljavitev izvedite na gostitelju z izvirnimi vnosi za orodje/osnovni URL/ključ API/model ali uporabite navedeni namestitveni ukaz na strani gostitelja. Za glavo predogleda in pogodbo zahteve glejte [Varnost konfiguracije CLI](../security/CLI-CONFIGURATION.md). To vedenje je namerno in pred regresijami zaščiteno s `tests/unit/api/cli-tools/apply-container-guard.test.ts` — napake 422 nikoli ne »popravljajte« z odstranitvijo varovala. --- ## Vir resnice Enotni katalog se nahaja v `src/shared/constants/cliTools.ts` kot `CLI_TOOLS: Record`. Vsak vnos vsebuje naslednja polja (opredeljena v `src/shared/schemas/cliCatalog.ts`): | Polje | Vrsta | Opis | | ----------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------- | | `category` | `"code" \| "agent"` | Na kateri strani je orodje prikazano | | `vendor` | `string` | Izvor orodja ("Anthropic", "OSS (P. Gauthier)") | | `acpSpawnable` | `boolean` | Uporabno tudi kot agent ACP (prikazana značka) | | `baseUrlSupport` | `"full" \| "partial" \| "none"` | Raven podpore za končne točke po meri. `"none"` = zaostanek MITM | | `configType` | `"env" \| "custom" \| "guide" \| "custom-builder" \| "mitm"` | Mehanizem konfiguracije | | `id`, `name`, `color`, `description`, `docsUrl` | standard | Osnovna polja za prikaz | Vnosi z `baseUrlSupport: "none"` **niso prikazani** na straneh nadzorne plošče — registrirani so v zaostanku MITM za načrt 11 (glejte `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md`). ### Ravni zmogljivosti (katalogizirano × zaznavno × nastavljivo × zagonsko) Ni vsako katalogizirano orodje zaznavno, nastavljivo ali zagonsko. Vsaka raven ima en deklarativni vir, preizkus odstopanj pa zagotavlja njihovo usklajenost: | Raven | Pomen | Deklarirano v | | ------------------ | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | | **Katalogizirano** | Prikazano v katalogu nadzorne plošče (ime, ponudnik, dokumentacija, vrsta konfiguracije) | `src/shared/constants/cliTools.ts` (`CLI_TOOLS`) | | **Zaznavno** | Zaznavanje binarne datoteke/konfiguracije, preverjanja stanja, poti konfiguracije | `src/shared/services/cliRuntime.ts` (izvajalni katalog `CLI_TOOLS`) | | **Nastavljivo** | Podprto z `omniroute configure ` (obstaja recept za nastavitev) | `bin/cli/cli-manifest.mjs` (`configure: true`) | | **Zagonsko** | Podprto z `omniroute run ` (določeno vstavljanje okolja/argumentov) | `bin/cli/cli-manifest.mjs` (`run: true`) | `bin/cli/cli-manifest.mjs` je kanonični izvedljivi manifest za površine ukazov CLI: `run`, `configure` in generatorji dopolnjevanja ukazne lupine iz njega pridobivajo sezname ciljev, razreševanje vzdevkov (na primer `kilocode`/`kilo-code`/`kilo_cli` → `kilo`) in povezovanje zastavice `--model`. Varovalo pred odstopanji `tests/unit/cli/cli-manifest-drift.test.ts` preverja, ali manifest, izvajalni katalog, katalog uporabniškega vmesnika in vse uporabniške površine ostajajo usklajeni — cilj, dodan eni površini brez drugih, povzroči neuspeh zbirke preizkusov, namesto da bi prišlo do neopaznega odstopanja. --- ## 1. Katalog CLI Code (26 orodij) Vsa orodja, ki so prikazana v `/dashboard/cli-code`. Orodja z `baseUrlSupport: none` so namesto prek osnovnega URL-ja po meri povezana prek MITM ali navodil za ročno nastavitev: | id | ime | ponudnik | podpora osnovnemu URL-ju | vrsta konfiguracije | možnost zagona ACP | | ------------ | ----------------------- | --------------------- | ------------------------ | ------------------- | ------------------ | | claude | Claude Code | Anthropic | polna | okolje | da | | codex | OpenAI Codex CLI | OpenAI | polna | po meri | da | | zcode | ZCode (GLM Coding Plan) | Z.ai | brez | po meri | ne | | cline | Cline | OSS (prej Claude Dev) | polna | po meri | da | | kilo | Kilo Code | Kilo-Org | polna | po meri | ne | | roo | Roo Code | Roo (OSS) | polna | navodila | ne | | continue | Continue | continue.dev | polna | navodila | ne | | aider | Aider | OSS (P. Gauthier) | polna | navodila | da | | forge | ForgeCode | Antinomy HQ | polna | po meri | da | | jcode | jcode | 1jehuang (OSS) | polna | po meri | ne | | deepseek-tui | DeepSeek TUI | Hunter Bown (OSS) | polna | po meri | ne | | codewhale | CodeWhale | Hmbown (OSS) | polna | po meri | ne | | opencode | OpenCode | Anomaly (prej SST) | polna | navodila | da | | droid | Factory Droid | Factory AI | delna | navodila | ne | | copilot | GitHub Copilot CLI | GitHub/MS | polna | po meri | ne | | cursor-cli | Cursor CLI | Anysphere | delna | navodila | da | | smelt | Smelt | leonardcser (OSS) | polna | po meri | ne | | pi | Pi (pi-coding-agent) | M. Zechner (OSS) | polna | po meri | ne | | grok-build | Grok Build | xAI | polna | po meri | ne | | crush | Crush | OSS (Charm) | polna | po meri | ne | | qwen | Qwen Code | Alibaba | polna | navodila | da | | cursor | Cursor | Anysphere | brez | navodila | ne | | antigravity | Antigravity | Google | brez | mitm | ne | | hermes | Hermes | Nous Research | brez | navodila | ne | | kiro | Kiro AI | Amazon | brez | mitm | ne | | custom | CLI po meri | — | polna | graditelj po meri | ne | Orodja z `baseUrlSupport: "partial"` imajo na kartici nadzorne plošče prikazano značko »⚠ Delni osnovni URL«. --- ## 2. Katalog agentov CLI (10 orodij) Avtonomni agenti, ki so prikazani na `/dashboard/cli-agents`: | id | ime | ponudnik | podpora za baseUrl | mogoče zagnati prek ACP | | ------------ | ---------------- | ------------------------ | ------------------ | ----------------------- | | hermes-agent | Hermes Agent | Nous Research | polna | false | | openclaw | OpenClaw | OSS (P. Steinberger) | polna | true | | goose | Goose | Block / Linux Foundation | polna | true | | interpreter | Open Interpreter | OSS | polna | true | | warp | Warp AI | Warp Inc. | delna | true | | agent-deck | Agent Deck | asheshgoplani (OSS) | polna | false | | omp | Oh My Pi | OSS | polna | true | | letta | Letta CLI | Letta | polna | false | | prime-agent | Prime Agent | Prime Intellect (OSS) | polna | false | | 5dive | 5dive | OSS (5dive-ai) | polna | false | --- ## 3. Agenti ACP (/dashboard/acp-agents) Ta stran (preimenovana iz `/dashboard/agents`) prikazuje orodja CLI, ki jih lahko OmniRoute **zažene** kot izvajalna zaledna okolja prek protokola stdio/ACP. Katalog se vzdržuje ločeno v `src/lib/acp/registry.ts` in **ni** enak kot `CLI_TOOLS`. --- ## 4. Seznam načrtovanih opravil MITM (ni prikazan na nadzorni plošči) Naslednja orodja CLI izvorno ne podpirajo osnovnega URL-ja po meri in **niso navedena** na straneh CLI Code ali CLI Agents. So kandidati za prestrezanje MITM v načrtu 11: | CLI | Razlog | | ------------------- | ------------------------------------------------------------ | | windsurf | BYOK je omejen na izbrane modele Claude + poslovni URL/žeton | | amp | Zaprt ekosistem (Sourcegraph) | | amazon-q / kiro-cli | Avtentikacija AWS SSO, brez URL-ja po meri | | cowork | Anthropic Desktop, brez nastavljive končne točke | Za celoten navzkrižni pregled glejte `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md`. --- ## 5. API za paketno zaznavanje Celotno zaznavanje orodij je združeno prek ene končne točke: **`GET /api/cli-tools/all-statuses`** - Avtentikacija: `requireCliToolsAuth(request)` (enako kot pri drugih poteh `/api/cli-tools/`) - Vrne: `Record` (tip: `src/shared/types/cliBatchStatus.ts`) - Strategija: `Promise.all` za vsa orodja, 5-sekundna časovna omejitev na posamezno orodje - Predpomnilnik: LRU v pomnilniku, indeksiran glede na `mtime` konfiguracijske datoteke. Predpomnilnik se razveljavi, ko se `mtime` spremeni. Ponastavi se ob ponovnem zagonu strežnika. Struktura odziva za posamezno orodje: ```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; // prečiščeno, brez sledi sklada } ``` --- ## 6. Upravljavci nastavitev za nova orodja Nova orodja z `configType: "custom"` imajo namenske API-poti za nastavitve: | Pot | Orodje | | ------------------------------------------- | ------------------------------------------------------------------------------- | | `POST /api/cli-tools/forge-settings` | ForgeCode (.forge.toml) | | `POST /api/cli-tools/jcode-settings` | jcode (zastavica --base-url) | | `POST /api/cli-tools/deepseek-tui-settings` | DeepSeek TUI (OPENAI_BASE_URL, podedovano) | | `POST /api/cli-tools/codewhale-settings` | CodeWhale (OPENAI_BASE_URL, primarna + podedovana sinhronizacija `~/.deepseek`) | | `POST /api/cli-tools/smelt-settings` | Smelt | | `POST /api/cli-tools/pi-settings` | Kodirni agent 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` + namenski ključ `.env`) | Vse poti za odgovore o napakah uporabljajo `sanitizeErrorMessage()` (strogo pravilo št. 12). --- ## 7. Arhitektura strani nadzorne plošče ### CLI Code (`/dashboard/cli-code`) - `src/app/(dashboard)/dashboard/cli-code/page.tsx` — strežniška komponenta - `src/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx` — odjemalska mreža - `src/app/(dashboard)/dashboard/cli-code/[id]/page.tsx` — stran s podrobnostmi orodja - `src/app/(dashboard)/dashboard/cli-code/components/` — 12 specializiranih kartic orodij + `ToolDetailClient.tsx` ### Agenti CLI (`/dashboard/cli-agents`) - `src/app/(dashboard)/dashboard/cli-agents/page.tsx` — strežniška komponenta - `src/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx` — odjemalska mreža - `src/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx` — ponovno uporablja `ToolDetailClient` ### Agenti ACP (`/dashboard/acp-agents`) - `src/app/(dashboard)/dashboard/acp-agents/page.tsx` — strežniška komponenta (premaknjena iz `agents/`) ### Skupne komponente uporabniškega vmesnika (`src/shared/components/cli/`) | Datoteka | Namen | | ----------------------- | ------------------------------------------------------------------ | | `CliToolCard.tsx` | Pametna kartica stanja (zaznavanje + konfiguracija + končna točka) | | `CliConceptCard.tsx` | Kartica z razlago koncepta za posamezno stran | | `CliComparisonCard.tsx` | Primerjava vrst CLI v treh stolpcih | | `BaseUrlSelect.tsx` | Spustni seznam končnih točk (lokalna/oblačna/po meri) | | `ApiKeySelect.tsx` | Izbirnik ključa API | | `ManualConfigModal.tsx` | Modalno okno z izsekom konfiguracije, ki ga je mogoče kopirati | ### Skupna kljuka (`src/shared/hooks/cli/`) | Datoteka | Namen | | ------------------------- | ------------------------------------------------------------------------------- | | `useToolBatchStatuses.ts` | Pridobi `/api/cli-tools/all-statuses` ter upravlja stanje nalaganja/osveževanja | --- ## 8. i18n Novi imenski prostori, dodani v načrtu 14 F9: | Imenski prostor | Namen | | --------------- | --------------------------------------------------------------------------------------- | | `cliCommon` | Skupni nizi (oznake kartic, besedila konceptov/primerjav, oznake strani s podrobnostmi) | | `cliCode` | Nizi strani CLI Code | | `cliAgents` | Nizi strani CLI Agents | | `acpAgents` | Nizi strani ACP Agents | Na voljo so celotni prevodi za PT-BR in EN. 39 drugih jezikovnih nastavitev samodejno uporabi EN prek združevanja na ravni imenskega prostora v `src/i18n/request.ts`. --- ## 9. Hitri začetek ### 1. korak — Pridobite ključ API OmniRoute 1. Odprite `/dashboard/api-manager` → **Ustvari ključ API** 2. Dodelite mu ime (npr. `cli-tools`) in izberite vsa dovoljenja 3. Kopirajte ključ — potrebovali ga boste za vsako spodnje orodje CLI > Vaš ključ je videti tako: `sk-xxxxxxxxxxxxxxxx-xxxxxxxxx` --- ### 2. korak — Namestite orodja CLI Vsa orodja, ki temeljijo na npm, zahtevajo Node.js 22.22.2+ ali 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 (mogoče ga je zagnati z `omniroute run gemini` → vmesnik /v1beta) npm install -g @google/gemini-cli # Aider pip install aider-chat # Smelt cargo install smelt # Temelji na Rustu # Programerski agent Pi # navodila za namestitev so na https://github.com/zechnerj/pi-coding-agent # jcode # navodila za namestitev so na https://github.com/1jehuang/jcode ``` --- ### 3. korak — Konfigurirajte prek nadzorne plošče 1. Pojdite na `http://localhost:20128/dashboard/cli-code` 2. V mreži poiščite svoje orodje 3. Kliknite kartico, da odprete stran s podrobnostmi o orodju 4. Izberite svoj ključ API in osnovni URL 5. Kliknite **Uporabi konfiguracijo** ali kopirajte izsek za ročno konfiguracijo --- ### 4. korak — Nastavite globalne spremenljivke okolja ```bash # Univerzalna končna točka 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 bere GOOGLE_GEMINI_BASE_URL v KORENU (njegov SDK sam doda /v1beta/...) export GOOGLE_GEMINI_BASE_URL="http://localhost:20128" export GEMINI_API_KEY="sk-your-omniroute-key" ``` > Za **oddaljeni strežnik** zamenjajte `localhost:20128` z naslovom IP ali domeno strežnika, > npr. `http://:20128`. --- ### 4. korak — Konfigurirajte posamezna orodja #### Claude Code ```bash # Ustvarite ~/.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 ``` Za Claude Code uporabite koren poenotenega prehoda Anthropic. Tukaj ne dodajajte `/v1`. **Preizkus:** `claude "say hello"` --- #### OpenAI Codex Sodobni Codex (v0.137+) bere samo `~/.codex/config.toml` — stari `config.yaml` pripada starejšemu orodju npm CLI in je brez opozorila prezrt. Ključ API ostane v spremenljivki okolja `OMNIROUTE_API_KEY` (`env_key`) in nikoli v datoteki: ```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" ``` Celotna referenčna dokumentacija (profili, `wire_api`, kontekstna okna): [CODEX-CLI-CONFIGURATION.md](../guides/CODEX-CLI-CONFIGURATION.md). **Preizkus:** `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 ``` **Preizkus:** `opencode` > Uporabite `opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant high` > za pošiljanje različic z razmišljanjem. --- #### Cline (CLI ali VS Code) **Način 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 ``` **Način VS Code:** Nastavitve razširitve Cline → Ponudnik API: `OpenAI Compatible` → Osnovni URL: `http://localhost:20128/v1` Uporabite lahko tudi nadzorno ploščo OmniRoute → **Orodja CLI → Cline → Uporabi konfiguracijo**. --- #### KiloCode (CLI ali VS Code) **Način CLI:** ```bash kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key ``` **Nastavitve VS Code:** ```json { "kilo-code.openAiBaseUrl": "http://localhost:20128/v1", "kilo-code.apiKey": "sk-your-omniroute-key" } ``` Uporabite lahko tudi nadzorno ploščo OmniRoute → **Orodja CLI → KiloCode → Uporabi konfiguracijo**. --- #### Continue (razširitev VS Code) Uredite `~/.continue/config.yaml`: ```yaml models: - name: OmniRoute provider: openai model: auto apiBase: http://localhost:20128/v1 apiKey: sk-your-omniroute-key default: true ``` Po urejanju znova zaženite VS Code. --- #### VS Code Insiders (`chatLanguageModels.json`) To uporabite, ko je VS Code Insiders konfiguriran za modele končnih točk po meri in želite, da OmniRoute deluje brez polja glave po meri. **Priporočena lokacija:** - Linux: `~/.config/Code - Insiders/User/chatLanguageModels.json` - Windows: `%APPDATA%/Code - Insiders/User/chatLanguageModels.json` **Primer uporabe tokeniziranega vzdevka OmniRoute:** ```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" } } ] ``` **Opombe:** - Zamenjajte `sk-your-omniroute-key` s ključem API, ustvarjenim v OmniRoute. - Polje `url` mora kazati na `/api/v1/vscode/{token}/chat/completions`. - Polje `modelsUrl` mora kazati na `/api/v1/vscode/{token}/models`. - Če odjemalec podpira glave po meri, uporabite običajni potek `/v1` z glavo Bearer. - Tokeni, vdelani v URL, so nadomestna možnost za zagotavljanje združljivosti in se lahko pojavijo v dnevnikih urejevalnika ali zgodovini posredniškega strežnika. --- #### Kiro CLI (Amazon) ```bash # Prijavite se v svoj račun AWS/Kiro: kiro-cli login # CLI uporablja lastno preverjanje pristnosti — OmniRoute ni potreben kot zaledje za sam Kiro CLI. # Kiro CLI uporabljajte skupaj z OmniRoute za druga orodja. kiro-cli status ``` Za namizno aplikacijo **Kiro IDE** uporabite končno točko MITM, ki jo zagotavlja OmniRoute pod `/dashboard/cli-tools → Kiro`. --- ## 10. Interni CLI OmniRoute Binarna datoteka `omniroute` ponuja ukaze za upravljanje življenjskega cikla strežnika, nastavitev, diagnostike in ponudnikov. Vstopna točka: `bin/omniroute.mjs`. ```bash omniroute # Zaženi strežnik (privzeta vrata 20128) omniroute setup # Interaktivni čarovnik za nastavitev omniroute doctor # Preveri konfiguracijo, zbirko podatkov, vrata in izvajalno okolje omniroute providers list # Konfigurirane povezave s ponudniki omniroute providers test-all # Preizkusi vse aktivne povezave omniroute reset-password # Ponastavi skrbniško geslo omniroute logs # Pretočno prikazuj dnevnike zahtev omniroute health # Podrobno stanje (odklopniki, predpomnilnik, pomnilnik) omniroute --version # Izpiši različico omniroute --help # Prikaži vse ukaze ``` ### Nastavitev in inicializacija ```bash omniroute setup # Interaktivni čarovnik za nastavitev omniroute setup --non-interactive # Način CI/avtomatizacije (bere spremenljivke okolja in zastavice) omniroute setup --password '' # Neposredno nastavi skrbniško geslo omniroute setup --add-provider \ --provider openai \ --api-key '' \ --test-provider # Dodaj in preizkusi ponudnika v enem koraku ``` Prepoznane spremenljivke okolja za neinteraktivno nastavitev: | Spremenljivka | Namen | | ------------------- | ---------------------------------------------------------------------- | | `OMNIROUTE_API_KEY` | Ključ API ponudnika (vezan na `--api-key` prek Commanderjeve `.env()`) | | `DATA_DIR` | Preglasi podatkovni imenik OmniRoute | Vsi drugi neinteraktivni vnosi se posredujejo kot zastavice in ne kot spremenljivke okolja: `--password`, `--provider`, `--provider-name`, `--provider-base-url`, `--default-model` (glejte zgornje možnosti za `omniroute setup`). ### Diagnostika ```bash omniroute doctor # Preveri konfiguracijo, zbirko podatkov, vrata, izvajalno okolje, pomnilnik in dosegljivost omniroute doctor --json # Strojno berljiv JSON omniroute doctor --no-liveness # Preskoči preverjanje stanja prek HTTP omniroute doctor --host 0.0.0.0 # Preglasi gostitelja za preverjanje dosegljivosti omniroute doctor --liveness-url # Preglasi celoten URL končne točke za preverjanje stanja ``` Ukaz doctor izvede naslednja preverjanja: `Config`, `Database`, `Storage/encryption`, `Port availability`, `Node runtime`, `Native binary` (better-sqlite3), `Memory` in `Server liveness`. Če ima katero koli preverjanje stanje `fail`, se konča z neničelno izhodno kodo. ### Upravljanje ponudnikov ```bash omniroute providers available # Katalog ponudnikov OmniRoute omniroute providers available --search openai # Filtriraj katalog po ID-ju/imenu/vzdevku/kategoriji omniroute providers available --category api-key # Filtriraj po kategoriji (api-key, oauth, free, ...) omniroute providers available --json # Strojno berljiv JSON omniroute providers list # Konfigurirane povezave s ponudniki omniroute providers list --json omniroute providers test # Preizkusi eno konfigurirano povezavo omniroute providers test-all # Preizkusi vse aktivne povezave omniroute providers validate # Samo lokalno strukturno preverjanje veljavnosti omniroute providers add --credential-env PROVIDER_KEY omniroute providers import ./providers.json --dry-run --json omniroute providers auth # Obstoječi potek OAuth omniroute providers edit --default-model omniroute providers remove --yes ``` `providers add/import/auth/edit/remove` prednostno uporabljajo API in zato delujejo v aktivnem lokalnem ali oddaljenem kontekstu. Za vnos poverilnic uporabite `--credential-stdin` ali `--credential-env`; `--dry-run --json` poroča samo o redigirani prisotnosti/obliki. `providers available` bere katalog OmniRoute; `providers list/test/test-all/validate` ohranijo svoje lokalno vedenje SQLite in ne zahtevajo delujočega strežnika. Za vozlišče po meri, združljivo z OpenAI ali Anthropic, pripnite poverilnice ID-ju vozlišča, ki ga vrne `omniroute nodes add`, z uporabo `omniroute keys add "$NODE_ID" --stdin`. Za to sta potrebna delujoč strežnik in avtentikacija za upravljanje v aktivnem kontekstu. CLI uporablja `POST /api/providers`, ki preveri vozlišče in kopira njegove nastavitve končne točke v povezavo. Manjkajoče vozlišče, neuspešna avtorizacija ali nedosegljiv strežnik vrnejo napako, ne da bi ustvarili lokalno nadomestno poverilnico. `nodes add --base-url` nastavi končno točko vozlišča; ta se razlikuje od naslova strežnika v `OMNIROUTE_BASE_URL`. Za datoteke OpenAPI uporabite `omniroute openapi dump --format json --out ./openapi.json`; globalna možnost `--output` izbere oblikovanje prikaza CLI in ne imena ciljne datoteke. ### Obnovitev in ponastavitev ```bash omniroute reset-password # Ponastavi skrbniško geslo (tudi: omniroute-reset-password) omniroute reset-encrypted-columns # Prikaži opozorilo in simulacijo ponastavitve šifriranih poverilnic omniroute reset-encrypted-columns --force # Dejansko nastavi šifrirane poverilnice v SQLite na ničelno vrednost ``` ### Izvoz poverilnic (⚠ ravnajte previdno) ```bash omniroute auth export # Prikaži opozorilo in zahtevo za potrditev — brez dostopa do zbirke podatkov omniroute auth export --force # Izvozi DEŠIFRIRANE poverilnice VSEH povezav v stdout kot JSON omniroute auth export --force --id # Izvozi samo ujemajočo se povezavo omniroute auth export --force --format env # Izpiši vrstice OMNIROUTE__= omniroute auth export --force --out creds.json # Zapiši v datoteko (ustvarjeno z dovoljenji 0600) ``` `auth export` deluje **samo lokalno** (neposredno branje SQLite, brez poti HTTP) in namenoma izpiše/zapiše vrednosti `apiKey`/`accessToken`/`refreshToken`/`idToken` kot **navadno besedilo** — to je funkcionalnost, ne napaka. Brez `--force` se iz podatkovne zbirke ne prebere nič in nič se ne dešifrira. Pred izpisom kakršnega koli navadnega besedila se v stderr vedno izpiše opozorilna pasica. Zahteva, da je nastavljen `STORAGE_ENCRYPTION_KEY`. Polje, ki ga ni mogoče dešifrirati (zastarel ključ, poškodovano šifrirano besedilo), se namesto prekinitve celotnega izvoza ali razkritja osnovne napake prijavi kot `DecryptFailed: true`. ### Drugi podukazi Ti predpostavljajo delujoč strežnik OmniRoute, razen če je navedeno drugače: ```bash omniroute status # Celovito stanje izvajanja omniroute logs # Pretakanje dnevnikov zahtev (--json, --search, --follow) omniroute config list # Prikaz konfiguriranih orodij CLI omniroute provider list # Seznam razpoložljivih ponudnikov (vzdevek za providers list) omniroute provider add # Registracija OmniRoute kot ponudnika v orodju omniroute keys add | list | remove # Upravljanje ključev API omniroute models [provider] # Seznam modelov (--json, --search) omniroute combo list | switch | create | delete omniroute backup # Posnetek konfiguracije + podatkovne zbirke omniroute restore # Obnovitev iz prejšnjega posnetka omniroute health # Podrobno stanje sistema (odklopniki, predpomnilnik, pomnilnik) omniroute quota # Poraba kvote ponudnika omniroute cache # Stanje predpomnilnika omniroute cache clear # Počisti semantične predpomnilnike in predpomnilnike podpisov omniroute mcp status | restart # Stanje/ponovni zagon strežnika MCP omniroute a2a status | card # Stanje strežnika A2A/kartica agenta omniroute tunnel list | create | stop # Upravljanje tunelov (cloudflare/tailscale/ngrok) omniroute env show | get | set # Pregled/nastavitev okoljskih spremenljivk (začasno) omniroute test # Osnovni preizkus povezljivosti ponudnika omniroute update # Preverjanje posodobitev omniroute completion # Ustvarjanje dopolnjevanja ukazne lupine ``` ### Pogoste zastavice | Zastavica | Opis | | ------------------- | --------------------------------------------------- | | `--no-open` | Ob zagonu ne odpri samodejno brskalnika | | `--port ` | Prepiši vrata API (privzeto 20128) | | `--mcp` | Zaženi kot strežnik MCP prek stdio (za IDE-je) | | `--non-interactive` | Način CI (brez pozivov; bere iz okolja/zastavic) | | `--json` | Strojno berljiv izhod JSON (doctor, providers itd.) | | `--help`, `-h` | Prikaži pomoč za določen ukaz | | `--version`, `-v` | Izpiši nameščeno različico | --- ## Razpoložljive končne točke API-ja | Končna točka | Opis | Uporaba za | | -------------------------- | --------------------------------- | ----------------------------------------- | | `/v1/chat/completions` | Standardni klepet (vsi ponudniki) | Vsa sodobna orodja | | `/v1/responses` | API Responses (oblika OpenAI) | Codex, agentski delovni tokovi | | `/v1/completions` | Podedovana dokončanja besedila | Starejša orodja, ki uporabljajo `prompt:` | | `/v1/embeddings` | Besedilne vložitve | RAG, iskanje | | `/v1/images/generations` | Ustvarjanje slik | GPT-Image, Flux itd. | | `/v1/audio/speech` | Pretvorba besedila v govor | ElevenLabs, OpenAI TTS | | `/v1/audio/transcriptions` | Pretvorba govora v besedilo | Deepgram, AssemblyAI | Primeri z žetoniziranim URL-jem OmniRoute, pripravljeni za lepljenje: ```txt Primer žetona: sk-a3ab3c080beaee3a-69f4a4-070d71af Standardna osnova OpenAI: http://localhost:20128/v1 Modeli VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/models Klepet VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completions Odgovori VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responses Oznake Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tags Klepet Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chat ``` --- ## Odpravljanje težav | Napaka | Vzrok | Rešitev | | ------------------------------------------------------ | --------------------------------- | ------------------------------------------------------- | | `Connection refused` | OmniRoute se ne izvaja | `omniroute serve` | | `401 Unauthorized` | Napačen ključ API-ja | Preverite v `/dashboard/api-manager` | | `No combo configured` | Ni aktivne kombinacije usmerjanja | Nastavite jo v `/dashboard/combos` | | CLI prikazuje »not installed« | Izvršljiva datoteka ni v PATH | Preverite `which ` | | Nadzorna plošča po namestitvi prikazuje »not detected« | Predpomnilnik je zastarel | Na nadzorni plošči kliknite »⟳ Refresh detection« | | Stara povezava `/dashboard/cli-tools` | Zaznamek iz časa pred v3.8.6 | Samodejno preusmerjeno na `/dashboard/cli-code` (308) | | Stara povezava `/dashboard/agents` | Zaznamek iz časa pred v3.8.6 | Samodejno preusmerjeno na `/dashboard/acp-agents` (308) | ## Upravljanje pravilnika ključa za sklepanje s CLI-jem OmniRoute Uporabite overjen kontekst za upravljanje (glejte [Oddaljeni način](../guides/REMOTE-MODE.md)), da po ID-ju pregledate ali posodobite obstoječi ključ za sklepanje: ```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` je vzdevek za `--model-access-mode all`. Posodobitev počisti seznam dovoljenih modelov. Ohrani obsege, pravila povezav, blokirane modele, omejitve hitrosti in omejitve stroškov, zato lahko ti drugi nadzori še vedno zavrnejo zahtevo. Izrecni `--allowed-models ""` prav tako izbere `all`; združite ga z `--model-access-mode restricted`, da ohranite omejeni ključ brez dovoljenih modelov. Neprazen seznam, ločen z vejicami, izbere `restricted`, razen če je izrecno določeno drugače. Protislovna kombinacija `all` in nepraznega seznama dovoljenih modelov je zavrnjena pred pošiljanjem zahteve. `--rate-limit 30` nastavi število zahtev na minuto in ohrani pravila za druga časovna okna. `--max-cost 5` omogoči dnevno omejitev v USD, ne da bi spremenil tedensko omejitev; `--max-cost 0` odstrani dnevno omejitev ter ohrani obstoječe stikalo omejitve porabe in tedensko omejitev. Izpuščena polja pravilnika ostanejo nespremenjena. Spremembe omejitve hitrosti najprej preberejo trenutni pravilnik; izogibajte se sočasnemu urejanju polja omejitev hitrosti istega ključa. Ukazi pravilnika uporabljajo overjena `GET`/`PATCH /api/keys/{id}` ter upoštevajo aktivni kontekst in globalno možnost `--api-key`. Izhod JSON vsebuje samo polja pravilnika, brez shranjenega ključa ali njegove zakrite predstavitve. Poverilnica, namenjena samo sklepanju, ne more odobriti sprememb upravljanja. Odgovor 401/403 zahteva preverjanje poverilnice in konteksta za upravljanje; ne dokazuje napake lokalnega žetona CLI-ja ali soli. Za ločeno lokalno pogodbo za overjanje glejte [Žeton CLI-ja](../security/CLI_TOKEN.md).