Без localhost-колбэка · матрица SSH/VNC · runbook из 8 шагов · таблица на 20 минут
OpenClaw v2026.5.20 выводит подписку xAI (Grok) на полноценный путь device-code OAuth: в терминале появляются URL авторизации и одноразовый код, а CLI на удалённом Mac опрашивает token-эндпоинт — без прослушивания 127.0.0.1:56121 и без обратного SSH-портфорварда. Для команд с арендованным удалённым Mac и рабочей станцией на Windows или Linux это снимает главный барьер: учётные данные Grok остаются на узле Gateway, а браузерная авторизация идёт локально. Если вы упираетесь в «OAuth Codex перепутал маршруты», «голый API Key не покрывает SuperGrok» или «в SSH всё прошло, а Gateway отдаёт 401» — ниже аудируемый ops-путь, ортогональный к материалу о Doctor/Codex OAuth v2026.5.6: матрица SSH × VNC, runbook из восьми шагов, четыре вывода для тикета и FAQ. Сначала сверьтесь с десятиминутным маршрутом установки; при выборе между headless Linux и macOS с VNC — с границами Gateway Linux vs macOS; после подключения Grok настройте fallback в руководстве по мультимодельной маршрутизации.
До v2026.5.20 многие команды на облачном Gateway подключали Grok только через голый API Key или OAuth с localhost-колбэком; первый не выравнивает квоты X Premium / SuperGrok, второй в топологии «Gateway в дата-центре, браузер на ноутбуке» почти неэксплуатируем. device-code снимает проблему топологии авторизации, но в тикетах по-прежнему шесть частых классов сбоев.
Колбэк OAuth и удалённая топология: классический OAuth ждёт возврат браузера на http://127.0.0.1:56121/callback (порт зависит от версии); при SSH на удалённый Mac браузер на Windows, колбэк попадает на ноутбук, а не на Gateway — token записывается не туда или истекает по таймауту.
Разный контекст пользователя CLI и Gateway: выполнение models auth login под root или другим macOS-пользователем кладёт token в HOME пользователя A, а launchd-даемон Gateway читает каталог B — симптом «CLI ок, Gateway 401».
Версия ниже v2026.5.20: --auth-choice xai-device-code и --device-code в старых сборках отсутствуют или работают неполно; смешение npm CLI и старого LaunchAgent особенно коварно.
Путаница с маршрутами Codex OAuth: в ветке 5.5 openai-codex/* мог ошибочно сливаться с openai/* ; ручные alias для xAI усугубляют сбои обновления token — после апгрейда обязателен openclaw doctor и сверка сматериалом v2026.5.6。
Окно опроса device-code и темп оператора: код имеет срок; обрыв SSH или уход из tmux прерывает polling. Проходите flow в стабильной SSH-сессии или терминале внутри VNC и вовремя завершайте авторизацию в локальном браузере.
Несовпадение id модели и alias provider: успешный OAuth лишь означает доступность xAI; если в openclaw.json Grok указывает на старый alias или fallback на неавторизованный provider, в консоли «вошли, но 404/401» — сверяйте смультимодельной маршрутизацией.
device-code сильно снижает зависимость Grok OAuth от графического стола, но не отменяет необходимость VNC для части приёмки OpenClaw на удалённом Mac. Таблица сопоставляет шаги проверки с рекомендуемым каналом доступа.
| Шаг приёмки | Только SSH | device-code | Рекомендуется VNC | Критерий прохождения |
|---|---|---|---|---|
| openclaw --version / doctor | Достаточно | — | Опционально | CLI и Gateway ≥ v2026.5.20, doctor без конфликтов xAI |
| onboard --auth-choice xai-device-code | Достаточно | Да | Опционально | Демон установлен, путь token совпадает с пользователем launchd |
| models auth login --provider xai --device-code | Достаточно | Да | Опционально | В терминале URL+code, после polling models list показывает xai |
| Авторизация xAI в локальном браузере | N/A (на ноутбуке) | Да | Не нужен | Без localhost-колбэка на Gateway |
| gateway restart + smoke Grok | Достаточно | — | Желательно | В логах provider=xai, первый ответ не 401 |
| Консоль 18789 / Network | curl-зонд | — | Желательно | WebSocket и выпадающий список grok без mixed-content |
| launchd / связка ключей | Только текстовые логи | — | Желательно | Согласовано с чек-листом launchd |
| Цепочка fallback моделей | CLI-конфиг | — | Консоль | Fallback не уходит на неавторизованный provider |
Правильная модель для xAI device-code: SSH для авторизации и restart, VNC для консоли и проверки того же пользователя — а не «OAuth обязательно требует рабочий стол». OAuth с колбэком localhost:56121 почти всегда тянет VNC или портфорвард.
На headless Linux device-code тоже проходит по SSH, но каналы вне Grok (браузерный MCP, QR IM, микрофон Talk) могут требовать графическую сессию — границы см. всравнении Linux vs macOS。
Заморозка и бэкап: экспортируйте конфиг и каталог состояния OpenClaw; зафиксируйте openclaw --version, пользователя LaunchAgent и список provider. На новом узле начните сдесятиминутного маршрута。
Версия ≥ v2026.5.20: при необходимости обновите OpenClaw и убедитесь, что CLI и Gateway — одна сборка; смешение версий — главная причина «подкоманда device-code не найдена».
Новый узел — onboard: под тем же macOS-пользователем, что и Gateway, выполните openclaw onboard --install-daemon --auth-choice xai-device-code; откройте URL из терминала в локальном браузере, введите код, дождитесь завершения polling.
Уже есть Gateway — дозапись xAI: выполните openclaw models auth login --provider xai --device-code; скопируйте URL+code в локальный браузер, не настраивайте localhost-колбэк и ssh -R 56121: .
doctor: запустите openclaw doctor — пространство имён xAI, путь token, отсутствие дублирующих alias Codex/OpenAI; после апгрейда с 5.5 сверьтесь сv2026.5.6.
Модель Grok: в openclaw.json укажите xAI Grok ( xai/grok-* по выводу openclaw models list ); при нескольких provider настройте fallback помультимодельной маршрутизацией.
Restart Gateway: openclaw gateway restart , проверьте логи launchd — новый token загружен процессом Gateway, а не только интерактивной сессией.
Smoke и архив: короткое сообщение из консоли или канала; сохраните строку лога provider=xai, model=grok в change ticket; при 401 сначала пользователь и версия, затем alias модели.
openclaw --version openclaw doctor # Новый узел: демон + xAI device-code openclaw onboard --install-daemon --auth-choice xai-device-code # Существующий Gateway: только xAI OAuth openclaw models auth login --provider xai --device-code openclaw models list openclaw doctor openclaw gateway restart # Smoke (пример; id модели — по models list) openclaw agent --message "Ответь OK через Grok" --model xai/grok
Последовательность device-code: CLI запрашивает device_code → терминал печатает «откройте URL + введите code» → вы авторизуетесь в любом браузере → CLI на удалённом Mac опрашивает token-эндпоинт до успеха или таймаута → token попадает в хранилище OpenClaw. Машина Gateway не открывает 127.0.0.1:56121 — поэтому на арендованном Mac device-code должен быть путём по умолчанию для Grok.
Если Grok отвечает, но задачи молчат, ветвитесь поразбору «нет ответа» (heartbeat, thinking, inbound); 401 OAuth и «медленная модель» ищите разными ключевыми словами в логах.
| Пункт | Доказательство SSH | Доказательство VNC (желательно) | Критерий прохождения |
|---|---|---|---|
| Версия и doctor | --version、doctor | Опционально: About | ≥ v2026.5.20, нет алертов xAI/OAuth |
| device-code | URL+code, успешный polling | Терминал того же пользователя | Файл token xAI в каталоге credentials |
| Загрузка Gateway | gateway restart после restart | Консоль онлайн, список моделей | Первый Grok после restart ≠ 401 |
| Маршрут модели | models list, diff конфига | Выбран alias grok | Запрос попадает в xai/grok-* |
| Контекст пользователя | whoami, launchctl | Пользователь рабочего стола = SSH | Согласовано с чек-листом launchd |
На арендованном Mac узлы класса VNCMac позволяют пройти device-code по SSH, а консоль Gateway, сверку launchd и (опционально) панель 18789 закрыть в одной VNC-сессии — сценарий «OAuth прошёл, Gateway не видит token» сжимается до двадцатиминутной аудируемой приёмки. Команды на Windows могут зафиксировать шаблон: «SSH onboard/login + VNC-консоль + локальный браузер xAI».
CLI, Gateway и первый диалог.
Читать →Границы headless и VNC.
Читать →Тот же пользователь и стабильность.
Читать →OAuth Codex — отдельно от xAI.
Читать →Primary, fallback и alias Grok.
Читать →device-code печатает URL xAI и код; CLI на удалённом Mac опрашивает token, браузер — на вашем устройстве. Gateway не слушает 127.0.0.1:56121. Колбэк-OAuth требует браузер и listener на одной машине — не подходит для «Gateway в облаке, браузер на ноутбуке».
Да для авторизации: запустите login в SSH, завершите flow в локальном браузере. Для консоли Gateway, пользователя launchd и связки ключей всё же откройте VNC под тем же macOS-пользователем.
Новый арендованный узел: openclaw onboard --install-daemon --auth-choice xai-device-code Уже работающий Gateway: openclaw models auth login --provider xai --device-code, затем openclaw gateway restart。
openclaw doctor → одна версия CLI/Gateway и restart → пользователь token = launchd → id модели xai/grok, не неавторизованный fallback. При необходимости —v2026.5.6 на предмет alias.
xAI device-code OAuth в OpenClaw v2026.5.20 переводит вход Grok по подписке из «магии localhost-колбэка» в воспроизводимую удалённую эксплуатацию: onboard или models auth login по SSH, авторизация в локальном браузере, polling и запись token на Gateway — без борьбы с 127.0.0.1:56121. Стабильность держится на одной версии и одном пользователе CLI/Gateway, doctor, маршрутизации Grok и smoke после restart; VNC выравнивает консоль и launchd. На арендованном Apple Silicon размещение Gateway и консоли 18789 в одном VNC-рабочем столе часто сжимает «OAuth прошёл, Gateway 401» до двадцати минут доказуемой приёмки.
Для сценария «SSH device-code + VNC-консоль» из раздела 5 используйте VNCMac: купить Mac в облаке, подключение — центр помощи (SSH-VNC).