# CLI Tools — OmniRoute (Čeština) 🌐 **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) · 🇩🇰 [da](../../../da/docs/reference/CLI-TOOLS.md) · 🇩🇪 [de](../../../de/docs/reference/CLI-TOOLS.md) · 🇬🇷 [el](../../../el/docs/reference/CLI-TOOLS.md) · 🇪🇸 [es](../../../es/docs/reference/CLI-TOOLS.md) · 🇪🇪 [et](../../../et/docs/reference/CLI-TOOLS.md) · 🇮🇷 [fa](../../../fa/docs/reference/CLI-TOOLS.md) · 🇫🇮 [fi](../../../fi/docs/reference/CLI-TOOLS.md) · 🇫🇷 [fr](../../../fr/docs/reference/CLI-TOOLS.md) · 🇮🇪 [ga](../../../ga/docs/reference/CLI-TOOLS.md) · 🇮🇳 [gu](../../../gu/docs/reference/CLI-TOOLS.md) · 🇳🇬 [ha](../../../ha/docs/reference/CLI-TOOLS.md) · 🇮🇱 [he](../../../he/docs/reference/CLI-TOOLS.md) · 🇮🇳 [hi](../../../hi/docs/reference/CLI-TOOLS.md) · 🇭🇷 [hr](../../../hr/docs/reference/CLI-TOOLS.md) · 🇭🇺 [hu](../../../hu/docs/reference/CLI-TOOLS.md) · 🇦🇲 [hy](../../../hy/docs/reference/CLI-TOOLS.md) · 🇮🇩 [id](../../../id/docs/reference/CLI-TOOLS.md) · 🇳🇬 [ig](../../../ig/docs/reference/CLI-TOOLS.md) · 🇮🇹 [it](../../../it/docs/reference/CLI-TOOLS.md) · 🇯🇵 [ja](../../../ja/docs/reference/CLI-TOOLS.md) · 🇬🇪 [ka](../../../ka/docs/reference/CLI-TOOLS.md) · 🇰🇭 [km](../../../km/docs/reference/CLI-TOOLS.md) · 🇮🇳 [kn](../../../kn/docs/reference/CLI-TOOLS.md) · 🇰🇷 [ko](../../../ko/docs/reference/CLI-TOOLS.md) · 🇱🇹 [lt](../../../lt/docs/reference/CLI-TOOLS.md) · 🇱🇻 [lv](../../../lv/docs/reference/CLI-TOOLS.md) · 🇮🇳 [ml](../../../ml/docs/reference/CLI-TOOLS.md) · 🇮🇳 [mr](../../../mr/docs/reference/CLI-TOOLS.md) · 🇲🇾 [ms](../../../ms/docs/reference/CLI-TOOLS.md) · 🇲🇹 [mt](../../../mt/docs/reference/CLI-TOOLS.md) · 🇲🇲 [my](../../../my/docs/reference/CLI-TOOLS.md) · 🇳🇵 [ne](../../../ne/docs/reference/CLI-TOOLS.md) · 🇳🇱 [nl](../../../nl/docs/reference/CLI-TOOLS.md) · 🇳🇴 [no](../../../no/docs/reference/CLI-TOOLS.md) · 🇮🇳 [or](../../../or/docs/reference/CLI-TOOLS.md) · 🇮🇳 [pa](../../../pa/docs/reference/CLI-TOOLS.md) · 🇵🇭 [phi](../../../phi/docs/reference/CLI-TOOLS.md) · 🇵🇱 [pl](../../../pl/docs/reference/CLI-TOOLS.md) · 🇵🇹 [pt](../../../pt/docs/reference/CLI-TOOLS.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/reference/CLI-TOOLS.md) · 🇷🇴 [ro](../../../ro/docs/reference/CLI-TOOLS.md) · 🇷🇺 [ru](../../../ru/docs/reference/CLI-TOOLS.md) · 🇱🇰 [si](../../../si/docs/reference/CLI-TOOLS.md) · 🇸🇰 [sk](../../../sk/docs/reference/CLI-TOOLS.md) · 🇸🇮 [sl](../../../sl/docs/reference/CLI-TOOLS.md) · 🇷🇸 [sr](../../../sr/docs/reference/CLI-TOOLS.md) · 🇸🇪 [sv](../../../sv/docs/reference/CLI-TOOLS.md) · 🇰🇪 [sw](../../../sw/docs/reference/CLI-TOOLS.md) · 🇮🇳 [ta](../../../ta/docs/reference/CLI-TOOLS.md) · 🇮🇳 [te](../../../te/docs/reference/CLI-TOOLS.md) · 🇹🇭 [th](../../../th/docs/reference/CLI-TOOLS.md) · 🇹🇷 [tr](../../../tr/docs/reference/CLI-TOOLS.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/reference/CLI-TOOLS.md) · 🇵🇰 [ur](../../../ur/docs/reference/CLI-TOOLS.md) · 🇺🇿 [uz](../../../uz/docs/reference/CLI-TOOLS.md) · 🇻🇳 [vi](../../../vi/docs/reference/CLI-TOOLS.md) · 🇳🇬 [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) --- Poslední aktualizace: 2026-08-23 OmniRoute se integruje se třemi kategoriemi nástrojů CLI rozdělenými mezi tři vyhrazené stránky řídicího panelu: | Stránka | Trasa | Koncept | Počet | | -------------- | ----------------------- | -------------------------------------------------------------------------------------- | ----------- | | **CLI Code's** | `/dashboard/cli-code` | Programovací nástroje směrované na OmniRoute (Klient → CLI → OmniRoute → Poskytovatel) | 26 | | **CLI Agents** | `/dashboard/cli-agents` | Autonomní agenti směrovaní na OmniRoute (stejný tok, širší rozsah) | 10 | | **ACP Agents** | `/dashboard/acp-agents` | CLI, které OmniRoute spouští jako backend přes stdio/ACP (obrácený tok) | viz registr | Starší trasy jsou přesměrovány pomocí 308: `/dashboard/cli-tools` → `/dashboard/cli-code`, `/dashboard/agents` → `/dashboard/acp-agents`. --- ## Jak to funguje ``` CLI Code's / CLI Agents (tok využití): Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ... │ ▼ (všechny směřují na OmniRoute) http://YOUR_SERVER:20128/v1 │ ▼ (OmniRoute směruje požadavek ke správnému poskytovateli) Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ... ACP Agents (obrácený tok spouštění): Požadavek klienta → OmniRoute → spustí CLI přes stdio/ACP → odpověď ``` **Výhody:** - Jeden klíč API pro správu všech nástrojů - Sledování nákladů napříč všemi CLI v řídicím panelu - Přepínání modelů bez nutnosti znovu konfigurovat každý nástroj - Funguje lokálně i na vzdálených serverech (VPS, Docker, Akamai, Cloudflare Tunnel) --- ## Automatická konfigurace pomocí `setup-*` Konfiguraci jednotlivých nástrojů nemusíte psát ručně. OmniRoute poskytuje pro každé podporované CLI příkaz `setup-*`, který načte **aktuální** katalog modelů ze spuštěné instance OmniRoute (místní nebo vzdálené) a zapíše vlastní konfiguraci nástroje do vašeho počítače: ```bash omniroute setup-codex omniroute setup-claude omniroute setup-opencode omniroute setup-cline omniroute setup-kilo omniroute setup-continue omniroute setup-cursor omniroute setup-roo omniroute setup-crush omniroute setup-goose omniroute setup-qwen omniroute setup-aider omniroute setup-5dive omniroute setup-zed ``` Každý z nich podporuje `--remote --api-key ` (konfigurace místního nástroje pro vzdálenou instanci OmniRoute), `--dry-run` (náhled bez zápisu) a `--port`. Nástroje bez automatického zjišťování modelů (Cline, Kilo, Roo, Goose, Aider, Qwen, 5dive) přijímají `--model ` (a `--yes` pro neinteraktivní spuštění). `setup-5dive` je jediný postup, který nezapisuje do `$HOME`: konfiguruje flotilu agentů 5dive zapsáním kořenovým uživatelem vlastněného ověřovacího profilu na hostiteli flotily, takže se znovu spustí prostřednictvím `sudo` a nemá vlastní vzdálený režim. Chcete-li spustit CLI se správně předanými proměnnými prostředí, aniž by se zapsala jakákoli konfigurace, použijte obecný spouštěč `omniroute run ` (claude, codex, aider, goose, opencode, qwen, gemini — cíle a aliasy pocházejí z `bin/cli/cli-manifest.mjs`); starší spouštěče pro jednotlivé nástroje `omniroute launch` (Claude Code) a `omniroute launch-codex` (Codex) zůstávají dostupné. Gemini CLI lze pouze spouštět: je cílem příkazu `omniroute run`, ale nemá postup `setup-*`/`configure`. > **Kompletní reference:** hlavní tabulku — co jednotlivé příkazy zapisují, všechny příznaky, místní a vzdálený režim a které nástroje vyžadují příponu `/v1` — najdete v dokumentu > **[Integrace CLI](../guides/CLI-INTEGRATIONS.md)**. ### Spouštění těchto příkazů uvnitř kontejneru Příkaz `setup-*` spuštěný uvnitř kontejneru OmniRoute zapisuje do domovského adresáře samotného kontejneru, který žádné CLI na hostiteli nečte a který po zániku kontejneru zmizí. OmniRoute tuto situaci rozpozná a namísto zápisu skončí s kódem `2` a zobrazí pokyny. Existují dva podporované postupy — nainstalovat CLI na hostitele a připojit se ke kontejneru pomocí `omniroute connect`, nebo připojit konfigurační adresáře pomocí bind mountu a nastavit `CLI_CONFIG_HOME` (profil compose `host`). Každý příkaz `setup-*` a také `omniroute configure` a `omniroute config set` podporují `--allow-container-write`, pokud skutečně chcete konfigurovat CLI samotného kontejneru; stejného výsledku lze pro server dosáhnout pomocí `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true`. Viz [Průvodce Dockerem → Konfigurace nástrojů CLI na hostiteli](../guides/DOCKER_GUIDE.md#configuring-host-cli-tools-when-omniroute-runs-in-docker). **Koncový bod apply** řídicího panelu (`POST /api/cli-tools/apply`) vynucuje stejnou ochranu: v kontejneru požadavek na zápis, jehož cíl není připojen z hostitele pomocí bind mountu, odpoví kódem **`422`** s `containerEphemeralTarget: true`, bezpečným textem chyby a — u nástrojů s postupem pro hostitele (claude, codex, opencode, cline, kilo, continue) — také s `hostSetupCommand` (např. `omniroute setup-opencode`), který je třeba spustit na hostiteli; nic se nezapíše. `dryRun: true` funguje i nadále v režimu kontejneru a vrací redigovaný náhled a cílovou cestu, aniž by se dotkl disku. Obsah náhledu nepředstavuje konfiguraci obsahující přihlašovací údaje, kterou by bylo možné zkopírovat nebo importovat. Použijte původní vstupy nástroje, základní URL, klíče API a modelu na hostiteli nebo použijte uvedený instalační příkaz na straně hostitele. Informace o záhlaví náhledu a kontraktu požadavku najdete v dokumentu [Zabezpečení konfigurace CLI](../security/CLI-CONFIGURATION.md). Toto chování je záměrné a proti regresím je chráněno testem `tests/unit/api/cli-tools/apply-container-guard.test.ts` — chybu 422 se nikdy nepokoušejte „opravit“ odstraněním této ochrany. --- ## Zdroj pravdy Sjednocený katalog se nachází v `src/shared/constants/cliTools.ts` jako `CLI_TOOLS: Record`. Každá položka obsahuje následující pole (definovaná v `src/shared/schemas/cliCatalog.ts`): | Pole | Typ | Popis | | ----------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------- | | `category` | `"code" \| "agent"` | Na které stránce se nástroj zobrazuje | | `vendor` | `string` | Původ nástroje („Anthropic“, „OSS (P. Gauthier)“) | | `acpSpawnable` | `boolean` | Lze jej použít také jako agenta ACP (zobrazuje se odznak) | | `baseUrlSupport` | `"full" \| "partial" \| "none"` | Úroveň podpory vlastního koncového bodu. `"none"` = backlog MITM | | `configType` | `"env" \| "custom" \| "guide" \| "custom-builder" \| "mitm"` | Mechanismus konfigurace | | `id`, `name`, `color`, `description`, `docsUrl` | standard | Základní pole pro zobrazení | Položky s `baseUrlSupport: "none"` se na stránkách řídicího panelu **nezobrazují** — jsou evidovány v backlogu MITM pro plán 11 (viz `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md`). ### Úrovně schopností (katalogizovatelné × detekovatelné × konfigurovatelné × spustitelné) Ne každý katalogizovaný nástroj lze detekovat, konfigurovat nebo spustit. Každá úroveň má jeden deklarativní zdroj a test odchylek zajišťuje jejich vzájemný soulad: | Úroveň | Význam | Deklarováno v | | --------------------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | | **Katalogizovatelné** | Zobrazuje se v katalogu řídicího panelu (název, dodavatel, dokumentace, typ konfigurace) | `src/shared/constants/cliTools.ts` (`CLI_TOOLS`) | | **Detekovatelné** | Detekce binárního souboru/konfigurace, kontroly stavu, cesty ke konfiguraci | `src/shared/services/cliRuntime.ts` (běhový katalog `CLI_TOOLS`) | | **Konfigurovatelné** | Podporováno příkazem `omniroute configure ` (existuje postup nastavení) | `bin/cli/cli-manifest.mjs` (`configure: true`) | | **Spustitelné** | Podporováno příkazem `omniroute run ` (definováno předávání proměnných prostředí/argumentů) | `bin/cli/cli-manifest.mjs` (`run: true`) | `bin/cli/cli-manifest.mjs` je kanonický spustitelný manifest pro rozhraní příkazů CLI: `run`, `configure` a generátory doplňování příkazů v shellu z něj odvozují své seznamy cílů, rozpoznávání aliasů (například `kilocode`/`kilo-code`/`kilo_cli` → `kilo`) a zapojení příznaku `--model`. Ochrana proti odchylkám `tests/unit/cli/cli-manifest-drift.test.ts` ověřuje, že manifest, běhový katalog, katalog uživatelského rozhraní a všechna spotřebitelská rozhraní zůstávají synchronizovaná — přidání cíle do jednoho rozhraní bez ostatních způsobí selhání sady testů namísto vzniku nepozorované odchylky. --- ## 1. Katalog CLI Code (27 nástrojů) Všechny nástroje, které se zobrazují v `/dashboard/cli-code`. Nástroje s `baseUrlSupport: none` jsou připojeny prostřednictvím MITM nebo ručního návodu namísto vlastní základní 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 | | zed | Zed | Zed Industries | full | guide | false | | cursor | Cursor | Anysphere | none | guide | false | | antigravity | Antigravity | Google | none | mitm | false | | hermes | Hermes | Nous Research | none | guide | false | | kiro | Kiro AI | Amazon | none | mitm | false | | custom | Custom CLI | — | full | custom-builder | false | Nástroje s `baseUrlSupport: "partial"` zobrazují na kartě řídicího panelu odznak „⚠ Částečná základní URL“. --- ## 2. Katalog agentů CLI (10 nástrojů) Autonomní agenti, kteří se zobrazují v `/dashboard/cli-agents`: | id | název | dodavatel | podpora baseUrl | spustitelný přes ACP | | ------------ | ---------------- | ------------------------ | --------------- | -------------------- | | 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 agenti (/dashboard/acp-agents) Tato stránka (přejmenovaná z `/dashboard/agents`) zobrazuje CLI, které může OmniRoute **spouštět** jako backendové exekuční enginy prostřednictvím protokolu stdio/ACP. Katalog je spravován samostatně v `src/lib/acp/registry.ts` a **není** totožný s `CLI_TOOLS`. --- ## 4. Nevyřízené položky MITM (nezobrazené na řídicím panelu) Následující CLI nativně nepodporují vlastní základní URL a **nejsou uvedeny** na stránkách CLI Code ani CLI Agents. Jsou kandidáty na MITM zachytávání v plánu 11: | CLI | Důvod | | ------------------- | ------------------------------------------------------------ | | windsurf | BYOK je omezeno na vybrané modely Claude + firemní URL/token | | amp | Uzavřený ekosystém (Sourcegraph) | | amazon-q / kiro-cli | Ověřování pomocí AWS SSO, bez vlastní URL | | cowork | Anthropic Desktop, bez konfigurovatelného koncového bodu | Úplný křížový odkaz naleznete v `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md`. --- ## 5. API pro dávkovou detekci Veškerá detekce nástrojů je agregována prostřednictvím jediného koncového bodu: **`GET /api/cli-tools/all-statuses`** - Ověřování: `requireCliToolsAuth(request)` (stejné jako u ostatních tras `/api/cli-tools/`) - Vrací: `Record` (typ: `src/shared/types/cliBatchStatus.ts`) - Strategie: `Promise.all` nad všemi nástroji, časový limit 5 s pro každý nástroj - Mezipaměť: LRU v paměti indexovaná podle `mtime` konfiguračního souboru. Mezipaměť se zneplatní při změně `mtime`. Při restartování serveru se resetuje. Struktura odpovědi pro jednotlivé nástroje: ```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; // sanitizováno, bez trasování zásobníku } ``` --- ## 6. Obslužné rutiny nastavení pro nové nástroje Nové nástroje s `configType: "custom"` mají vyhrazené trasy API pro nastavení: | Trasa | Nástroj | | ------------------------------------------- | --------------------------------------------------------------------------------- | | `POST /api/cli-tools/forge-settings` | ForgeCode (.forge.toml) | | `POST /api/cli-tools/jcode-settings` | jcode (příznak --base-url) | | `POST /api/cli-tools/deepseek-tui-settings` | DeepSeek TUI (OPENAI_BASE_URL, zastaralé) | | `POST /api/cli-tools/codewhale-settings` | CodeWhale (OPENAI_BASE_URL, primární + synchronizace se zastaralým `~/.deepseek`) | | `POST /api/cli-tools/smelt-settings` | Smelt | | `POST /api/cli-tools/pi-settings` | Programovací 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` + vyhrazený klíč `.env`) | Všechny trasy používají pro chybové odpovědi `sanitizeErrorMessage()` (Pevné pravidlo č. 12). --- ## 7. Architektura stránek řídicího panelu ### CLI Code (`/dashboard/cli-code`) - `src/app/(dashboard)/dashboard/cli-code/page.tsx` — serverová komponenta - `src/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx` — klientská mřížka - `src/app/(dashboard)/dashboard/cli-code/[id]/page.tsx` — stránka s podrobnostmi nástroje - `src/app/(dashboard)/dashboard/cli-code/components/` — 12 specializovaných karet nástrojů + `ToolDetailClient.tsx` ### CLI Agents (`/dashboard/cli-agents`) - `src/app/(dashboard)/dashboard/cli-agents/page.tsx` — serverová komponenta - `src/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx` — klientská mřížka - `src/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx` — znovu používá `ToolDetailClient` ### ACP Agents (`/dashboard/acp-agents`) - `src/app/(dashboard)/dashboard/acp-agents/page.tsx` — serverová komponenta (přesunuta z `agents/`) ### Sdílené komponenty uživatelského rozhraní (`src/shared/components/cli/`) | Soubor | Účel | | ----------------------- | ---------------------------------------------------------------- | | `CliToolCard.tsx` | Inteligentní stavová karta (detekce + konfigurace + koncový bod) | | `CliConceptCard.tsx` | Karta s vysvětlením konceptu pro každou stránku | | `CliComparisonCard.tsx` | Třísloupcové porovnání typů CLI | | `BaseUrlSelect.tsx` | Rozevírací seznam koncových bodů (místní/cloud/vlastní) | | `ApiKeySelect.tsx` | Výběr klíče API | | `ManualConfigModal.tsx` | Modální okno s kopírovatelným úryvkem konfigurace | ### Sdílený hook (`src/shared/hooks/cli/`) | Soubor | Účel | | ------------------------- | --------------------------------------------------------------------- | | `useToolBatchStatuses.ts` | Načítá `/api/cli-tools/all-statuses`, spravuje stav načítání/obnovení | --- ## 8. i18n Nové jmenné prostory přidané v plánu 14 F9: | Jmenný prostor | Účel | | -------------- | ----------------------------------------------------------------------------------------- | | `cliCommon` | Sdílené řetězce (popisky karet, texty konceptů/porovnání, popisky stránky s podrobnostmi) | | `cliCode` | Řetězce stránky CLI Code | | `cliAgents` | Řetězce stránky CLI Agents | | `acpAgents` | Řetězce stránky ACP Agents | K dispozici jsou kompletní překlady do PT-BR a EN. U 39 dalších lokalizací se automaticky použije EN prostřednictvím slučování na úrovni jmenných prostorů v `src/i18n/request.ts`. --- ## 9. Rychlý start ### Krok 1 — Získejte API klíč OmniRoute 1. Otevřete `/dashboard/api-manager` → **Vytvořit API klíč** 2. Zadejte mu název (např. `cli-tools`) a vyberte všechna oprávnění 3. Zkopírujte klíč — budete ho potřebovat pro každý z níže uvedených nástrojů CLI > Váš klíč vypadá takto: `sk-xxxxxxxxxxxxxxxx-xxxxxxxxx` --- ### Krok 2 — Nainstalujte nástroje CLI Všechny nástroje založené na npm vyžadují Node.js 22.22.2+ nebo 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 (lze spustit pomocí `omniroute run gemini` → rozhraní /v1beta) npm install -g @google/gemini-cli # Aider pip install aider-chat # Smelt cargo install smelt # Založeno na Rustu # Programovací agent Pi # Pokyny k instalaci najdete na https://github.com/zechnerj/pi-coding-agent # jcode # Pokyny k instalaci najdete na https://github.com/1jehuang/jcode ``` --- ### Krok 3 — Nakonfigurujte prostřednictvím řídicího panelu 1. Přejděte na `http://localhost:20128/dashboard/cli-code` 2. Najděte svůj nástroj v mřížce 3. Kliknutím na kartu otevřete stránku s podrobnostmi o nástroji 4. Vyberte svůj API klíč a základní URL 5. Klikněte na **Použít konfiguraci** nebo zkopírujte úryvek pro ruční konfiguraci --- ### Krok 4 — Nastavte globální proměnné prostředí ```bash # Univerzální koncový bod OmniRoute export OPENAI_BASE_URL="http://localhost:20128/v1" export OPENAI_API_KEY="sk-your-omniroute-key" export ANTHROPIC_BASE_URL="http://localhost:20128" export ANTHROPIC_AUTH_TOKEN="sk-your-omniroute-key" # Gemini CLI načítá GOOGLE_GEMINI_BASE_URL z KOŘENOVÉ adresy (jeho SDK samo přidá /v1beta/...) export GOOGLE_GEMINI_BASE_URL="http://localhost:20128" export GEMINI_API_KEY="sk-your-omniroute-key" ``` > Pro **vzdálený server** nahraďte `localhost:20128` IP adresou nebo doménou serveru, > např. `http://:20128`. --- ### Krok 4 — Nakonfigurujte jednotlivé nástroje #### Claude Code ```bash # Vytvořte ~/.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 ``` Pro Claude Code použijte kořen sjednocené brány Anthropic. Nepřidávejte zde `/v1`. **Test:** `claude "say hello"` --- #### OpenAI Codex Moderní Codex (v0.137+) načítá pouze `~/.codex/config.toml` — starý soubor `config.yaml` patří ke starší verzi npm CLI a je bez upozornění ignorován. API klíč zůstává v proměnné prostředí `OMNIROUTE_API_KEY` (`env_key`), nikdy uvnitř souboru: ```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" ``` Úplná dokumentace (profily, `wire_api`, kontextová okna): [CODEX-CLI-CONFIGURATION.md](../guides/CODEX-CLI-CONFIGURATION.md). **Test:** `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 ``` **Test:** `opencode` > Pomocí příkazu `opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant high` > odešlete varianty s přemýšlením. --- #### Cline (CLI nebo VS Code) **Režim 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 ``` **Režim VS Code:** Nastavení rozšíření Cline → Poskytovatel API: `OpenAI Compatible` → Základní URL: `http://localhost:20128/v1` Nebo použijte řídicí panel OmniRoute → **Nástroje CLI → Cline → Použít konfiguraci**. --- #### KiloCode (CLI nebo VS Code) **Režim CLI:** ```bash kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key ``` **Nastavení VS Code:** ```json { "kilo-code.openAiBaseUrl": "http://localhost:20128/v1", "kilo-code.apiKey": "sk-your-omniroute-key" } ``` Nebo použijte řídicí panel OmniRoute → **Nástroje CLI → KiloCode → Použít konfiguraci**. --- #### Continue (rozšíření VS Code) Upravte `~/.continue/config.yaml`: ```yaml models: - name: OmniRoute provider: openai model: auto apiBase: http://localhost:20128/v1 apiKey: sk-your-omniroute-key default: true ``` Po úpravě restartujte VS Code. --- #### VS Code Insiders (`chatLanguageModels.json`) Tuto možnost použijte, pokud je VS Code Insiders nakonfigurován pro modely s vlastními koncovými body a chcete, aby OmniRoute fungoval bez vlastního pole záhlaví. **Doporučené umístění:** - Linux: `~/.config/Code - Insiders/User/chatLanguageModels.json` - Windows: `%APPDATA%/Code - Insiders/User/chatLanguageModels.json` **Příklad použití tokenizovaného aliasu 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" } } ] ``` **Poznámky:** - Nahraďte `sk-your-omniroute-key` API klíčem vytvořeným v OmniRoute. - Pole `url` by mělo odkazovat na `/api/v1/vscode/{token}/chat/completions`. - Pole `modelsUrl` by mělo odkazovat na `/api/v1/vscode/{token}/models`. - Pokud klient podporuje vlastní hlavičky, upřednostněte standardní postup s `/v1` a hlavičkou Bearer. - Tokeny vložené do URL představují záložní řešení pro kompatibilitu a mohou se objevit v protokolech editoru nebo historii proxy. --- #### Kiro CLI (Amazon) ```bash # Přihlaste se ke svému účtu AWS/Kiro: kiro-cli login # CLI používá vlastní ověřování — OmniRoute není potřeba jako backend pro samotné Kiro CLI. # Používejte kiro-cli společně s OmniRoute pro další nástroje. kiro-cli status ``` Pro desktopovou aplikaci **Kiro IDE** použijte endpoint MITM zpřístupněný službou OmniRoute v části `/dashboard/cli-tools → Kiro`. --- ## 10. Interní CLI OmniRoute Binární soubor `omniroute` poskytuje příkazy pro správu životního cyklu serveru, nastavení, diagnostiku a správu poskytovatelů. Vstupní bod: `bin/omniroute.mjs`. ```bash omniroute # Spustit server (výchozí port 20128) omniroute setup # Interaktivní průvodce nastavením omniroute doctor # Zkontrolovat konfiguraci, DB, porty a běhové prostředí omniroute providers list # Nakonfigurovaná připojení k poskytovatelům omniroute providers test-all # Otestovat všechna aktivní připojení omniroute reset-password # Obnovit heslo správce omniroute logs # Průběžně zobrazovat protokoly požadavků omniroute health # Podrobný stav (jističe, mezipaměť, paměť) omniroute --version # Vypsat verzi omniroute --help # Zobrazit všechny příkazy ``` ### Nastavení a inicializace ```bash omniroute setup # Interaktivní průvodce nastavením omniroute setup --non-interactive # Režim CI/automatizace (načítá proměnné prostředí + příznaky) omniroute setup --password '' # Nastavit heslo správce přímo omniroute setup --add-provider \ --provider openai \ --api-key '' \ --test-provider # Přidat a otestovat poskytovatele v jednom kroku ``` Rozpoznávané proměnné prostředí pro neinteraktivní nastavení: | Proměnná | Účel | | ------------------- | ------------------------------------------------------------------------ | | `OMNIROUTE_API_KEY` | Klíč API poskytovatele (propojený s `--api-key` přes Commander `.env()`) | | `DATA_DIR` | Přepsání datového adresáře OmniRoute | Všechny ostatní neinteraktivní vstupy se předávají jako příznaky, nikoli jako proměnné prostředí: `--password`, `--provider`, `--provider-name`, `--provider-base-url`, `--default-model` (viz možnosti `omniroute setup` výše). ### Diagnostika ```bash omniroute doctor # Zkontrolovat konfiguraci, DB, porty, běhové prostředí, paměť a dostupnost omniroute doctor --json # Strojově čitelný JSON omniroute doctor --no-liveness # Přeskočit kontrolu stavu přes HTTP omniroute doctor --host 0.0.0.0 # Přepsat hostitele kontroly dostupnosti omniroute doctor --liveness-url # Přepsat úplnou URL koncového bodu stavu ``` Příkaz doctor provádí tyto kontroly: `Config`, `Database`, `Storage/encryption`, `Port availability`, `Node runtime`, `Native binary` (better-sqlite3), `Memory` a `Server liveness`. Pokud má některá kontrola stav `fail`, skončí s nenulovým návratovým kódem. ### Správa poskytovatelů ```bash omniroute providers available # Katalog poskytovatelů OmniRoute omniroute providers available --search openai # Filtrovat katalog podle ID/názvu/aliasu/kategorie omniroute providers available --category api-key # Filtrovat podle kategorie (api-key, oauth, free, ...) omniroute providers available --json # Strojově čitelný JSON omniroute providers list # Nakonfigurovaná připojení k poskytovatelům omniroute providers list --json omniroute providers test # Otestovat jedno nakonfigurované připojení omniroute providers test-all # Otestovat všechna aktivní připojení omniroute providers validate # Pouze místní strukturální ověření omniroute providers add --credential-env PROVIDER_KEY omniroute providers import ./providers.json --dry-run --json omniroute providers auth # Stávající tok OAuth omniroute providers edit --default-model omniroute providers remove --yes ``` Příkazy `providers add/import/auth/edit/remove` primárně používají API, a proto fungují vůči aktivnímu místnímu nebo vzdálenému kontextu. Přihlašovací údaje by měly být zadávány pomocí `--credential-stdin` nebo `--credential-env`; `--dry-run --json` hlásí pouze redigovanou přítomnost/strukturu. `providers available` načítá katalog OmniRoute; `providers list/test/test-all/validate` zachovávají své místní chování nad SQLite a nevyžadují spuštěný server. U vlastního uzlu kompatibilního s OpenAI nebo Anthropic připojte přihlašovací údaje k ID uzlu vrácenému příkazem `omniroute nodes add` pomocí `omniroute keys add "$NODE_ID" --stdin`. To vyžaduje spuštěný server a ověření pro správu aktivního kontextu. CLI používá `POST /api/providers`, který ověří uzel a zkopíruje nastavení jeho koncového bodu do připojení. Chybějící uzel, selhání autorizace nebo nedostupný server vrátí chybu bez vytvoření náhradních místních přihlašovacích údajů. `nodes add --base-url` nastavuje koncový bod uzlu; liší se od adresy serveru v `OMNIROUTE_BASE_URL`. Pro soubory OpenAPI použijte `omniroute openapi dump --format json --out ./openapi.json`; globální příznak `--output` vybírá formát zobrazení CLI, nikoli název cílového souboru. ### Obnova a resetování ```bash omniroute reset-password # Obnovit heslo správce (také: omniroute-reset-password) omniroute reset-encrypted-columns # Zobrazit varování + zkušební běh resetování šifrovaných přihlašovacích údajů omniroute reset-encrypted-columns --force # Skutečně nastavit šifrované přihlašovací údaje v SQLite na hodnotu null ``` ### Export přihlašovacích údajů (⚠ zacházejte s nimi opatrně) ```bash omniroute auth export # Zobrazit varování + vyžádat potvrzení — bez přístupu k DB omniroute auth export --force # Exportovat DEŠIFROVANÉ přihlašovací údaje VŠECH připojení na standardní výstup jako JSON omniroute auth export --force --id # Exportovat pouze odpovídající připojení omniroute auth export --force --format env # Vypsat řádky OMNIROUTE__= omniroute auth export --force --out creds.json # Zapsat do souboru (vytvořeného s oprávněními 0600) ``` `auth export` funguje **pouze lokálně** (přímé čtení SQLite, bez HTTP trasy) a záměrně vypisuje/ukládá hodnoty `apiKey`/`accessToken`/`refreshToken`/`idToken` v **prostém textu** — jde o funkci, nikoli o chybu. Bez příznaku `--force` se z databáze nic nenačte ani nedešifruje. Před vypsáním jakýchkoli dat v prostém textu se na stderr vždy zobrazí varovný banner. Vyžaduje nastavení `STORAGE_ENCRYPTION_KEY`. Pole, které se nepodaří dešifrovat (zastaralý klíč, poškozený šifrovaný text), je označeno jako `DecryptFailed: true`, namísto přerušení celého exportu nebo odhalení související chyby. ### Ostatní dílčí příkazy Pokud není uvedeno jinak, předpokládají spuštěný server OmniRoute: ```bash omniroute status # Komplexní stav běhu omniroute logs # Streamování protokolů požadavků (--json, --search, --follow) omniroute config list # Zobrazení nakonfigurovaných nástrojů CLI omniroute provider list # Seznam dostupných poskytovatelů (alias příkazu providers list) omniroute provider add # Registrace OmniRoute jako poskytovatele v nástroji omniroute keys add | list | remove # Správa klíčů API omniroute models [provider] # Seznam modelů (--json, --search) omniroute combo list | switch | create | delete omniroute backup # Vytvoření snímku konfigurace + databáze omniroute restore # Obnovení z předchozího snímku omniroute health # Podrobný stav systému (jističe, mezipaměť, paměť) omniroute quota # Využití kvót poskytovatelů omniroute cache # Stav mezipaměti omniroute cache clear # Vymazání sémantické mezipaměti + mezipaměti signatur omniroute mcp status | restart # Stav / restart serveru MCP omniroute a2a status | card # Stav serveru A2A / karta agenta omniroute tunnel list | create | stop # Správa tunelů (cloudflare/tailscale/ngrok) omniroute env show | get | set # Zobrazení / nastavení proměnných prostředí (dočasně) omniroute test # Rychlý test připojení k poskytovateli omniroute update # Kontrola aktualizací omniroute completion # Generování automatického doplňování pro shell ``` ### Běžné příznaky | Příznak | Popis | | ------------------- | ----------------------------------------------------- | | `--no-open` | Po spuštění automaticky neotevírat prohlížeč | | `--port ` | Přepsat port API (výchozí 20128) | | `--mcp` | Spustit jako server MCP přes stdio (pro IDE) | | `--non-interactive` | Režim CI (bez výzev; načítá z prostředí/příznaků) | | `--json` | Strojově čitelný výstup JSON (doctor, providers atd.) | | `--help`, `-h` | Zobrazit nápovědu specifickou pro příkaz | | `--version`, `-v` | Vypsat nainstalovanou verzi | --- ## Dostupné koncové body API | Koncový bod | Popis | Použití pro | | -------------------------- | --------------------------------------- | ------------------------------------- | | `/v1/chat/completions` | Standardní chat (všichni poskytovatelé) | Všechny moderní nástroje | | `/v1/responses` | Responses API (formát OpenAI) | Codex, agentní pracovní postupy | | `/v1/completions` | Starší textová dokončování | Starší nástroje používající `prompt:` | | `/v1/embeddings` | Textové embeddingy | RAG, vyhledávání | | `/v1/images/generations` | Generování obrázků | GPT-Image, Flux atd. | | `/v1/audio/speech` | Převod textu na řeč | ElevenLabs, OpenAI TTS | | `/v1/audio/transcriptions` | Převod řeči na text | Deepgram, AssemblyAI | Příklady připravené ke vložení s tokenizovanou adresou URL OmniRoute: ```txt Příklad tokenu: sk-a3ab3c080beaee3a-69f4a4-070d71af Standardní základní adresa OpenAI: http://localhost:20128/v1 Modely VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/models Chat VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completions Odpovědi VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responses Tagy Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tags Chat Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chat ``` --- ## Řešení problémů | Chyba | Příčina | Řešení | | -------------------------------------------------- | --------------------------------- | --------------------------------------------------------- | | `Connection refused` | OmniRoute není spuštěn | `omniroute serve` | | `401 Unauthorized` | Nesprávný klíč API | Zkontrolujte v `/dashboard/api-manager` | | `No combo configured` | Žádná aktivní směrovací kombinace | Nastavte v `/dashboard/combos` | | CLI zobrazuje „not installed“ | Binární soubor není v PATH | Zkontrolujte pomocí `which ` | | Řídicí panel po instalaci zobrazuje „not detected“ | Zastaralá mezipaměť | Klikněte na „⟳ Refresh detection“ v řídicím panelu | | Starý odkaz `/dashboard/cli-tools` | Záložka z doby před v3.8.6 | Automaticky přesměrováno na `/dashboard/cli-code` (308) | | Starý odkaz `/dashboard/agents` | Záložka z doby před v3.8.6 | Automaticky přesměrováno na `/dashboard/acp-agents` (308) | ## Správa zásad inferenčního klíče pomocí OmniRoute CLI Použijte ověřený kontext správy (viz [Vzdálený režim](../guides/REMOTE-MODE.md)) ke kontrole nebo aktualizaci existujícího inferenčního klíče podle jeho 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` je alias pro `--model-access-mode all`. Aktualizace vymaže seznam povolených modelů. Zachová rozsahy oprávnění, pravidla připojení, blokované modely, limity frekvence a nákladové limity, takže tyto ostatní řídicí mechanismy mohou požadavek i nadále zamítnout. Explicitní `--allowed-models ""` také vybere `all`; zkombinujte jej s `--model-access-mode restricted`, chcete-li zachovat omezený klíč bez povolených modelů. Neprázdný seznam oddělený čárkami vybere `restricted`, pokud není výslovně uvedeno jinak. Rozporuplná kombinace `all` s neprázdným seznamem povolených položek je odmítnuta před odesláním požadavku. `--rate-limit 30` nastaví počet požadavků za minutu a zachová pravidla pro ostatní časová okna. `--max-cost 5` aktivuje denní limit v USD beze změny týdenního limitu; `--max-cost 0` odebere denní limit a zachová stávající přepínač limitu využití a týdenní limit. Vynechaná pole zásad zůstanou beze změny. Změny limitu frekvence nejprve načtou aktuální zásady; vyhněte se souběžným úpravám pole limitů frekvence stejného klíče. Příkazy zásad používají ověřené `GET`/`PATCH /api/keys/{id}` a respektují aktivní kontext a globální volbu `--api-key`. Výstup JSON obsahuje pouze pole zásad, bez uloženého klíče nebo jeho maskované reprezentace. Přihlašovací údaj určený pouze pro inferenci nemůže autorizovat změny správy. Odpověď 401/403 vyžaduje kontrolu přihlašovacího údaje pro správu a kontextu; nedokládá selhání místního tokenu CLI ani soli. Samostatnou specifikaci místního ověřování naleznete v části [Token CLI](../security/CLI_TOKEN.md).