CLI Integrations (Русский)
Сводная таблица
Заголовок раздела «Сводная таблица»Каждая команда учитывает активный контекст (задаваемый с помощью
omniroute connect, см. Удалённый режим) или явные параметры
--remote <url> --api-key <key>. Выражение «локальный или удалённый» ниже
означает следующее: без параметров команда обращается к
http://localhost:20128; с параметром --remote (или при активном удалённом
контексте) она получает каталог с указанного сервера и записывает конфигурацию
локально.
| Команда | Инструмент | Что записывает | Основные флаги | Локально или удалённо |
|---|---|---|---|---|
omniroute setup-codex |
OpenAI Codex CLI | ~/.codex/<name>.config.toml — отдельный профиль для каждой совместимой текстовой модели (codex --profile <name>) |
--remote --api-key --only --dry-run --port --codex-home |
Оба варианта |
omniroute setup-claude |
Claude Code | ~/.claude/profiles/<name>/settings.json — отдельный профиль для каждой соответствующей модели (CLAUDE_CONFIG_DIR) |
--remote --api-key --only --dry-run --port --claude-home |
Оба варианта |
omniroute setup-opencode |
OpenCode (совместимый с OpenAI) | ~/.config/opencode/opencode.json — провайдер omniroute со всеми моделями из каталога (opencode -m omniroute/<model>) |
--remote --api-key --only --model --dry-run --port |
Оба варианта |
omniroute setup-cline |
Cline | ~/.cline/data/{globalState,secrets}.json (режим CLI) + выводит настройки расширения VS Code |
--remote --api-key --model --yes --dry-run --port --cline-dir |
Оба варианта |
omniroute setup-kilo |
Kilo Code | ~/.local/share/kilo/auth.json (CLI) + добавляет kilocode.* в settings.json VS Code, если он существует |
--remote --api-key --model --yes --dry-run --port --auth-path --vscode-settings |
Оба варианта |
omniroute setup-continue |
Continue / CLI cn |
~/.continue/config.yaml — модели с provider: openai, ключ через ${{ secrets.OMNIROUTE_API_KEY }} |
--remote --api-key --only --dry-run --port --config-path |
Оба варианта |
omniroute setup-cursor |
Cursor | Ничего — выводит шаги, выполняемые в приложении (конфигурация Cursor хранится в закрытой базе SQLite) | --remote --api-key --only --port |
Оба варианта |
omniroute setup-roo |
Roo Code | ~/.omniroute/roo-settings.json (документ для импорта) + задаёт roo-cline.autoImportSettingsPath, если существует settings.json VS Code |
--remote --api-key --model --yes --dry-run --port --import-path --vscode-settings |
Оба варианта |
omniroute setup-crush |
Crush | ~/.config/crush/crush.json — провайдер openai-compat, ключ через $OMNIROUTE_API_KEY |
--remote --api-key --only --dry-run --port --config-path |
Оба варианта |
omniroute setup-goose |
Goose | ~/.config/goose/config.yaml (GOOSE_PROVIDER/OPENAI_HOST/GOOSE_MODEL) + выводит пример настройки переменных окружения |
--remote --api-key --model --yes --dry-run --port --config-path |
Оба варианта |
omniroute setup-aider |
Aider | ~/.aider.conf.yml (openai-api-base + model: openai/<id>) + выводит пример настройки переменных окружения |
--remote --api-key --model --yes --dry-run --port --config-path |
Оба варианта |
omniroute setup-qwen |
Qwen Code | ~/.qwen/settings.json — массив V4 modelProviders.openai + OMNIROUTE_API_KEY в ~/.qwen/.env |
--remote --api-key --model --yes --dry-run --port --config-path --env-path |
Оба варианта |
omniroute setup-5dive |
5dive (парк агентов) | Ничего в $HOME — записывает профиль аутентификации 5dive (/var/lib/5dive/auth-profiles/<name>/) через 5dive agent auth set; только для root, выполняется на хосте парка |
--remote --api-key --model --auth-profile --agent --byo-provider --fivedive-bin --no-sudo --yes --dry-run --port |
Оба варианта |
omniroute run <target> |
Запуск среды выполнения (общий) | Ничего — запускает claude/codex/aider/goose/opencode/qwen/gemini с нужными переменными окружения и аргументами; Qwen и Gemini используют временный изолированный домашний каталог |
--remote --base-url --context --provider --model --api-key --api-key-env --dry-run --json --port --profile --token |
Оба варианта |
omniroute launch |
Claude Code | Ничего — запускает claude с внедрёнными ANTHROPIC_BASE_URL/ANTHROPIC_AUTH_TOKEN |
--remote --api-key --token --profile --port |
Оба варианта |
omniroute launch-codex |
OpenAI Codex CLI | Ничего — запускает codex с провайдером omniroute, внедрённым через флаги -c |
--remote --api-key --profile (-p) --port |
Оба варианта |
Примечания о флагах (проверено по исходному коду команд):
--remote <url>— получить каталог с удалённого сервера OmniRoute (переопределяет--portи активный контекст).--api-key <key>передаёт учётные данные для этого сервера (по умолчанию используется переменная окруженияOMNIROUTE_API_KEYили токен активного контекста).--only <patterns>— подстроки, разделённые запятыми; сохраняются только совпадающие с ними идентификаторы моделей (например,--only glm,kimi). Доступно дляsetup-codex,setup-claude,setup-opencode,setup-continue,setup-cursor,setup-crush.--dry-run— вывести в точности то, что было бы записано, не изменяя файловую систему. Доступно для каждой командыsetup-*, кромеsetup-cursor(она никогда не записывает файл).--model <id>— обязателен (либо выбирается интерактивно) для инструментов без автоматического обнаружения моделей: Cline, Kilo, Roo, Goose, Qwen, Aider, 5dive. Эти инструменты также принимают--yesдля неинтерактивного запуска (в этом случае требуется--model).setup-opencodeпринимает--model, чтобы задать модель верхнего уровня по умолчанию.--model <id>вomniroute runобрабатывается согласно настройке каждой цели в манифесте (bin/cli/cli-manifest.mjs): aider получает--model openai/<id>, а opencode —--model omniroute/<id>(префикс добавляется, только если он ещё не указан в идентификаторе); qwen и gemini получают идентификатор без изменений; claude получает его черезANTHROPIC_MODEL, goose — черезGOOSE_MODEL, а codex — через аргументы-c model_providers.omniroute.*. Qwen — единственная цель запуска, для которой--modelстрого обязателен:omniroute run qwenбез него завершается с кодом2и явным сообщением об ошибке.--port <port>— порт локального OmniRoute (по умолчанию20128; игнорируется, если задан--remote). Присутствует во всех командахsetup-*и в обоих средствах запуска.- Коды завершения
omniroute run: собственный код завершения дочернего CLI передаётся без изменений;2= недопустимые аргументы (неподдерживаемая цель, отсутствие обязательного--model, ограничение контейнера);127= исполняемый файл цели отсутствует вPATH;130/143/129— запуск завершён сигналомSIGINT/SIGTERM/SIGHUP;1= другая ошибка запуска во время выполнения. - Оба средства запуска (
launch,launch-codex) принимают--profile <name>для выбора профиля, записанногоsetup-claude/setup-codex, а также сквозные аргументы для соответствующего исполняемого файлаclaude/codex.
Интерактивное средство выбора также используется рецептами настройки:
# Выберите модель из активного локального или удалённого каталога и настройте целевой инструмент.omniroute configure claudeomniroute configure opencode --provider glmomniroute configure qwen --model qwen/qwen3.8-max-preview --yesВ настоящее время configure делегирует работу протестированным рецептам для codex, claude,
opencode, qwen, aider, goose, cline, continue, kilo и 5dive.
Записи каталога, предназначенные только для IDE,
MITM и руководств, по-прежнему требуют явного использования setup-*/ручных процедур и
не представлены как доступные для запуска цели.
setup-opencode— это облегчённая openai-совместимая интеграция OpenCode. Также существует более функциональная интеграция с помощью плагина —omniroute setup opencode, — которая устанавливает@omniroute/opencode-plugin. Это разные команды; в таблице выше описанаsetup-opencode.Плагин поставляется в двух пакетах — по одному для каждой основной версии OpenCode, поскольку два загрузчика ожидают разные точки входа:
@omniroute/opencode-pluginдля OpenCode v1 и@omniroute/opencode-plugin-v2для OpenCode v2. Пакет v2 является новым (0.1.0) и следует всё ещё изменяющемуся контракту хоста, поэтому он считывает структуру, которую OpenCode добавляет в черновик каталога, а не предполагает конкретный формат. Установите его, добавив записьpluginsвopencode.json;omniroute setup opencodeпо-прежнему устанавливает пакет v1. Параметры и порядок поиска учётных данных описаны в README пакета.
Локальное использование
Заголовок раздела «Локальное использование»Когда OmniRoute запущен на localhost:20128, просто выполните команду настройки для вашего инструмента. Каталог загружается с локального сервера.
# Codex: записать профиль для каждой сопоставленной модели в ~/.codex/omniroute setup-codexcodex --profile glm52 # использовать сгенерированный профиль
# Claude Code: записать профили для каждой модели, затем запустить один из нихomniroute setup-claudeomniroute launch --profile glm52
# OpenCode: записать OpenAI-совместимый провайдер со всеми моделями каталогаomniroute setup-opencodeexport OMNIROUTE_API_KEY=sk-... # используется через {env:OMNIROUTE_API_KEY}, никогда не сохраняется на дискopencode -m omniroute/glm/glm-5.2 "..."
# Для инструментов без автоматического обнаружения модель необходимо указать явно:omniroute setup-aider --model glm/glm-5.2omniroute setup-qwen --model qwen/qwen3.8-max-preview
# Предварительный просмотр без записи каких-либо данных:omniroute setup-continue --dry-runЗапуск без записи какой-либо конфигурации (только внедрение переменных окружения):
omniroute launch # Claude Code → локальный OmniRouteomniroute launch-codex # Codex CLI → локальный OmniRouteomniroute launch-codex --profile glm52omniroute run claude --model openai/gpt-5.4omniroute run codex --model openai/gpt-5.4 --dry-run --jsonomniroute run aider --model glm/glm-5.2 -- --message "reply OK"omniroute run goose --model glm/glm-5.2omniroute run opencode --model glm/glm-5.2 -- run "reply OK"omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# Явный путь к команде: всё после -- передаётся без измененийomniroute run claude -- --print-system-prompt "review this diff"Удалённое использование
Заголовок раздела «Удалённое использование»Направьте любую команду настройки на удалённый OmniRoute с помощью --remote и --api-key. Каталог загружается с удалённого сервера, а конфигурация записывается на локальном компьютере.
# OpenCode с удалённым VPS, оставить только модели glm/kimiomniroute setup-opencode --remote http://192.168.0.15:20128 --api-key oma_live_xxx \ --only glm,kimiopencode -m omniroute/glm/glm-5.2 "..." # сначала экспортируйте OMNIROUTE_API_KEY
# Профили Codex из удалённого каталогаomniroute setup-codex --remote http://192.168.0.15:20128 --api-key oma_live_xxx
# Запустить CLI непосредственно с подключением к удалённому серверуomniroute launch --remote http://192.168.0.15:20128 --api-key oma_live_xxxomniroute launch-codex --remote http://192.168.0.15:20128 --api-key oma_live_xxxВместо того чтобы каждый раз передавать --remote/--api-key, войдите один раз, и активный контекст будет автоматически предоставлять эти параметры:
omniroute connect 192.168.0.15 # выпускает токен с ограниченной областью действия и сохраняет контекстomniroute setup-codex # ← теперь использует удалённый каталогomniroute setup-opencode # ← аналогичноomniroute launch # ← Claude Code с подключением к удалённому серверуСведения о контекстах, областях действия и управлении токенами см. в разделе Удалённый режим.
Парки агентов 5dive
Заголовок раздела «Парки агентов 5dive»5dive запускает парк длительно работающих агентов для программирования, каждый из которых является юнитом systemd под отдельным пользователем Unix. Сам по себе он не является CLI для программирования, поэтому omniroute run нечего запускать — 5dive является целью только для настройки.
omniroute configure 5dive --model failover-demo --yesomniroute setup-5dive --model failover-demo --auth-profile omniroute --agent worker1Обе формы записывают один профиль аутентификации 5dive, после чего каждое место claude, привязанное к этому профилю, взаимодействует с OmniRoute. Для этой цели характерны три особенности:
- Команда выполняется на хосте парка от имени root. Команды 5dive работают с локальными юнитами systemd и принадлежащим root каталогом состояния; удалённый режим отсутствует. Если команда ещё не выполняется от имени root, рецепт повторно запускает её через
sudo(--no-sudoотключает это поведение и вместо выполнения выводит команду). - Конечная точка должна использовать
https://, если только это не loopback-адрес. API-ключ агента передаётся через этот URL с каждым запросом, и 5dive отклоняет незашифрованную конечную точку за пределами хоста. Адрес частной локальной сети не является исключением. - Закреплённая за каждым местом модель имеет приоритет над профилем. Профиль содержит
ANTHROPIC_DEFAULT_{OPUS,SONNET,HAIKU}_MODEL, однако место, всё ещё закреплённое за стандартным идентификатором модели, завершит первый запрос ошибкой «Возникла проблема с выбранной моделью». Передайте--agent <name>(можно указывать несколько раз), чтобы также закрепить модели за местами; если этого не сделать, рецепт выведет соответствующую команду.
API-ключ передаётся 5dive через stdin (--api-key=-), поэтому он никогда не отображается в выводе ps.
Чтобы обеспечить переключение провайдера для парка при сбое, профиль следует направить на комбинацию OmniRoute, а не на отдельную модель: когда основной сервер стал полностью недоступен в середине запроса во время запуска, зафиксированного в #11578, агент завершил оставшиеся шаги с помощью резервного сервера, не показывая пользователю сбой.
Соглашения о базовом URL (каким инструментам нужен /v1)
Заголовок раздела «Соглашения о базовом URL (каким инструментам нужен /v1)»OmniRoute предоставляет интерфейс OpenAI по пути /v1, интерфейс Anthropic — в корне,
а нативный интерфейс Gemini — по пути /v1beta. Каждая интеграция настроена в соответствии с форматом,
который ожидает её инструмент (проверено по исходному коду команд):
| Интеграция | Записываемый базовый URL | /v1? |
|---|---|---|
setup-cline (openAiBaseUrl) |
корень | Нет — Cline добавляет /v1/chat/completions |
setup-goose (OPENAI_HOST) |
корень | Нет — Goose добавляет путь |
setup-aider (OPENAI_API_BASE) |
корень | Нет — LiteLLM добавляет /v1/chat/completions |
setup-kilo, setup-roo, setup-continue, setup-crush, setup-cursor |
с /v1 |
Да |
setup-claude (ANTHROPIC_BASE_URL), launch |
корень | Нет — Claude Code добавляет /v1/messages |
setup-codex, launch-codex (model_providers.omniroute.base_url) |
с /v1 |
Да |
setup-qwen (modelProviders.openai[].baseUrl) |
с /v1 |
Да |
run gemini (GOOGLE_GEMINI_BASE_URL) |
корень | Нет — SDK добавляет /v1beta/models/… |
setup-5dive (ANTHROPIC_BASE_URL в профиле аутентификации) |
корень | Нет — Claude Code добавляет /v1/messages |
Сохранение нативных зависимостей при обновлении: --include=optional
Заголовок раздела «Сохранение нативных зависимостей при обновлении: --include=optional»При обновлении с помощью omniroute update (после подтверждения или с флагом --apply)
OmniRoute запускает установку со встроенным флагом --include=optional:
npm install -g omniroute@latest --include=optionalЭто не флаг, который нужно передавать в omniroute update, — средство обновления
всегда применяет его автоматически. Это гарантирует, что optionalDependencies
(better-sqlite3, keytar, tls-client, стек SLM LLMLingua) сохранятся после
обновления, даже если в конфигурации npm задано omit=optional, из-за чего в противном
случае нативный драйвер SQLite и привязка к хранилищу ключей ОС были бы незаметно
удалены. Чтобы просмотреть точную команду без её выполнения:
omniroute update --dry-run# [ПРОБНЫЙ ЗАПУСК] Будет выполнено: npm install -g omniroute@latest --include=optionalДругие флаги omniroute update (проверено по исходному коду): --check (завершиться с кодом 1,
если версия устарела), --apply (установить без запроса подтверждения), --changelog, --no-backup,
--yes.
Google Gemini CLI через omniroute run gemini
Заголовок раздела «Google Gemini CLI через omniroute run gemini»Контракт проверен с @google/gemini-cli 0.50.0: CLI учитывает
GOOGLE_GEMINI_BASE_URL и отправляет POST /v1beta/models/<model>:generateContent
(а также :streamGenerateContent?alt=sse) по этому адресу — в точности на нативный
интерфейс Gemini OmniRoute (/v1beta). omniroute run gemini настраивает это автоматически:
GOOGLE_GEMINI_BASE_URL→ активный базовый URL OmniRoute (корень, без/v1);GEMINI_API_KEY→ определённые учётные данные OmniRoute (параметр/переменная окружения/контекст);- временный изолированный
GEMINI_CLI_HOME, в котором.gemini/settings.jsonвыбирает аутентификациюgemini-api-key, поэтому сохранённый сеанс Google OAuth (Code Assist) никогда не переопределяет запуск, направленный через OmniRoute; каталог удаляется после завершения; - гигиена переменных окружения: из окружения дочернего процесса удаляются
GOOGLE_API_KEY,GOOGLE_GENAI_USE_VERTEXAIиGOOGLE_GENAI_USE_GCA(которые перенаправили бы аутентификацию на Vertex/Code Assist), аGEMINI_DEFAULT_AUTH_TYPE=gemini-api-keyзадаётся как дополнительная страховка; другие целиrunподвергаются такой же обработке собственных конфликтующих переменных; - добавление
--model <id>на основе--provider/--model.
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "hello"Проверка доверия к рабочей области Gemini по-прежнему действует в безголовом режиме — передайте
--skip-trust (или подтвердите доверие к каталогу интерактивно) самостоятельно; средство запуска
намеренно не обходит эту проверку. Это средство запуска отличается от регистрации ACP
(src/lib/acp/registry.ts, gemini --acp), которая остаётся интеграцией
агентского протокола для /dashboard/acp-agents.
Реальная smoke-проверка (по запросу)
Заголовок раздела «Реальная smoke-проверка (по запросу)»Детерминированные регрессионные тесты плана запуска выполняются в CI (tests/unit/cli/run-command.test.ts,
tests/unit/cli/run-execution.test.ts). Для проверки РЕАЛЬНЫХ исполняемых файлов с РЕАЛЬНЫМ
сервером OmniRoute предусмотрен запускаемый по запросу тестовый стенд:
tests/integration/upstream-cli-smoke.int.test.ts. Он никогда не запускается автоматически
(каждый подтест пропускается, если не задано RUN_CLI_SMOKE=1), передаёт учётные данные по ИМЕНИ
переменной окружения (никогда не передавая само значение), скрывает строки, похожие на ключи, во всех записываемых выходных данных, пропускает
цели, исполняемые файлы которых не установлены, и классифицирует сбои как
auth / upstream / config вместо простого логического значения:
RUN_CLI_SMOKE=1 \OMNIROUTE_SMOKE_BASE_URL="http://localhost:20128" \OMNIROUTE_SMOKE_MODEL="<provider/model>" \OMNIROUTE_SMOKE_API_KEY_ENV="OMNIROUTE_API_KEY" \node --import tsx/esm --test tests/integration/upstream-cli-smoke.int.test.tsНеобязательно: OMNIROUTE_SMOKE_TARGETS="codex,opencode,qwen" ограничивает набор проверяемых целей;
OMNIROUTE_SMOKE_TIMEOUT_MS переопределяет 120-секундный тайм-аут для каждой цели.
См. также
Заголовок раздела «См. также»- Настройка Claude Code — подробное руководство по Claude Code
- Настройка Codex CLI — первоначальная базовая настройка
[model_providers.omniroute] - Удалённый режим — контексты, токены доступа с ограниченной областью действия и управление удалённым сервером
- Справочник по инструментам CLI — полный каталог поддерживаемых инструментов и страниц панели управления
- Руководство по установке — способы установки и первоначальная настройка при первом запуске
HagiCode
HagiCode — агентная среда разработки со структурированными процессами, параллельным выполнением несколькими агентами и интерфейсами Hero Dungeon.
Превращайте идеи в полезное ПО с более умным, быстрым и увлекательным агентным рабочим процессом.

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