Пути, порты, один пользователь, runbook
OpenClaw на арендованном Mac ломается не из‑за «плохой сети», а из‑за смешения ролей. openclaw CLI — это автоматизация, коды выхода и повторяемые команды. Gateway — локальный WebSocket, панели инструментов и браузерные сценарии. macOS-компаньон — тонкий слой в строке меню: переподключение, буфер обмена, короткие статусы. Здесь мы разложим, как команде с Windows-ноутбуками выбрать между облачным Mac только по SSH и арендой с VNC, куда класть plist и конфиги, как ловить конфликты портов и какой runbook приложить к тикету. Держите рядом LaunchAgent·Gateway·плагины 5.3-beta и OAuth·fetch·таймауты 5.6, чтобы границы версий не расплылись.
CLI остаётся источником истины для CI: версия, doctor, список плагинов, хвосты структурированных логов. Gateway добавляет то, что плохо укладывается в pipe: локальный bind, health-канал, отказ в UI, который ревьюеру проще снять на видео десять секунд. Компаньон на macOS не должен превращаться в третий конфигуратор: только быстрые действия и индикаторы. Если эти границы не записать, ночной дежурный будет каждый раз заново рисовать архитектуру в чате.
Windows как ежедневный пульт управления — нормальная схема, но доказательства подписи и Keychain должны жить в графической сессии macOS под тем же пользователем, что и LaunchAgent. Иначе вы получите «на SSH всё зелёное, в Finder другой дом». Для клиента VNC и раскладки начните с руководства Windows·VNC·Keychain, чтобы не спорить о DPI и IME на ровном месте.
CLI: semver, doctor, плагины, классификация ошибок по кодам.
Gateway: локальный порт, WSS, сообщения отказа в панели.
Компаньон: переподключение, статус, короткие уведомления без бизнес-логики.
Инвариант: пользователь GUI совпадает с владельцем LaunchAgent.
Windows: двойной брандмауэр, WSL, корпоративный SSL-инспектор — отдельные строки runbook.
Прокси: при смешении сетевых и локальных отказов откройте исходящий прокси и Gateway в отдельном вложении.
Провайдеры любят обещать «достаточно SSH», но приёмка OpenClaw часто требует визуального подтверждения: кэш UI, drag-and-drop, системные диалоги. SSH-хост отлично подходит для ночных билдов и deny-by-default файловых политик. VNC-аренда нужна, когда без экрана нельзя честно закрыть тикет. Выбирайте по классу доказательств, а не по цене в час.
| Сценарий | Только SSH | VNC-аренда | Заметка |
|---|---|---|---|
| Ночные сборки, cron | Да | Не обязательно | Логи и exit-коды |
| Сообщение отказа Gateway на экране | Риск пропуска | Да | Тот же пользователь |
| Цепочка Keychain | Хрупко | Да | Реальный клик |
| Туннель и сжатие | Скрипты | Настройка viewer | SSH-туннель·сжатие |
| Fastlane Match, SSH+VNC | Ядро CI | GUI-проверка | Матрица SSH·VNC |
Совпали порты, но не совпали пользователи — открытый порт не заменяет доказательство.
На аренде часто встречаются разделённые учётные записи администратора и арендатора или одинаковые имена с разными UID. Зафиксируйте, кладёте ли бинарь в Homebrew-префикс, а конфиги в ~/.config/openclaw, или следуете префиксу провайдера. LaunchAgent живёт в ~/Library/LaunchAgents, но область bootstrap зависит от того, загружен ли агент в GUI-сессии. «После перезагрузки сломалось» почти всегда про эту границу, а не про «плохой релиз».
Gateway привязан к документированному loopback и порту. Зомби-процесс старого эксперимента или другой локальный сервер займёт bind: в CLI это короткая ошибка, в браузере — вечный спиннер. В runbook добавьте безопасную очистку и ожидаемое дерево процессов. Плагины сверяйте с цепочкой публикации 5.7, чтобы не смешать semver и политики по умолчанию.
Заморозка: openclaw --version, ID аренды, plist и переменные окружения в тикет.
Один пользователь: VNC-логин совпадает с областью launchctl print gui/$(id -u).
Корни: workspace и cwd для SecretRef по аудиту SecretRef.
Порты: 22, 5900+n, порт Gateway — таблица ожиданий и факт.
Компаньон: «подключено» в меню сверяется с коротким HTTP health.
Несколько проектов: HOME и ключи по чеклисту изоляции.
openclaw --version openclaw doctor id -u printenv OPENCLAW_HOME || true lsof -nP -iTCP -sTCP:LISTEN | rg -n ':(22|5900|18789)\b' || true
Имена команд и флаги сверяйте со встроенной справкой установленной версии, а не с устаревшими постами.
| Проверка | SSH | VNC | Критерий |
|---|---|---|---|
| Один пользователь | whoami, uid | Имя в Системных настройках | Строка в строку |
| Health Gateway | curl loopback | Футер версии в UI | Совпадает с CLI |
| Компаньон | — | Скрин меню | Время рядом с JSON health |
| Конфликт портов | lsof | Два одновременных viewer-теста | Два успешных прогона |
| OAuth·fetch | логи doctor | диалог браузера | Отдельно от таймаутов 5.6 |
Таблица рассчитана на оператора, который уже умеет держать рядом терминал и VNC. Новичку сначала пройдите базовое подключение, иначе вы будете одновременно учить оконный менеджер и политику безопасности.
Корпоративный стандарт на Windows создаёт лишние слои: раскладки, буфер обмена, двойные политики брандмауэра. Это не отменяет того, что юридически значимые действия подписи и цепочки доверия должны завершаться на macOS в той же учётной записи, где крутится демон. OpenClaw здесь лишь подсвечивает старую истину: автоматизация на CLI и человеческие сценарии в Gateway разведены не из моды, а из наблюдаемости.
Облако «только SSH» экономит внимание днём и отлично стыкуется с запретом по умолчанию на чтение файлов: allowlist в Git, выкладка по SSH, аудит в логах. Но спор «почему в панели Gateway другой текст ошибки» без VNC затянется. Короткая аренда с VNC дешевле часов разработчиков на переписку. Снимите десять секунд экрана с номером тикета на аудиодорожке — это мелочь, которая спасает от путаницы версий записей.
Клиент VNC на Windows настраивайте по гайду Keychain: низкое разрешение обрезает кнопки диалогов подписи и порождает ложные «не нажимается». Для безопасности клиента и облака держите под рукой статью про клиент и облако, если политика ИБ спрашивает про каналы.
Конфликты портов чаще всего — наследие экспериментов. Другой локальный сервер, старый Gateway, корпоративный агент с локальным прокси — все они конкурируют за один bind. Runbook должен явно говорить, какие процессы можно завершать, а какие трогать нельзя. Если провайдер резервирует диапазон, первая страница runbook — их таблица, а не ваша память.
Порядок работ с LaunchAgent и Gateway повторяйте из материала 5.3-beta: сначала стабильный boot-путь, затем плагины. Обратный порядок смешивает причины в логах и удваивает время отката.
Когда в офисе есть исходящий прокси, не смешивайте сетевые таймауты с локальным отказом bind. Используйте runbook прокси как отдельное вложение к тикету, иначе аналитик потеряет полдня на неверной гипотезе.
SecretRef и корни workspace расходятся — классика ложноотрицательных результатов: файл читается, а снимок секретов на рантайме падает. Свяжите cwd и allowlist в одном тикете с аудитом SecretRef, чтобы ревьюер подписал один раз.
Несколько монорепозиториев на одном узле требуют дисциплины изоляции из чеклиста нескольких проектов: разные HOME, разные ключи, отдельные токены pairing без неформального шаринга в мессенджерах.
Fastlane Match сочетает обязательный SSH и частые визиты в Keychain; матрица в runbook Fastlane помогает пометить, какая строка матрицы относится к вашему изменению.
OAuth и метаданные fetch после 5.6 требуют отдельных логов от файловых отказов: симптомы задержки похожи, корневая причина разная. Корреляционные идентификаторы для параллельных прогонов обязательны.
Если тариф провайдера закрывает только SSH, честно зафиксируйте, что проверки Gateway UI недоступны, и вынесите их на отдельный VNC-узел или на гибрид: CI по SSH, ручной шаг по VNC. Для ИБ добавьте абзац о перемещении артефактов между хостами.
Компаньон macOS расширять опасно: каждая новая «настройка только в приложении» — будущий рассинхрон с CLI. Оставьте переподключение и статус, остальное — в Gateway и документации.
Откат обязан иметь доказательство: plist побайтно как было, таблица портов до изменения, короткая команда проверки. Без этого аудит не примет «мы откатились», услышав только «мы откатились».
Аренда Apple Silicon держит аптайм и базовый образ на стороне провайдера, оставляя вам контроль конфигурации и возможность свести терминал, Gateway и аудит в одной графической сессии. Это часто дешевле внутренней «магической» фермы железа, если честно считать время инцидентов.
Windows остаётся удобным пультом, но не местом, где заканчивается доверие к подписи. Этого правила хватает, чтобы резко сократить ночные звонки. Стандартизуйте viewer и скрипты туннеля в репозитории с тегами версий.
Туннели и сжатие для длинных сессий описаны в глубоком разборе SSH-туннеля; прикладывайте измерения джиттера к тикетам о «плохом VNC», иначе спор уйдёт в субъективные ощущения.
Наконец, эта статья не заменяет гайды про deny-by-default файловые инструменты или pairing: она про транспорт, порты и десктоп-сессию. Держите узкий поисковый интент — так проще сопровождать базу знаний.
Загрузка и плагины.
Читать →Сертификаты и подпись.
Читать →Клиент и диалоги.
Читать →Для пайплайнов часто да, но панели инструментов, браузерные сценарии и локальный health UI остаются на Gateway. Фиксируйте в тикете, какой слой дал сигнал.
Для ночных сборок и логов — да. Для цепочек согласия Keychain и системных диалогов нужна графическая сессия, обычно VNC тем же пользователем.
Освободите bind или смените адрес, обновите корпоративные исключения прокси и таблицу ожидаемых портов в runbook.
Тонкий слой меню: переподключение, буфер, короткий статус. Не переносите туда бизнес-логику, иначе появится третий источник правды.
Разделите CLI, Gateway и компаньон, зафиксируйте пользователя и порты, выберите SSH или VNC по классу доказательств. Тогда runbook перестаёт быть «историей из чата».
Свой Mac всё ещё несёт амортизацию, сон и канал офиса. Арендованный удалённый Apple Silicon переносит аптайм к провайдеру, оставляя вам конфигурацию и одну сессию для терминала, Gateway и аудита.
Чтобы повторить такую приёмку на удалённом Mac, используйте VNCMac: основная кнопка ведёт на страницу покупки Mac в облаке; подключение описано в центре помощи.