Перейти к содержимому
OmniRoute source

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)

Вам не нужно вручную писать конфигурацию для каждого инструмента. OmniRoute поставляется с командой setup-* для каждого поддерживаемого CLI, которая считывает актуальный каталог моделей из запущенного OmniRoute (локального или удаленного) и записывает собственную конфигурацию инструмента на вашу машину:

Окно терминала
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

Каждая команда принимает --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 &lt;cli&gt; (существует рецепт настройки) bin/cli/cli-manifest.mjs (configure: true)
Запускаемый Поддерживается omniroute run &lt;target&gt; (определена инъекция 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 Google 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” на карточке панели управления.»

Автономные агенты, которые появляются в /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 полный ложь

Эта страница (переименованная из /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 для полного перекрестного ссылки.


Все обнаружения инструментов агрегируются через единую конечную точку:

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


  • 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
  • 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
  • src/app/(dashboard)/dashboard/acp-agents/page.tsx — серверный компонент (перемещен из agents/)
Файл Назначение
CliToolCard.tsx Умная карточка статуса (обнаружение + конфигурация + конечная точка)
CliConceptCard.tsx Карточка объяснения концепции на странице
CliComparisonCard.tsx Сравнение по трем колонкам между типами CLI
BaseUrlSelect.tsx Выпадающий список конечных точек (Локальная/Облачная/Пользовательская)
ApiKeySelect.tsx Выбор ключа API
ManualConfigModal.tsx Модальное окно с копируемым фрагментом конфигурации
Файл Назначение
useToolBatchStatuses.ts Получает /api/cli-tools/all-statuses, управляет состоянием загрузки/обновления

Новые пространства имен добавлены в план 14 F9:

Пространство имен Назначение
cliCommon Общие строки (ярлыки карточек, тексты концепций/сравнений, ярлыки страниц деталей)
cliCode Строки страниц CLI Code
cliAgents Строки страниц CLI Agents
acpAgents Строки страниц ACP Agents

Полные переводы на португальский (Бразилия) и английский предоставлены. 39 других локалей автоматически используют английский через объединение на уровне пространства имен в src/i18n/request.ts.


  1. Откройте /dashboard/api-manager → Создать ключ API
  2. Дайте ему имя (например, cli-tools) и выберите все разрешения
  3. Скопируйте ключ — он вам понадобится для каждого CLI ниже

Ваш ключ выглядит так: sk-xxxxxxxxxxxxxxxx-xxxxxxxxx


Все инструменты на основе npm требуют Node.js 22.22.2+ или 24.x:

Окно терминала
# Claude Code (Anthropic)
npm install -g @anthropic-ai/claude-code
# OpenAI Codex
npm install -g @openai/codex
# OpenCode
npm install -g opencode-ai
# Cline
npm install -g cline
# KiloCode
npm install -g kilocode
# Qwen Code
npm install -g @qwen-code/qwen-code
# Google Gemini CLI (запускается через `omniroute run gemini` → /v1beta surface)
npm install -g @google/gemini-cli
# Aider
pip install aider-chat
# Smelt
cargo install smelt # на основе Rust
# Pi coding agent
# см. https://github.com/zechnerj/pi-coding-agent для установки
# jcode
# см. https://github.com/1jehuang/jcode для установки

Шаг 3 — Настройте через панель управления

Заголовок раздела «Шаг 3 — Настройте через панель управления»
  1. Перейдите по адресу http://localhost:20128/dashboard/cli-code
  2. Найдите ваш инструмент в сетке
  3. Нажмите на карточку, чтобы открыть страницу деталей инструмента
  4. Выберите ваш ключ API и базовый URL
  5. Нажмите Применить конфигурацию или скопируйте фрагмент конфигурации вручную

Шаг 4 — Установите глобальные переменные окружения

Заголовок раздела «Шаг 4 — Установите глобальные переменные окружения»
Окно терминала
# Универсальная конечная точка 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 читает 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://&lt;your-server-ip&gt;:20128.


Окно терминала
# Создайте ~/.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"


Современный Codex (v0.137+) читает ~/.codex/config.toml только — старый config.yaml принадлежит устаревшему npm CLI и игнорируется без предупреждений. Ключ API остается в переменной окружения OMNIROUTE_API_KEY (env_key), никогда не внутри файла:

Окно терминала
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"

Полная справка (профили, wire_api, контекстные окна): CODEX-CLI-CONFIGURATION.md.

Тест: codex "what is 2+2?"


Окно терминала
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 для отправки вариантов мышления.


Режим 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 → Применить конфигурацию.


Режим 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/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 настроен для пользовательских моделей конечных точек, и вы хотите, чтобы 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 токены являются запасным вариантом совместимости и могут появляться в журналах редактора или истории прокси.

Окно терминала
# Войдите в свою учетную запись AWS/Kiro:
kiro-cli login
# CLI использует свою собственную аутентификацию — OmniRoute не нужен как бэкенд для самого Kiro CLI.
# Используйте kiro-cli вместе с OmniRoute для других инструментов.
kiro-cli status

Для настольного приложения Kiro IDE используйте конечную точку MITM, предоставленную OmniRoute по адресу /dashboard/cli-tools → Kiro.


Исполняемый файл 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 '&lt;value&gt;' # Задать пароль администратора напрямую
omniroute setup --add-provider \
--provider openai \
--api-key '&lt;value&gt;' \
--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 &lt;url&gt; # Переопределить полный URL конечной точки проверки состояния

Команда doctor выполняет следующие проверки: Config, Database, Storage/encryption, Port availability, Node runtime, Native binary (better-sqlite3), Memory и Server liveness. Она завершается с ненулевым кодом, если какая-либо проверка имеет статус fail.

Окно терминала
omniroute providers available # Каталог провайдеров OmniRoute
omniroute 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 &lt;provider&gt; --credential-env PROVIDER_KEY
omniroute providers import ./providers.json --dry-run --json
omniroute providers auth &lt;provider&gt; # Существующий поток OAuth
omniroute providers edit <id|name> --default-model &lt;model&gt;
omniroute providers remove <id|name> --yes

providers 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 в формате JSON
omniroute auth export --force --id &lt;id&gt; # Экспортировать только соответствующее подключение
omniroute auth export --force --format env # Вывести строки OMNIROUTE_<PROVIDER>_<FIELD>=&lt;value&gt;
omniroute auth export --force --out creds.json # Записать в файл (создаётся с правами доступа 0600)

auth export работает только локально (прямое чтение SQLite, без HTTP-маршрута) и намеренно выводит/записывает значения apiKey/accessToken/refreshToken/idToken в виде открытого текста — это функция, а не ошибка. Без --force из базы данных ничего не читается и ничего не расшифровывается. Перед выводом любого открытого текста в stderr всегда печатается предупреждающий баннер. Требуется, чтобы была задана переменная STORAGE_ENCRYPTION_KEY. Поле, которое не удалось расшифровать (устаревший ключ, повреждённый шифротекст), представляется как &lt;field&gt;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 # Состояние / перезапуск сервера MCP
omniroute a2a status | card # Состояние сервера A2A / карточка агента
omniroute tunnel list | create | stop # Управление туннелями (cloudflare/tailscale/ngrok)
omniroute env show | get &lt;k&gt; | set &lt;k&gt; &lt;v&gt; # Просмотр / установка переменных среды (временно)
omniroute test # Быстрая проверка подключения к провайдерам
omniroute update # Проверить наличие обновлений
omniroute completion # Создать автодополнение для оболочки
Флаг Описание
--no-open Не открывать браузер автоматически при запуске
--port &lt;n&gt; Переопределить порт API (по умолчанию 20128)
--mcp Запустить как сервер MCP через stdio (для IDE)
--non-interactive Режим CI (без запросов; чтение из среды/флагов)
--json Машиночитаемый вывод JSON (doctor, providers и т. д.)
--help, -h Показать справку по конкретной команде
--version, -v Вывести установленную версию

Конечная точка Описание Используется для
/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 &lt;command&gt;
Панель управления показывает “not detected” после установки Кэш устарел Нажмите “⟳ Обновить обнаружение” на панели управления
Старая ссылка /dashboard/cli-tools Закладка до v3.8.6 Авто-перенаправление на /dashboard/cli-code (308)
Старая ссылка /dashboard/agents Закладка до v3.8.6 Авто-перенаправление на /dashboard/acp-agents (308)

Исходный код OmniRoute (a58000c7685f)

HagiCode

HagiCode — агентная среда разработки со структурированными процессами, параллельным выполнением несколькими агентами и интерфейсами Hero Dungeon.

Превращайте идеи в полезное ПО с более умным, быстрым и увлекательным агентным рабочим процессом.

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