CLI Tools — OmniRoute (Русский)
Как это работает
Заголовок раздела «Как это работает»CLI Код / CLI Агенты (поток потребления):Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ... │ ▼ (все указывают на OmniRoute) http://YOUR_SERVER:20128/v1 │ ▼ (OmniRoute направляет к правильному провайдеру) Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ...
ACP Агенты (обратный поток создания): Запрос клиента → OmniRoute → создает CLI через stdio/ACP → ответПреимущества:
- Один API ключ для управления всеми инструментами
- Отслеживание затрат по всем CLI в панели управления
- Переключение моделей без перенастройки каждого инструмента
- Работает локально и на удаленных серверах (VPS, Docker, Akamai, Cloudflare Tunnel)
Автоматическая настройка с помощью setup-*
Заголовок раздела «Автоматическая настройка с помощью setup-*»Вам не нужно вручную писать конфигурацию для каждого инструмента. OmniRoute поставляется с командой setup-*
для каждого поддерживаемого CLI, которая считывает актуальный каталог моделей из запущенного
OmniRoute (локального или удаленного) и записывает собственную конфигурацию инструмента на вашу машину:
omniroute setup-codex omniroute setup-claude omniroute setup-opencodeomniroute setup-cline omniroute setup-kilo omniroute setup-continueomniroute setup-cursor omniroute setup-roo omniroute setup-crushomniroute setup-goose omniroute setup-qwen omniroute setup-aideromniroute setup-5diveКаждая команда принимает --remote <url> --api-key <key> (настройка локального инструмента для удаленного OmniRoute), --dry-run (предварительный просмотр без записи) и --port. Инструменты без автоматического обнаружения моделей (Cline, Kilo, Roo, Goose, Aider, Qwen, 5dive) принимают --model <id> (и --yes для неинтерактивных запусков). setup-5dive — это единственный рецепт, который не записывает данные в $HOME: он настраивает парк агентов 5dive, записывая профиль аутентификации, принадлежащий root, на хосте парка, поэтому он повторно выполняется через sudo и не имеет собственного удаленного режима. Чтобы запустить CLI с внедренными правильными переменными окружения и без записи конфигурации, используйте универсальный лаунчер omniroute run <target> (claude, codex, aider, goose, opencode, qwen, gemini — цели и псевдонимы берутся из bin/cli/cli-manifest.mjs); устаревшие лаунчеры для каждого инструмента omniroute launch (Claude Code) и omniroute launch-codex (Codex) остаются доступными. Gemini CLI доступен только для запуска: это цель omniroute run, но у него нет рецепта setup-*/configure.
Полная справка: основная таблица — что записывает каждая команда, каждый флаг, локальный или удаленный режим, и какие инструменты требуют суффикса
/v1— находится в Интеграции CLI.
Запуск внутри контейнера
Заголовок раздела «Запуск внутри контейнера»Команда setup-*, выполненная внутри контейнера OmniRoute, записывает данные в домашний каталог самого контейнера, который не читается хост-CLI и исчезает вместе с контейнером. OmniRoute обнаруживает это и завершает работу с кодом 2 и инструкциями, вместо того чтобы записывать данные. Два поддерживаемых способа решения — установить CLI на хосте и omniroute connect к контейнеру, или примонтировать каталоги конфигурации и установить CLI_CONFIG_HOME (профиль host в compose). Каждая команда setup-*, а также omniroute configure и omniroute config set, принимает --allow-container-write, если вы действительно имели в виду настройку собственных CLI контейнера; OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true делает то же самое для сервера. См.
Руководство по Docker → Настройка инструментов CLI хоста.
Конечная точка применения панели управления (POST /api/cli-tools/apply) обеспечивает ту же защиту: в контейнере запись, цель которой не примонтирована с хоста, отвечает 422 с containerEphemeralTarget: true, безопасным текстом ошибки и — для инструментов с рецептом хоста (claude, codex, opencode, cline, kilo, continue) — hostSetupCommand (например, omniroute setup-opencode) для запуска на хосте; ничего не записывается. dryRun: true продолжает работать в режиме контейнера и возвращает отредактированный предварительный просмотр + целевой путь без обращения к диску. Содержимое предварительного просмотра не является конфигурацией, содержащей учетные данные, для копирования или импорта. Применяйте с исходным инструментом/базовым URL/ключом API/входными данными модели на хосте или используйте указанную команду настройки на стороне хоста. См. Безопасность конфигурации CLI для заголовка предварительного просмотра и контракта запроса. Такое поведение
является преднамеренным и защищено от регрессий тестом
tests/unit/api/cli-tools/apply-container-guard.test.ts — никогда не “исправляйте” 422, удаляя защиту.
Источник правды
Заголовок раздела «Источник правды»Унифицированный каталог находится в src/shared/constants/cliTools.ts как CLI_TOOLS: Record<string, CliCatalogEntry>.
Каждая запись имеет следующие поля (определены в src/shared/schemas/cliCatalog.ts):
| Поле | Тип | Описание |
|---|---|---|
category |
"code" | "agent" |
На какой странице появляется инструмент |
vendor |
string |
Происхождение инструмента (“Anthropic”, “OSS (P. Gauthier)”) |
acpSpawnable |
boolean |
Также может использоваться как ACP Agent (значок отображается) |
baseUrlSupport |
"full" | "partial" | "none" |
Уровень поддержки пользовательского конечного пункта. "none" = MITM backlog |
configType |
"env" | "custom" | "guide" | "custom-builder" | "mitm" |
Механизм конфигурации |
id, name, color, description, docsUrl |
стандарт | Основные поля отображения |
Записи с baseUrlSupport: "none" не отображаются на страницах панели управления — они зарегистрированы в MITM backlog для плана 11 (см. _tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md).
Уровни возможностей (каталогизированные × обнаруживаемые × настраиваемые × запускаемые)
Заголовок раздела «Уровни возможностей (каталогизированные × обнаруживаемые × настраиваемые × запускаемые)»Не каждый каталогизированный инструмент является обнаруживаемым, настраиваемым или запускаемым. Каждый уровень имеет один объявляющий источник, и тест на отклонение поддерживает их согласованность:
| Уровень | Значение | Объявлено в |
|---|---|---|
| Каталогизированный | Появляется в каталоге панели управления (имя, поставщик, документация, тип конфигурации) | src/shared/constants/cliTools.ts (CLI_TOOLS) |
| Обнаруживаемый | Обнаружение бинарных файлов/конфигураций, проверки состояния, пути конфигурации | src/shared/services/cliRuntime.ts (CLI_TOOLS runtime catalog) |
| Настраиваемый | Поддерживается omniroute configure <cli> (существует рецепт настройки) |
bin/cli/cli-manifest.mjs (configure: true) |
| Запускаемый | Поддерживается omniroute run <target> (определена инъекция env/args) |
bin/cli/cli-manifest.mjs (run: true) |
bin/cli/cli-manifest.mjs является каноническим исполняемым манифестом для команд CLI
поверхностей: run, configure и генераторы автозаполнения оболочки все получают свои
списки целей, разрешение псевдонимов (например, kilocode/kilo-code/kilo_cli → kilo)
и подключение флага --model из него. Защитник отклонений
tests/unit/cli/cli-manifest-drift.test.ts утверждает, что манифест, каталог времени выполнения,
каталог UI и каждая поверхность потребителя остаются синхронизированными — цель, добавленная к
одной поверхности без других, приводит к сбою тестов вместо тихого отклонения.
1. Каталог инструментов CLI Code (26 инструментов)
Заголовок раздела «1. Каталог инструментов CLI Code (26 инструментов)»Все инструменты, которые появляются в /dashboard/cli-code. Те, у которых baseUrlSupport: none, подключаются через MITM или ручное руководство вместо пользовательского базового URL:
| id | название | поставщик | baseUrlSupport | configType | acpSpawnable |
|---|---|---|---|---|---|
| claude | Claude Code | Anthropic | full | env | true |
| codex | OpenAI Codex CLI | OpenAI | full | custom | true |
| zcode | ZCode (План кодирования GLM) | 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 | none | mitm | false | |
| hermes | Hermes | Nous Research | none | guide | false |
| kiro | Kiro AI | Amazon | none | mitm | false |
| custom | Пользовательский CLI | — | full | custom-builder | false |
Инструменты с baseUrlSupport: "partial" показывают значок “⚠ Base URL parcial” на карточке панели управления.
Заголовок раздела «Инструменты с baseUrlSupport: "partial" показывают значок “⚠ Base URL parcial” на карточке панели управления.»2. Каталог CLI-агентов (8 инструментов)
Заголовок раздела «2. Каталог CLI-агентов (8 инструментов)»Автономные агенты, которые появляются в /dashboard/cli-agents:
| id | name | vendor | baseUrlSupport | acpSpawnable |
|---|---|---|---|---|
| hermes-agent | Агент Гермес | Nous Research | полный | ложь |
| openclaw | OpenClaw | OSS (P. Steinberger) | полный | истина |
| goose | Гусь | Block / Linux Foundation | полный | истина |
| interpreter | Открытый Интерпретатор | OSS | полный | истина |
| warp | Warp AI | Warp Inc. | частичный | истина |
| agent-deck | Колода агентов | asheshgoplani (OSS) | полный | ложь |
| omp | Oh My Pi | OSS | полный | истина |
| letta | Letta CLI | Letta | полный | ложь |
3. ACP-агенты (/dashboard/acp-agents)
Заголовок раздела «3. ACP-агенты (/dashboard/acp-agents)»Эта страница (переименованная из /dashboard/agents) показывает CLI, которые OmniRoute может создавать в качестве движков выполнения на стороне сервера через протокол stdio/ACP. Каталог поддерживается отдельно в src/lib/acp/registry.ts и не является тем же, что и CLI_TOOLS.
4. MITM-отложенные задачи (не отображаются на панели управления)
Заголовок раздела «4. MITM-отложенные задачи (не отображаются на панели управления)»Следующие CLI не поддерживают пользовательский базовый URL нативно и не перечислены на страницах кода CLI или агентов CLI. Они являются кандидатами для перехвата MITM в плане 11:
| CLI | Причина |
|---|---|
| windsurf | BYOK ограничен выбором моделей Claude + корпоративный URL/токен |
| amp | Закрытая экосистема (Sourcegraph) |
| amazon-q / kiro-cli | AWS SSO аутентификация, нет пользовательского URL |
| cowork | Anthropic Desktop, нет настраиваемой конечной точки |
Смотрите _tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md для полного перекрестного ссылки.
5. API обнаружения пакетов
Заголовок раздела «5. API обнаружения пакетов»Все обнаружения инструментов агрегируются через единую конечную точку:
GET /api/cli-tools/all-statuses
- Аутентификация:
requireCliToolsAuth(request)(так же, как и другие маршруты/api/cli-tools/) - Возвращает:
Record<toolId, ToolBatchStatus>(тип:src/shared/types/cliBatchStatus.ts) - Стратегия:
Promise.allдля всех инструментов, таймаут 5 секунд на инструмент - Кэш: в памяти LRU, индексированный по
mtimeконфигурационного файла. Кэш недействителен, когдаmtimeизменяется. Сбрасывается при перезапуске сервера.
Форма ответа для каждого инструмента:
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; // очищено, без трассировок стека}6. Обработчики настроек для новых инструментов
Заголовок раздела «6. Обработчики настроек для новых инструментов»Новые инструменты с configType: "custom" имеют выделенные маршруты API настроек:
| Маршрут | Инструмент |
|---|---|
POST /api/cli-tools/forge-settings |
ForgeCode (.forge.toml) |
POST /api/cli-tools/jcode-settings |
jcode (–base-url flag) |
POST /api/cli-tools/deepseek-tui-settings |
DeepSeek TUI (OPENAI_BASE_URL, legacy) |
POST /api/cli-tools/codewhale-settings |
CodeWhale (OPENAI_BASE_URL, primary + legacy ~/.deepseek sync) |
POST /api/cli-tools/smelt-settings |
Smelt |
POST /api/cli-tools/pi-settings |
Pi coding agent |
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 + dedicated .env key) |
Все маршруты используют sanitizeErrorMessage() для ответов об ошибках (Жесткое правило #12).
7. Архитектура страниц панели управления
Заголовок раздела «7. Архитектура страниц панели управления»CLI Код (/dashboard/cli-code)
Заголовок раздела «CLI Код (/dashboard/cli-code)»src/app/(dashboard)/dashboard/cli-code/page.tsx— серверный компонентsrc/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx— клиентская сеткаsrc/app/(dashboard)/dashboard/cli-code/[id]/page.tsx— страница деталей инструментаsrc/app/(dashboard)/dashboard/cli-code/components/— 12 специализированных карточек инструментов +ToolDetailClient.tsx
CLI Агенты (/dashboard/cli-agents)
Заголовок раздела «CLI Агенты (/dashboard/cli-agents)»src/app/(dashboard)/dashboard/cli-agents/page.tsx— серверный компонентsrc/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx— клиентская сеткаsrc/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx— повторно используетToolDetailClient
ACP Агенты (/dashboard/acp-agents)
Заголовок раздела «ACP Агенты (/dashboard/acp-agents)»src/app/(dashboard)/dashboard/acp-agents/page.tsx— серверный компонент (перемещен изagents/)
Общие UI Компоненты (src/shared/components/cli/)
Заголовок раздела «Общие UI Компоненты (src/shared/components/cli/)»| Файл | Назначение |
|---|---|
CliToolCard.tsx |
Умная карточка статуса (обнаружение + конфигурация + конечная точка) |
CliConceptCard.tsx |
Карточка объяснения концепции на странице |
CliComparisonCard.tsx |
Сравнение по трем колонкам между типами CLI |
BaseUrlSelect.tsx |
Выпадающий список конечных точек (Локальная/Облачная/Пользовательская) |
ApiKeySelect.tsx |
Выбор ключа API |
ManualConfigModal.tsx |
Модальное окно с копируемым фрагментом конфигурации |
Общий Хук (src/shared/hooks/cli/)
Заголовок раздела «Общий Хук (src/shared/hooks/cli/)»| Файл | Назначение |
|---|---|
useToolBatchStatuses.ts |
Получает /api/cli-tools/all-statuses, управляет состоянием загрузки/обновления |
8. i18n
Заголовок раздела «8. i18n»Новые пространства имен добавлены в план 14 F9:
| Пространство имен | Назначение |
|---|---|
cliCommon |
Общие строки (ярлыки карточек, тексты концепций/сравнений, ярлыки страниц деталей) |
cliCode |
Строки страниц CLI Code |
cliAgents |
Строки страниц CLI Agents |
acpAgents |
Строки страниц ACP Agents |
Полные переводы на португальский (Бразилия) и английский предоставлены. 39 других локалей автоматически используют английский через объединение на уровне пространства имен в src/i18n/request.ts.
9. Быстрый старт
Заголовок раздела «9. Быстрый старт»Шаг 1 — Получите ключ API OmniRoute
Заголовок раздела «Шаг 1 — Получите ключ API OmniRoute»- Откройте
/dashboard/api-manager→ Создать ключ API - Дайте ему имя (например,
cli-tools) и выберите все разрешения - Скопируйте ключ — он вам понадобится для каждого CLI ниже
Ваш ключ выглядит так:
sk-xxxxxxxxxxxxxxxx-xxxxxxxxx
Шаг 2 — Установите инструменты CLI
Заголовок раздела «Шаг 2 — Установите инструменты CLI»Все инструменты на основе npm требуют Node.js 22.22.2+ или 24.x:
# Claude Code (Anthropic)npm install -g @anthropic-ai/claude-code
# OpenAI Codexnpm install -g @openai/codex
# OpenCodenpm install -g opencode-ai
# Clinenpm install -g cline
# KiloCodenpm install -g kilocode
# Qwen Codenpm install -g @qwen-code/qwen-code
# Google Gemini CLI (запускается через `omniroute run gemini` → /v1beta surface)npm install -g @google/gemini-cli
# Aiderpip install aider-chat
# Smeltcargo install smelt # на основе Rust
# Pi coding agent# см. https://github.com/zechnerj/pi-coding-agent для установки
# jcode# см. https://github.com/1jehuang/jcode для установкиШаг 3 — Настройте через панель управления
Заголовок раздела «Шаг 3 — Настройте через панель управления»- Перейдите по адресу
http://localhost:20128/dashboard/cli-code - Найдите ваш инструмент в сетке
- Нажмите на карточку, чтобы открыть страницу деталей инструмента
- Выберите ваш ключ API и базовый URL
- Нажмите Применить конфигурацию или скопируйте фрагмент конфигурации вручную
Шаг 4 — Установите глобальные переменные окружения
Заголовок раздела «Шаг 4 — Установите глобальные переменные окружения»# Универсальная конечная точка OmniRouteexport 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 читает GOOGLE_GEMINI_BASE_URL на корне (его SDK добавляет /v1beta/... самостоятельно)export GOOGLE_GEMINI_BASE_URL="http://localhost:20128"export GEMINI_API_KEY="sk-your-omniroute-key"Для удаленного сервера замените
localhost:20128на IP-адрес или домен сервера, например,http://<your-server-ip>:20128.
Шаг 4 — Настройте каждый инструмент
Заголовок раздела «Шаг 4 — Настройте каждый инструмент»Claude Code
Заголовок раздела «Claude Code»# Создайте ~/.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Используйте единый корень шлюза Anthropic для Claude Code. Не добавляйте /v1 здесь.
Тест: claude "say hello"
OpenAI Codex
Заголовок раздела «OpenAI Codex»Современный Codex (v0.137+) читает ~/.codex/config.toml только — старый
config.yaml принадлежит устаревшему npm CLI и игнорируется без предупреждений. Ключ API
остается в переменной окружения OMNIROUTE_API_KEY (env_key), никогда
не внутри файла:
mkdir -p ~/.codex && cat > ~/.codex/config.toml << EOFmodel_provider = "omniroute"
[model_providers.omniroute]name = "OmniRoute"base_url = "http://localhost:20128/v1"env_key = "OMNIROUTE_API_KEY"requires_openai_auth = falseEOFexport OMNIROUTE_API_KEY="sk-your-omniroute-key"Полная справка (профили, wire_api, контекстные окна): CODEX-CLI-CONFIGURATION.md.
Тест: codex "what is 2+2?"
OpenCode
Заголовок раздела «OpenCode»mkdir -p ~/.config/opencode && cat > ~/.config/opencode/opencode.json << EOF{ "\$schema": "https://opencode.ai/config.json", "provider": { "omniroute": { "npm": "@ai-sdk/openai-compatible", "name": "OmniRoute", "options": { "baseURL": "http://localhost:20128/v1", "apiKey": "sk-your-omniroute-key" }, "models": { "claude-sonnet-4-5": { "name": "claude-sonnet-4-5" }, "claude-sonnet-4-5-thinking": { "name": "claude-sonnet-4-5-thinking" }, "gemini-3-flash": { "name": "gemini-3-flash" } } } }}EOFТест: opencode
Используйте
opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant highдля отправки вариантов мышления.
Cline (CLI или VS Code)
Заголовок раздела «Cline (CLI или VS Code)»Режим CLI:
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:
Настройки расширения Cline → Поставщик API: OpenAI Compatible → Базовый URL: http://localhost:20128/v1
Или используйте панель управления OmniRoute → CLI Tools → Cline → Применить конфигурацию.
KiloCode (CLI или VS Code)
Заголовок раздела «KiloCode (CLI или VS Code)»Режим CLI:
kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-keyНастройки VS Code:
{ "kilo-code.openAiBaseUrl": "http://localhost:20128/v1", "kilo-code.apiKey": "sk-your-omniroute-key"}Или используйте панель управления OmniRoute → CLI Tools → KiloCode → Применить конфигурацию.
Continue (расширение VS Code)
Заголовок раздела «Continue (расширение VS Code)»Отредактируйте ~/.continue/config.yaml:
models: - name: OmniRoute provider: openai model: auto apiBase: http://localhost:20128/v1 apiKey: sk-your-omniroute-key default: trueПерезапустите VS Code после редактирования.
VS Code Insiders (chatLanguageModels.json)
Заголовок раздела «VS Code Insiders (chatLanguageModels.json)»Используйте это, когда VS Code Insiders настроен для пользовательских моделей конечных точек, и вы хотите, чтобы OmniRoute работал без пользовательского заголовка.
Рекомендуемое местоположение:
- Linux:
~/.config/Code - Insiders/User/chatLanguageModels.json - Windows:
%APPDATA%/Code - Insiders/User/chatLanguageModels.json
Пример с использованием токенизированного псевдонима OmniRoute:
[ { "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" } }]Примечания:
- Замените
sk-your-omniroute-keyна ключ API, созданный в OmniRoute. - Поле
urlдолжно указывать на/api/v1/vscode/{token}/chat/completions. - Поле
modelsUrlдолжно указывать на/api/v1/vscode/{token}/models. - Предпочитайте обычный поток
/v1+ заголовок Bearer, когда клиент поддерживает пользовательские заголовки. - Встроенные в URL токены являются запасным вариантом совместимости и могут появляться в журналах редактора или истории прокси.
Kiro CLI (Amazon)
Заголовок раздела «Kiro CLI (Amazon)»# Войдите в свою учетную запись AWS/Kiro:kiro-cli login
# CLI использует свою собственную аутентификацию — OmniRoute не нужен как бэкенд для самого Kiro CLI.# Используйте kiro-cli вместе с OmniRoute для других инструментов.kiro-cli statusДля настольного приложения Kiro IDE используйте конечную точку MITM, предоставленную OmniRoute
по адресу /dashboard/cli-tools → Kiro.
10. Внутренний CLI OmniRoute
Заголовок раздела «10. Внутренний CLI OmniRoute»Исполняемый файл omniroute предоставляет команды для управления жизненным циклом сервера, настройки, диагностики и управления провайдерами. Точка входа: bin/omniroute.mjs.
omniroute # Запустить сервер (порт по умолчанию — 20128)omniroute setup # Интерактивный мастер настройкиomniroute doctor # Проверить конфигурацию, БД, порты и среду выполненияomniroute providers list # Настроенные подключения к провайдерамomniroute providers test-all # Проверить каждое активное подключениеomniroute reset-password # Сбросить пароль администратораomniroute logs # Выводить журналы запросов в реальном времениomniroute health # Подробное состояние (предохранители, кеш, память)omniroute --version # Вывести версиюomniroute --help # Показать все командыНастройка и инициализация
Заголовок раздела «Настройка и инициализация»omniroute setup # Интерактивный мастер настройкиomniroute setup --non-interactive # Режим CI/автоматизации (читает переменные среды и флаги)omniroute setup --password '<value>' # Задать пароль администратора напрямуюomniroute setup --add-provider \ --provider openai \ --api-key '<value>' \ --test-provider # Добавить и проверить провайдера за один шагРаспознаваемые переменные среды для неинтерактивной настройки:
| Переменная | Назначение |
|---|---|
OMNIROUTE_API_KEY |
API-ключ провайдера (привязан к --api-key через Commander .env()) |
DATA_DIR |
Переопределить каталог данных OmniRoute |
Все остальные неинтерактивные входные данные передаются в виде флагов, а не переменных среды:
--password, --provider, --provider-name, --provider-base-url, --default-model
(см. параметры omniroute setup выше).
Диагностика
Заголовок раздела «Диагностика»omniroute doctor # Проверить конфигурацию, БД, порты, среду выполнения, память и работоспособностьomniroute doctor --json # JSON в машиночитаемом форматеomniroute doctor --no-liveness # Пропустить HTTP-проверку работоспособностиomniroute doctor --host 0.0.0.0 # Переопределить хост для проверки работоспособностиomniroute doctor --liveness-url <url> # Переопределить полный URL конечной точки проверки состоянияКоманда doctor выполняет следующие проверки: Config, Database, Storage/encryption,
Port availability, Node runtime, Native binary (better-sqlite3),
Memory и Server liveness. Она завершается с ненулевым кодом, если какая-либо проверка имеет статус fail.
Управление провайдерами
Заголовок раздела «Управление провайдерами»omniroute providers available # Каталог провайдеров OmniRouteomniroute providers available --search openai # Фильтровать каталог по идентификатору/имени/псевдониму/категорииomniroute providers available --category api-key # Фильтровать по категории (api-key, oauth, free, ...)omniroute providers available --json # JSON в машиночитаемом формате
omniroute providers list # Настроенные подключения к провайдерамomniroute providers list --json
omniroute providers test <id|name> # Проверить одно настроенное подключениеomniroute providers test-all # Проверить каждое активное подключениеomniroute providers validate # Только локальная структурная проверкаomniroute providers add <provider> --credential-env PROVIDER_KEYomniroute providers import ./providers.json --dry-run --jsonomniroute providers auth <provider> # Существующий поток OAuthomniroute providers edit <id|name> --default-model <model>omniroute providers remove <id|name> --yesproviders add/import/auth/edit/remove в первую очередь используют API и поэтому работают с
активным локальным или удалённым контекстом. Учётные данные следует передавать через
--credential-stdin или --credential-env; --dry-run --json сообщает только
о наличии/структуре в отредактированном виде. providers available читает каталог OmniRoute;
providers list/test/test-all/validate сохраняют локальное поведение SQLite и
не требуют запущенного сервера.
Восстановление и сброс
Заголовок раздела «Восстановление и сброс»omniroute reset-password # Сбросить пароль администратора (также: omniroute-reset-password)omniroute reset-encrypted-columns # Показать предупреждение и пробный запуск сброса зашифрованных учётных данныхomniroute reset-encrypted-columns --force # Фактически заменить зашифрованные учётные данные в SQLite значениями NULLЭкспорт учётных данных (⚠ обращайтесь с осторожностью)
Заголовок раздела «Экспорт учётных данных (⚠ обращайтесь с осторожностью)»omniroute auth export # Показать предупреждение и запрос подтверждения — без доступа к БДomniroute auth export --force # Экспортировать РАСШИФРОВАННЫЕ учётные данные ВСЕХ подключений в stdout в формате JSONomniroute auth export --force --id <id> # Экспортировать только соответствующее подключениеomniroute auth export --force --format env # Вывести строки OMNIROUTE_<PROVIDER>_<FIELD>=<value>omniroute auth export --force --out creds.json # Записать в файл (создаётся с правами доступа 0600)auth export работает только локально (прямое чтение SQLite, без HTTP-маршрута) и намеренно выводит/записывает
значения apiKey/accessToken/refreshToken/idToken в виде открытого текста — это функция, а не
ошибка. Без --force из базы данных ничего не читается и ничего не расшифровывается. Перед выводом
любого открытого текста в stderr всегда печатается предупреждающий баннер. Требуется, чтобы была
задана переменная STORAGE_ENCRYPTION_KEY. Поле, которое не удалось расшифровать (устаревший ключ, повреждённый шифротекст), представляется как
<field>DecryptFailed: true вместо прерывания всего экспорта или раскрытия базовой ошибки.
Другие подкоманды
Заголовок раздела «Другие подкоманды»Если не указано иное, для них требуется запущенный сервер OmniRoute:
omniroute status # Подробное состояние во время выполненияomniroute logs # Потоковая передача журналов запросов (--json, --search, --follow)omniroute config list # Показать настроенные инструменты CLI
omniroute provider list # Вывести список доступных провайдеров (псевдоним для providers list)omniroute provider add # Зарегистрировать OmniRoute как провайдера в инструментеomniroute keys add | list | remove # Управление API-ключамиomniroute models [provider] # Вывести список моделей (--json, --search)omniroute combo list | switch | create | delete
omniroute backup # Создать снимок конфигурации и БДomniroute restore # Восстановить из предыдущего снимка
omniroute health # Подробное состояние системы (предохранители, кеш, память)omniroute quota # Использование квот провайдеровomniroute cache # Состояние кешаomniroute cache clear # Очистить семантический кеш и кеш сигнатур
omniroute mcp status | restart # Состояние / перезапуск сервера MCPomniroute a2a status | card # Состояние сервера A2A / карточка агента
omniroute tunnel list | create | stop # Управление туннелями (cloudflare/tailscale/ngrok)omniroute env show | get <k> | set <k> <v> # Просмотр / установка переменных среды (временно)
omniroute test # Быстрая проверка подключения к провайдерамomniroute update # Проверить наличие обновленийomniroute completion # Создать автодополнение для оболочкиОбщие флаги
Заголовок раздела «Общие флаги»| Флаг | Описание |
|---|---|
--no-open |
Не открывать браузер автоматически при запуске |
--port <n> |
Переопределить порт API (по умолчанию 20128) |
--mcp |
Запустить как сервер MCP через stdio (для IDE) |
--non-interactive |
Режим CI (без запросов; чтение из среды/флагов) |
--json |
Машиночитаемый вывод JSON (doctor, providers и т. д.) |
--help, -h |
Показать справку по конкретной команде |
--version, -v |
Вывести установленную версию |
Доступные API конечные точки
Заголовок раздела «Доступные API конечные точки»| Конечная точка | Описание | Используется для |
|---|---|---|
/v1/chat/completions |
Стандартный чат (все провайдеры) | Все современные инструменты |
/v1/responses |
API ответов (формат OpenAI) | Codex, агентные рабочие процессы |
/v1/completions |
Устаревшие текстовые дополнения | Старые инструменты, использующие prompt: |
/v1/embeddings |
Текстовые встраивания | RAG, поиск |
/v1/images/generations |
Генерация изображений | GPT-Image, Flux и др. |
/v1/audio/speech |
Текст в речь | ElevenLabs, OpenAI TTS |
/v1/audio/transcriptions |
Речь в текст | Deepgram, AssemblyAI |
Готовые к вставке примеры с токенизированным URL OmniRoute:
Token example: sk-a3ab3c080beaee3a-69f4a4-070d71af
Стандартная база OpenAI: http://localhost:20128/v1Модели VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/modelsЧат VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completionsОтветы VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responsesТеги Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tagsЧат Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chatУстранение неполадок
Заголовок раздела «Устранение неполадок»| Ошибка | Причина | Исправление |
|---|---|---|
Connection refused |
OmniRoute не запущен | omniroute serve |
401 Unauthorized |
Неправильный API ключ | Проверьте в /dashboard/api-manager |
No combo configured |
Нет активной маршрутизации | Настройте в /dashboard/combos |
| CLI показывает “not installed” | Бинарный файл не в PATH | Проверьте which <command> |
| Панель управления показывает “not detected” после установки | Кэш устарел | Нажмите “⟳ Обновить обнаружение” на панели управления |
Старая ссылка /dashboard/cli-tools |
Закладка до v3.8.6 | Авто-перенаправление на /dashboard/cli-code (308) |
Старая ссылка /dashboard/agents |
Закладка до v3.8.6 | Авто-перенаправление на /dashboard/acp-agents (308) |
HagiCode
HagiCode — агентная среда разработки со структурированными процессами, параллельным выполнением несколькими агентами и интерфейсами Hero Dungeon.
Превращайте идеи в полезное ПО с более умным, быстрым и увлекательным агентным рабочим процессом.

- SmartСтруктурированные процессы превращают намерение в исполнимый путь от идеи до готового изменения.
- EfficientМультиагентные процессы параллельно продвигают исследование, реализацию и проверку.
- FunHero Dungeon делает длительную совместную разработку наглядной и увлекательной.