ИИ / Автоматизация 13 апреля 2026

OpenClaw на облачном Mac mini: разрешения TCC macOS для специальных возможностей, записи экрана и автоматизации (2026)

Инженерная команда ProxyMac 13 апреля 2026 ~16 мин чтения

Агенты в духе OpenClaw на арендованном Mac mini M4 в регионах HK, JP, KR, SG или US ломаются скучно: демон поднимается, логи выглядят здоровыми, но нет фокуса окон, нет пикселей, нет нажатий клавиш до цели автоматизации. В девяти случаях из десяти виноват Transparency, Consent, and Control (TCC) — macOS не подключает специальные возможности или запись экрана, пока человек не подтвердит это в системных настройках. Это руководство 2026 даёт матрицу разрешений в пяти колонках, семишаговую последовательность и конкретные пути к логам, чтобы один раз закончить настройку, затем опереться на расписание LaunchAgent и гигиену секретов через связку ключей без присмотра за ноутбуком.

Почему TCC на облачном Mac громче, чем на столе дома

На личном Mac вы машинально жмёте на запросы. На ProxyMac часто начинают с SSH, где модалки не появляются. Хуже: кто-то копирует OpenClaw.app в ~/Downloads или папку синхронизации Dropbox — macOS считает это другим путём bundle и тихо снимает старые разрешения. Лечение процедурное: /Applications, одна интерактивная GUI-сессия, затем автоматизация.

  • Стабильность bundle: перетащите установку в /Applications, прежде чем plist ссылается на бинарник.
  • Совпадение пользователя: UID, который одобрил TCC, должен совпадать с UID, под которым идут задания launchd — без схемы «поставил админом, гоняю от staff».
  • Удалённость: запросы записи экрана рисуются на физической консоли; по VNC они обычно тоже видны, но задержка помогает пропустить оверлей в углу — см. раздел про VNC ниже.

Матрица разрешений (что ломается, если каждый шлюз закрыт)

Пролистайте таблицу при онбординге, прежде чем винить задержку модели или квоты API.

Шлюз Затронутая возможность OpenClaw Симптом для пользователя Первый шаг исправления Заметки
Специальные возможности Клики по меню, ввод в нативные Cocoa-контролы В логах «AXUIElementCreateApplication failed» Выключить/включить приложение в списке специальных возможностей после обновления Также режет многие мосты AppleScript
Запись экрана Пиксельные инструменты, захват canvas браузера Чёрные кадры или нулевые bitmap-дескрипторы Снова открыть панель конфиденциальности; macOS 15 может потребовать повторного согласия после мелких обновлений Нельзя выдать в чистом headless
Автоматизация (Apple Events) Скриптинг Safari/Chrome там, где поддерживается «Not authorized to send Apple events» Одобрить по целевому приложению в списке автоматизации Сочетайте с профилями браузера с минимальными правами
Файлы и папки (Загрузки/Рабочий стол) Чтение деревьев проекта, запись артефактов ENOENT, хотя путь есть в Finder Явно выдать папки; избегайте полного доступа к диску, если политика не требует Репозитории под ~/Developer сужают охват
Микрофон / камера Голосовой пробуждатель, боты встреч Мгновенное системное предупреждение или пустые устройства захвата Один раз проверить через QuickTime, чтобы «прострелять» запросы Часто пропускают для чисто текстовых агентов — всё равно зафиксируйте «не используется»

Семь шагов выдачи прав (не меняйте порядок)

  1. Зарезервируйте GUI-окно: подключитесь через Screen Sharing или физический KVM, чтобы видеть запросы вверху справа.
  2. Установите в /Applications и удалите лишние копии, чтобы не дублировать bundle ID в списках конфиденциальности.
  3. Один раз запустите OpenClaw интерактивно из Finder — не через sudo open — чтобы процесс-запросчик совпадал с будущими LaunchAgents.
  4. Пройдите разделы «Конфиденциальность и безопасность» в порядке: Специальные возможности → Запись экрана → Автоматизация → Файлы (по необходимости) → Микрофон/Камера.
  5. Намеренно вызовите падающий инструмент (например безобидный скриншот), чтобы ОС добавила строку приложения, если она не появилась сама.
  6. Один раз перезагрузитесь; кеши TCC упрямые, перезапуск отделяет «кешированный отказ» от реальной политики.
  7. Только сейчас положите LaunchAgent из руководства по безнадзорным расписаниям и проверьте логи в ~/Library/Logs или по выбранному пути.
