Сопутствующее приложение для 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 на вашем телефоне. - Повторно запустите вход на этом хосте, если срок действия аутентификации истек. Проверка состояния покажет проблемы со связью.
Устранение неполадок
- Код выхода 127 / не найдено:
openclawотсутствует в PATH для нелогиновых оболочек. Добавьте его в/etc/paths, ваш shell rc или создайте символьную ссылку в/usr/local/bin//opt/homebrew/bin. - Сбой проверки состояния: проверьте доступность по SSH, PATH и то, что Baileys выполнил вход (
openclaw status --json). - Web Chat завис: убедитесь, что шлюз работает на удаленном хосте и проброшенный порт соответствует WS-порту шлюза; для работы интерфейса требуется стабильное WS-соединение.
- IP узла показывает 127.0.0.1: ожидаемо при использовании SSH-туннеля. Переключите Транспорт на Прямой (ws/wss), если хотите, чтобы шлюз видел реальный IP клиента.
- Voice Wake: фразы-триггеры автоматически пересылаются в удаленном режиме; отдельный переадресатор не требуется.
Звуки уведомлений
Выбирайте звуки для каждого уведомления в скриптах с помощью openclaw и node.invoke, например:
openclaw nodes notify --node <id> --title "Ping" --body "Remote gateway ready" --sound Glass
Глобальной опции «звук по умолчанию» в приложении больше нет; вызывающая сторона выбирает звук (или его отсутствие) для каждого запроса.