Вопрос

OpenClaw на Windows: WSL2, нативный Hub или чистый CLI

Какой вариант установки выбрать, как поднять Gateway службой и что проверить, если первый запуск молчит.

· 5 мин чтения

Коротко

  • Три сценария: Windows Hub с GUI, нативный CLI/Gateway через PowerShell или WSL2 для самого Linux-совместимого Gateway.
  • Без gateway.mode=local в конфиге Gateway не стартует; задайте его через openclaw onboard --mode local или openclaw setup.
  • Запуск как службы идёт через Scheduled Task и скрытый gateway.vbs, без видимой консоли.
  • Битый конфиг или конфиг от более новой версии отдаёт exit 78 и не зацикливает перезапуски.

Сверено с документацией OpenClaw 2026.9.9, 9 октября 2026.

Под Windows у OpenClaw три точки входа, и выбор между ними зависит от того, нужен ли вам графический клиент, терминал или Linux-окружение. Hub ставит Gateway в собственную WSL-дистрибутив, CLI работает прямо в Windows, WSL2 даёт самый Linux-совместимый режим Gateway. Дальше: что выбрать и как довести Gateway до зелёного трея.

Какой сценарий выбрать

Документация называет три пути: Hub для десктопа с треем, чатом и Command Center; PowerShell-установщик для терминального CLI/Gateway; WSL2 как самый совместимый с Linux вариант Gateway. Hub рассчитан на большинство: ставится без прав администратора, идёт с подписанными x64 и ARM64 инсталляторами и сам поднимает Gateway в собственной WSL-дистрибутиве OpenClawGateway, не трогая ваш Ubuntu.

Hub: быстрый путь

Скачайте установщик с релизов проекта openclaw-windows-node: OpenClawCompanion-Setup-x64.exe или OpenClawCompanion-Setup-arm64.exe. Запустите из Start-меню OpenClaw Companion. При первом запуске выберите Set up locally: Hub развернёт свою WSL-дистрибутив, поставит в неё Gateway и спарит приложение. Когда трей станет зелёным, откройте Command Center и проверьте соединение, спаривание, состояние узла и каналов.

Если Hub уже стоит, а Gateway у вас свой, откройте вкладку Connections и выберите Advanced setup. Hub умеет подключаться к локальному Gateway на этой же машине, к WSL-Gateway, к удалённому по URL и токену или к Gateway за SSH-туннелем.

Нативный CLI из PowerShell

Для терминального режима установите OpenClaw однострочником в PowerShell:

iwr -useb https://openclaw.ai/install.ps1 | iex

Проверка сразу из той же сессии:

openclaw --version
openclaw doctor
openclaw gateway status --json

Новый workspace работает и с нативным Windows Gateway: поставьте Git for Windows и держите его в PATH. Каждый пустой workspace стартует как отдельный Git-репозиторий без вашей глобальной Git-конфигурации.

Где лежит конфиг и почему старт молчит

Без ключа gateway.mode=local Gateway откажется стартовать, это защита, а не баг. Поставьте его через openclaw onboard --mode local или openclaw setup. Если конфиг существует, но gateway.mode в нём нет, Gateway не будет угадывать local за вас: перезапустите onboarding, задайте ключ вручную или передайте --allow-unconfigured для разового запуска.

Если автоматическая миграция не приводит конфиг в порядок, интерактивный терминал может предложить openclaw doctor --fix и повторить старт после согласия. В неинтерактивной среде команда просто печатается. Если после правки конфиг всё ещё не валиден, старт останавливается. Конфиг с $include, Nix-управляемый конфиг и конфиг, записанный более новой версией, авто-миграция не трогает.

Gateway как служба

Управляется теми же командами, что и на других платформах:

openclaw gateway install
openclaw gateway start
openclaw gateway stop
openclaw gateway restart
openclaw gateway uninstall

На Windows используется Scheduled Task. Видимый скрипт лежит как gateway.cmd в каталоге состояния OpenClaw, но запускается он через сгенерированный gateway.vbs-обёртку WScript, так что фоновая служба не открывает консольное окно. Если создание задачи отклонено, OpenClaw откатывается к записи в пользовательской папке Startup.

Когда дописываете перенаправление вывода в команду запуска, берите всю цель в кавычки, например >> "%USERPROFILE%\.openclaw\logs\gateway-stdout.log" 2>&1. Без кавычек OpenClaw не разбирает такой лаунчер однозначно и откажется останавливать слушателя, чью принадлежность не удалось проверить. После обновления старой установки прогоняйте openclaw gateway install --force, чтобы пересоздать лаунчер, если обновление его не обновило.

Первый запуск: что может сломаться

Gateway не стартует и в конфиге нет gateway.mode=local. Запустите openclaw onboard --mode local и повторите старт. Если конфиг битый, Gateway не пытается чинить его в неинтерактивной среде: запустите openclaw doctor --fix в обычном терминале, согласитесь на исправление и попробуйте снова.

Если gateway start упирается в дедлайн готовности, команда печатает still-starting и выходит с кодом 2. Служба при этом продолжает работать. Проверьте openclaw gateway status --deep ещё раз, прежде чем перезапускать. Занятый порт или чужой слушатель на нём — отдельный класс ошибок, и сам по себе занятый порт ещё не значит, что Gateway действительно готов.

Статус Gateway и Doctor читают числовое состояние Scheduled Task и не зависят от языка Windows или кодовой страницы консоли. Сообщение о прошлом завершении задачи не доказывает, что она сейчас работает. Задачи в очереди или в неизвестном состоянии Doctor не считает безопасно остановленными: остановите их через владельца службы; если проверка недоступна, сначала восстановите права на чтение Task Scheduler.

Когда Windows-маршрут не подходит

Если вам нужен клиент без своего Gateway, например чтобы подключаться к уже поднятому удалённому Gateway, ставьте Hub и в Connections выбирайте remote по URL и токену. Локальный MCP-сервер в Hub включается отдельно в настройках и позволяет MCP-клиентам вроде Claude Desktop или Cursor использовать Windows-возможности без запущенного Gateway.

Частые ошибки

Конфиг без gateway.mode=local. Gateway не угадывает значение, отказывается стартовать и не пытается чинить конфиг в неинтерактивной службе. Запустите openclaw onboard --mode local.

Конфигурация, записанная более новой версией OpenClaw. Старт не пройдёт валидацию и завершится с exit 78, чтобы не зациклить перезапуски.

Незакавыченное перенаправление вывода в gateway.cmd. Фрагменты пути остаются в аргументах процесса, и OpenClaw отказывается останавливать такой слушатель. Возьмите цель в кавычки.

Старый лаунчер после обновления. Прогоните openclaw gateway install --force, это пересоздаёт Scheduled Task и vbs-обёртку.

Служба «вроде запущена», но не отвечает. Занятый порт не равно готовность: проверяйте openclaw gateway status --deep, прежде чем перезапускать.