Никогда не храните состояние в iCloud Drive: синхронизируемые папки портят SQLite-состояние агента и путают проверки подписи. Держите данные на локальном томе по пути из справки.

LaunchAgents, loginwindow и полуправда про headless

Агенты под launchd наследуют решения TCC того же пользователя после интерактивного одобрения. Они не наследуют разрешения, полученные под root при ошибочной установке через sudo — отсюда расхождение «в Terminal работает, в plist нет». Согласуйте ключи UserName (если есть) с учёткой, которая нажала «Разрешить».

Связка: когда разрешения стабильны, крутите секреты по шаблонам связки ключей, чтобы безнадзорные демоны никогда не читали API-ключи в открытом виде из world-readable plist-словарей EnvironmentVariables.

Удалённый VNC: сделать запросы видимыми без перелёта в ЦОД

Клиенты ProxyMac обычно попадают на mini по шифрованному Screen Sharing. Этого достаточно для TCC если временно отключить сжатие (чёткий текст для крошечных значков), никто не закрывает окно конфиденциальности посреди сессии и вы избегаете цепочек «удалёнка в удалёнку», которые сжимают хром UI ниже порога удобства. Следуйте справочнику по VNC для битрейта; сочетайте с SSH и VNC, чтобы инженеры знали, когда уходить в чисто CLI во время локдаунов.

Три конкретные цифры и куда смотреть дальше

  • Семь шагов plist выше взаимно однозначны с HowTo JSON-LD на этой странице — используйте их как критерии приёмки во внутренней wiki.
  • Три семейства логов после каждого изменения разрешений: собственный лог агента, log stream --predicate 'subsystem == "com.apple.TCC"' (отфильтруйте на своё окно теста) и фрагменты /var/log/system.log, которые уже забирает security-команда.
  • Пять регионов значит, онбординг иногда повторяется на каждом железном хосте — скриптуйте чек-лист, но не скриптуйте клики по «Разрешить»: это хрупко и против дизайна Apple.

Частые вопросы

Можно ли выдать запись экрана только по SSH? Нет — для ряда запросов macOS требует графическую сессию. Один раз VNC, завершите одобрения, вернитесь к SSH.

Почему разрешения отвалились после клонирования диска? TCC привязывает одобрения к bundle ID и подписи. Клоны или разъехавшиеся сборки требуют повторного согласия.

Наследует ли LaunchAgent тот же TCC? Да, если общий пользовательский bootstrap; нет, если UID разные или задачи идут от root без GUI.

Почему Mac mini на ProxyMac — правильное железо для OpenClaw после стабилизации TCC

Агенты ровно настолько надёжны, насколько надёжна аппаратная изоляция под ними. Выделенный Mac mini на Apple Silicon M4 даёт нативные arm64-браузеры, предсказуемый однолокальный CPU под параллельные вызовы инструментов и тот же стек macOS, который ожидают фреймворки Apple — когда запись экрана включена, вы захватываете реальные Metal-поверхности, а не эмуляционные x86-странности. Хостинг в HK / JP / KR / SG / US сближает автоматизацию с API, которые бизнес уже вызывает, а модель доступа SSH/VNC у ProxyMac совпадает с тем, как платформенные команды отлаживают TCC: shell для логов, GUI для согласия. Аренда вместо покупки превращает capex в ограниченные по времени эксперименты — удобно для пилотов агентов в 2026, которые могут меняться каждый месяц. После настройки откройте справку и руководство по VNC, затем выберите регион на странице тарифов.

Завершите TCC один раз — автоматизируйте везде

Справка, гайд по VNC, затем регион Mac mini — см. также тарифы