Удаленный OpenClaw (macOS ⇄ удаленный хост)
Этот поток позволяет приложению macOS выступать в качестве полного пульта дистанционного управления для шлюза OpenClaw, работающего на другом хосте (настольный компьютер/сервер). Это функция Remote over 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 для стабильной доступности вне LAN.
Настройка приложения macOS
- Откройте Настройки → Основные.
- В разделе OpenClaw runs выберите Remote over SSH и установите:
- Transport: SSH tunnel или Direct (ws/wss).
- SSH target: user@host (опционально :port).
- Если шлюз находится в той же LAN и объявляет Bonjour, выберите его из обнаруженного списка для автозаполнения этого поля.
- Gateway URL (только Direct): wss://gateway.example.ts.net (или ws://... для локального/LAN).
- Identity file (расширенное): путь к вашему ключу.
- Project root (расширенное): путь к удаленному checkout, используемый для команд.
- CLI path (расширенное): опциональный путь к исполняемой точке входа/бинарнику openclaw (автозаполняется при объявлении).
- Нажмите Test remote. Успех указывает, что удаленный 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, что и локальный (Automation, Accessibility, Screen Recording, Microphone, Speech Recognition, Notifications). Запустите onboarding на этой машине, чтобы предоставить их один раз.
- Узлы объявляют свое состояние разрешений через node.list / node.describe, чтобы агенты знали, что доступно.
Примечания по безопасности
- Предпочитайте привязки loopback на удаленном хосте и подключайтесь через SSH или Tailscale.
- Если вы привязываете шлюз к интерфейсу, отличному от loopback, требуйте аутентификацию по токену/паролю.
- См. Безопасность и Tailscale.
Поток входа WhatsApp (удаленный)
- Запустите openclaw channels login --verbose на удаленном хосте. Отсканируйте QR-код с помощью WhatsApp на вашем телефоне.
- Повторно запустите вход на этом хосте, если срок действия аутентификации истек. Проверка работоспособности выявит проблемы со связью.
Устранение неполадок
- exit 127 / not found: openclaw не находится в PATH для не-login оболочек. Добавьте его в /etc/paths, ваш shell rc или создайте символическую ссылку в /usr/local/bin//opt/homebrew/bin.
- Health probe failed: проверьте доступность SSH, PATH и что Baileys вошел в систему (openclaw status --json).
- Web Chat stuck: подтвердите, что шлюз работает на удаленном хосте, и переадресованный порт соответствует порту WS шлюза; пользовательский интерфейс требует работающего WS-соединения.
- Node IP shows 127.0.0.1: ожидается с SSH-туннелем. Переключите Transport на Direct (ws/wss), если вы хотите, чтобы шлюз видел реальный IP клиента.
- Voice Wake: триггерные фразы автоматически переадресуются в удаленном режиме; отдельный пересылатель не нужен.
Звуки уведомлений
Выбирайте звуки для каждого уведомления из скриптов с помощью openclaw и node.invoke, например:
openclaw nodes notify --node <id> --title "Ping" --body "Remote gateway ready" --sound Glass
Больше нет глобального переключателя "звук по умолчанию" в приложении; вызывающие стороны выбирают звук (или ничего) для каждого запроса.