Сниппет: материал описывает только инженерные факты на нативном macOS до контейнера: графический онбординг через официальное приложение или включение CLI openclaw в ваш стандарт пакетов. Критично положить OPENCLAW_STATE_DIR туда, где путь не попадает под синхронизацию каталогов «Рабочий стол и документы» в iCloud и прочие облачные клиенты. TCC (универсальный доступ, автоматизация / AppleEvents, запись экрана, при голосовых сценариях — микрофон) — часть релизных ворот. Нужно явно снять конфликт LaunchAgent (launchd) и ручного openclaw gateway start («два Gateway»), затем зафиксировать артефакты через openclaw doctor и openclaw gateway status. Статья не заменяет общий гайд установки на три ОС и не описывает сеть Docker — это зона продуктивного Docker Gateway runbook. После прочтения можно объяснить безопасности и эксплуатации разницу локального и удалённого Gateway и почему выделенные удалённые Mac в Сингапуре, Токио, Сеуле, Гонконге или Северной Америке часто лучше как круглосуточные точки входа. Проверки после установки и WSL2: doctor и диагностика Gateway; география аренды: мультирегиональный гид по стоимости узлов Mac mini.
OPENCLAW_STATE_DIR оказался под этим деревом, появляются гонки вроде «pairing то есть, то нет, после перезагрузки токены расходятся» — поведение, которое в Linux-контейнере почти не встречается.openclaw из терминала и helper из официального бандла для системы — разные лица; после смены пути или апгрейда старые разрешения не наследуются. Наверху это часто выглядит как «навыки без звука зависли», а не как HTTP 403.launchd и интерактивный запуск дают два родительских процесса. Оба пишут один state или слушают один порт — типичная картина «health то зелёный, то красный», когда на самом деле процессов больше одного.Установка на три ОС, каналы версий и кросс-платформенный выкат остаются в гайде Windows / macOS / Linux; проверка после установки, соседство WSL2 и поток doctor — в статье про doctor и Gateway. Если целевой образ — контейнеры и оркестрация, основной документ — Docker production runbook; этот текст закрывает щели на голом macOS. Узлы и сроки аренды читайте параллельно с мультирегиональным гидом по стоимости, чтобы меняли не только софт, но и географию.
На ревью строго разделяйте ошибку конфигурации и возможность платформы: первое должно сходиться к одной строке по таблице симптомов ниже за 15 минут; второе оправдывает запрос фичи или апгрейд. Прежде чем писать «не воспроизводится»: state на локальном APFS? Есть актуальные скриншоты TCC под эту версию? Label LaunchAgent уникален? Эти три вопроса отсекают ложную «магию».
OPENCLAW_STATE_DIR: как номер актива, а не «любая домашняя папка»Задайте переменную в утверждённом shell-профиле или в словаре EnvironmentVariables LaunchAgent и занесите в CMDB «путь → бизнес-система → владелец». Примеры: /usr/local/var/openclaw, /opt/openclaw/state или несинхронизированное /Users/Shared/…; важно, чтобы точка монтирования из df -h не перехватывалась облачным агентом синхронизации.
Если принципиально пользовательское дерево, избегайте Mobile Documents, облачных заглушек и перенаправлений «Документы» через MDM. Сценарий «у коллеги A работает, у B нет» начинается не с переустановки, а со сверки OPENCLAW_STATE_DIR, узла устройства и активности inode.
Несколько учётных записей на одной тестовой машине не должны неформально делить один каталог состояния: блокировки SQLite, жизненный цикл .sock и ротация токенов там ломаются. Либо отдельные каталоги и сервисные личности, либо настоящий кластер с архитектурным решением.
В каждой строке одна главная зона ответственности (клиент / платформа macOS / сервис Gateway / внешняя сеть), чтобы пять человек одновременно не правили одну plist по SSH.
| Симптом | Корень | Шаг |
|---|---|---|
| Сопряжение отваливается время от времени, после перезагрузки иногда восстанавливается | State под iCloud/облаком или два родителя пишут один каталог | Перенести на локальный APFS; явно выбрать launchd или только ручной запуск |
| Зависают AppleScript / управление окнами | Автоматизация или универсальный доступ не выданы реальному бинарнику | Системные настройки → Конфиденциальность и безопасность построчно; после апгрейда повторить выдачу |
| Снимок/захват без вывода | Нет пункта «Запись экрана» | Разрешить нужный бинарник; перезапустить родительский процесс Gateway для согласованного TCC |
| Порт занят или WebSocket-рукопожатие нестабильно | Два Gateway или старый процесс не завершился | launchctl bootout для проверки plist или закрыть интерактивную сессию; одна схема оркестрации |
| Днём нормально, ночью задачи мертвы | Сон ноутбука / энергосберегающая сеть | Перенести авторитетный Gateway на постоянно включённый удалённый Mac; локально оставить лёгкий CLI-клиент |
Наслоение планировщиков — типичная человеческая ошибка: если в проде уже есть LaunchAgent, «быстро поднять шлюз руками» должно быть под запретом без документированного bootout или kickstart -k. Иначе дежурный под давлением запускает второй процесс и получает двойные слушатели, которые часто видны только в дампе трафика.
Универсальный доступ закрывает сценарии «управлять другими приложениями как ассистивный пользователь»; автоматизация (AppleEvents) — может ли скрипт посылать события целевым приложениям; запись экрана открывает пиксельный канал. Без любого из трёх навыки часто «вечно ждут», а не бросают явную ошибку. Для голосовых сценариев микрофон включайте явно — не переносите допущения из Linux-контейнера.
После крупного апгрейда macOS или OpenClaw закладывайте 10 минут обхода приватности: ответственный, чек-лист, скриншоты в заявке на изменение. Устные «точно включил» в распределённой смене не работают.
В регулируемых отраслях те же скриншоты помогают внутреннему аудиту принципа минимальных привилегий: какой бинарник, когда и с каким тикетом — не только декларации политики.
openclaw gateway start: только один «канон»LaunchAgent нужен без присмотра: после перезагрузки, падения watchdog, кратких сетевых провалов конфигурация возвращается к целевому состоянию. Логично на арендованных Mac с сетевым питанием рядом с CI-runner или сайдкаром модели. Ручной запуск — стол разработчика: человек смотрит в терминал и понимает, что это отладка, а не прод.
Для отладки начинайте с launchctl print gui/$(id -u), чтобы увидеть метки и последние коды выхода. Если нужен ручной старт, аккуратно выгрузите или закомментируйте LaunchAgent, чтобы логи соответствовали PID перед глазами.
В командной документации держите два блока команд «режим разработки» и «режим машзала» и спрашивайте в шаблоне PR, в каком режиме проходила проверка — иначе возвращается ловушка «локально зелёно, в проде красно».
Локальный Gateway привязывает управление к машине человека: быстрые итерации, короткие пути диалогов, но наследует сон, VPN, переключение хот-спота и конференц-ПО, захватывающее аудио. Удалённый закрепляет авторитетные сессии и долгие соединения на фиксированном хосте и выходе — уместен как организационный вход или плоскость исполнения 7×24.
CLI может оставаться тем же; меняется какой диск держит основной state, какой интерфейс несёт маршрут по умолчанию и какая стойка даёт минимальную RTT к ASC / кластеру моделей. Зафиксируйте карту в каталоге сервисов, чтобы security review не смешивал «песочницу на ноутбуке» и «авторитет в стойке Сингапура».
Если оба режима живут параллельно, используйте разные префиксы имён хостов в мониторинге — иначе две серии в Grafana сольются в один ложный алерт «латентность gateway».
OPENCLAW_STATE_DIR, логи, опционально кэш; владелец — пользователь исполнения, без случайного смешения с root.openclaw doctor и openclaw gateway status приложить к изменению до переключения прод-трафика.Для перекрёстной проверки симптомов на разных ОС см. статью doctor / Gateway; для слоёв образов и single-source токенов — прежде всего Docker production runbook, чтобы не записывать проблему cgroup как TCC.
#!/usr/bin/env bash
set -euo pipefail
# В основном read-only зонд — пути подставьте по корпоративному стандарту
export OPENCLAW_STATE_DIR="${OPENCLAW_STATE_DIR:-$HOME/Library/Application Support/OpenClawState-local}"
umask 077
mkdir -p "$OPENCLAW_STATE_DIR"
echo "OPENCLAW_STATE_DIR=$OPENCLAW_STATE_DIR"
command -v openclaw >/dev/null && openclaw doctor || echo "doctor: нет CLI"
openclaw gateway status 2>/dev/null || echo "gateway: нет ответа (норма если не запущен)"
launchctl print "gui/$(id -u)" 2>/dev/null | grep -i openclaw || echo "launchd: метка openclaw не найдена (возможен чисто ручной режим)"
gateway status: при регрессии сначала порядок зависимостей plist и заблокированные диалоги TCC, а не рантайм языка.df, что OPENCLAW_STATE_DIR на локальном APFS: FUSE- или sync-заглушка = несоответствие.Без сырого вывода команд не пишите строку RCA — иначе следующая смена услышит ту же историю заново.
Ноутбуки заточены под мобильность: крышка закрыта — сон, энергопрофили режут пик, корпоративные VPN перенаправляют realtime-трафик. Привязка авторитета к этому означает привязку SLA автоматизации к личному расписанию и Wi‑Fi переговорок.
MACCOME облачный Mac mini (M4 / M4 Pro) даёт выделенный Apple Silicon, фиксированное питание и предсказуемую топологию диска: LaunchAgent, долгоживущие токены и пробы могут сидеть на одной машине, пока ноутбуки остаются лёгкими клиентами. Сверяйте RTT и длительность аренды с гидом по латентности и стоимости узлов, чтобы избежать «шлюз следует за человеком».
TCC, синхронизируемые пути и launchd остаются в этом runbook; cgroup, digest образа и bridge-сеть — в документе Compose. Если инцидент задевает оба мира, разделите хронологию на две параллельные RCA — иначе останется только перекладывание ответственности.
Перед закрытием окна изменений снова выполните openclaw doctor и приложите вывод с номером версии к базе знаний; если авторитет должен быть удалённым, явно укажите, что проверка не проходила в режиме авторитетного ноутбука — иначе коллеги скопируют неверную конфигурацию.
FAQ
В продакшене всё на Docker Gateway — зачем разбираться в LaunchAgent?
Потому что первое сопряжение и старт часто происходят на голом macOS или на ноутбуке оператора до фиксации Compose. Без ясной границы между launchd и ручным запуском при инциденте легко поднять второй Gateway и занять порты.
Где сравнить тарифы и получить поддержку для постоянного Mac-хоста Gateway?
Публичные тарифы на странице цены аренды Mac mini; вопросы доступа и топологии — через центр помощи по облачному Mac mini.