Сопутствующее приложение для 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 клиента.

Предварительные требования на удаленном хосте

  1. Установите Node + pnpm и соберите/установите CLI OpenClaw (pnpm install && pnpm build && pnpm link --global).
  2. Убедитесь, что openclaw находится в PATH для неинтерактивных оболочек (при необходимости создайте символьную ссылку в /usr/local/bin или /opt/homebrew/bin).
  3. Откройте доступ по SSH с аутентификацией по ключу. Мы рекомендуем использовать IP-адреса Tailscale для стабильной доступности вне локальной сети.

Настройка приложения macOS

  1. Откройте Настройки → Основные.
  2. В разделе Запуск OpenClaw выберите Удаленный по SSH и укажите:
    • Транспорт: SSH туннель или Прямой (ws/wss).
    • Целевой SSH: пользователь@хост (необязательно :порт).
      • Если шлюз находится в той же локальной сети и анонсируется через Bonjour, выберите его из обнаруженного списка для автоматического заполнения этого поля.
    • URL шлюза (только для прямого режима): wss://gateway.example.ts.net (или ws://... для локальной сети/LAN).
    • Файл идентификации (расширенная настройка): путь к вашему ключу.
    • Корень проекта (расширенная настройка): путь к удаленному репозиторию, используемый для выполнения команд.
    • Путь к CLI (расширенная настройка): необязательный путь к исполняемому файлу/бинарнику openclaw (заполняется автоматически при анонсировании).
  3. Нажмите Проверить удаленный доступ. Успех означает, что команда openclaw status --json на удаленном хосте выполняется корректно. Сбои обычно означают проблемы с PATH/CLI; код выхода 127 означает, что CLI не найден удаленно.
  4. Проверки состояния и 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

Глобальной опции «звук по умолчанию» в приложении больше нет; вызывающая сторона выбирает звук (или его отсутствие) для каждого запроса.

Разрешения macOSПодписание macOS