Сопутствующее приложение для macOS
Удаленное управление
Эта схема позволяет приложению macOS выступать в качестве полноценного пульта дистанционного управления для шлюза OpenClaw, работающего на другом хосте (десктоп/сервер). Это функция приложения Удаленный доступ по SSH (удаленный запуск). Все функции — проверка состояния, переадресация Voice Wake и Web Chat — используют одну и ту же конфигурацию удаленного SSH из раздела Настройки → Основные.
Режимы работы
- Локальный (этот Mac): Все работает н а ноутбуке. SSH не используется.
- Удаленный по SSH (по умолчанию): Команды OpenClaw выполняются на удаленном хосте. Приложение mac открывает SSH-соединение с параметром
-o BatchMode, вашим выбранным идентификатором/ключом и пробросом локального порта. - Прямой удаленный доступ (ws/wss): Без SSH-туннеля. Приложение mac подключается к URL шлюза напрямую (например, через Tailscale Serve или публичный HTTPS обратный прокси).
Транспорты для удаленного доступа
Удаленный режим поддерживает два транспорта:
- SSH туннель (по умолчанию): Использует
ssh -N -L ...для проброса порта шлюза на localhost. Шлюз будет видеть IP узла как127.0.0.1, потому что туннель является loopback. - Прямой (ws/wss): Подключается напрямую к URL шлюза. Шлюз видит реальный IP клиента.
Предварительные требования на удаленном хосте
- Установите Node + pnpm и соберите/установите CLI OpenClaw (
pnpm install && pnpm build && pnpm link --global). - Убедитесь, что
openclawнаходится в PATH для неинтерактивных оболочек (при необходимости создайте символьную ссылку в/usr/local/binили/opt/homebrew/bin). - Откройте доступ по SSH с аутентификацией по ключу. Мы рекомендуем использовать IP-адреса Tailscale для стабильной доступности вне локальной сети.
Настройка приложения macOS
- Откройте Настройки → Основные.
- В разделе Запуск OpenClaw выберите Удаленный по SSH и укажите:
- Транспорт: SSH туннель или Прямой (ws/wss).
- Целевой SSH:
пользователь@хост(необязательно:порт).- Если шлюз находится в той же локальной сети и анонсируется через Bonjour, выберите его из обнаруженного списка для автоматического заполнения этого поля.
- URL шлюза (только для прямого режима):
wss://gateway.example.ts.net(илиws://...для локальной сети/LAN). - Файл идентификации (расширенная настройка): путь к вашему ключу.
- Корень проекта (расширенная настройка): путь к удаленному репозиторию, используемый для выполнения команд.
- Путь к CLI (расширенная настройка): необязательный путь к исполняемому файлу/бинарнику
openclaw(заполняется автоматически при анонсировании).
- Нажмите Проверить удаленный доступ. Успех означает, что команда
openclaw status --jsonна удаленном хосте выполняется корректно. Сбои обычно означают проблемы с PATH/CLI; код выхода 127 означает, что CLI не найден удаленно. - Проверки состояния и Web Chat теперь будут автоматически работать через этот SSH-туннель.
Web Chat
- SSH туннель: Web Chat подключается к шлюзу через проброшенный порт управления WebSocket (по умолчанию 18789).
- Прямой (ws/wss): Web Chat подключается напрямую к настроенному URL шлюза.
- Отдельный HTTP-сервер для WebChat больше не используется.
Разрешения
- Удаленному хосту требуются те же одобрения TCC, что и локальному (Автоматизация, Доступность, Запись экрана, Микрофон, Распознавание речи, Уведомления). Запустите первоначальную настройку на этой машине, чтобы предоставить их один раз.
- Узлы сообщают о своем состоянии разрешений через
node.list/node.describe, чтобы агенты знали, что доступно.
Примечания по безопасности
- Предпочитайте привязку к loopback-интерфейсу на удаленном хосте и подключайтесь через SSH или Tailscale.
- SSH-туннелирование использует строгую проверку ключа хоста; сначала доверьте ключу хоста, чтобы он был добавлен в
~/.ssh/known_hosts. - Если вы привязываете Шлюз к интерфейсу, отличному от loopback, требуйте аутентификацию по токену/паролю.
- См. Безопасность и Tailscale.
Процесс входа в WhatsApp (удаленный)
- Запустите
openclaw channels login --verboseна удаленном хосте. Отсканируйте QR-код с помощью WhatsApp на вашем телефоне. - Повторно запустите вход на этом хосте, если срок действия аутентификации истек. Проверка состояния покажет проблемы со связью.