Перейти до основного вмісту

Віддалений OpenClaw (macOS ⇄ віддалений хост)

Цей сценарій дає змогу macOS-застосунку працювати як повноцінний засіб віддаленого керування для шлюзу OpenClaw, що працює на іншому хості (настільному ПК/сервері). Це функція застосунку Remote over SSH (віддалений запуск). Усі функції — перевірки стану, переспрямування Voice Wake і Web Chat — повторно використовують ту саму віддалену SSH-конфігурацію з Settings → General.

Режими

  • Local (this Mac): Усе працює на ноутбуці. SSH не використовується.
  • Remote over SSH (default): Команди OpenClaw виконуються на віддаленому хості. Mac-застосунок відкриває SSH-з’єднання з -o BatchMode, вашим вибраним ідентифікатором/ключем і локальним перенаправленням порту.
  • Remote direct (ws/wss): Без SSH-тунелю. Mac-застосунок підключається безпосередньо до URL шлюзу (наприклад, через Tailscale Serve або публічний зворотний HTTPS-проксі).

Віддалені транспорти

Віддалений режим підтримує два транспорти:
  • SSH tunnel (типово): Використовує ssh -N -L ... для перенаправлення порту шлюзу на localhost. Шлюз бачитиме IP вузла як 127.0.0.1, оскільки тунель працює через loopback.
  • Direct (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. Відкрийте Settings → General.
  2. У розділі OpenClaw runs виберіть Remote over SSH і задайте:
    • Transport: SSH tunnel або Direct (ws/wss).
    • SSH target: user@host (необов’язково :port).
      • Якщо шлюз перебуває в тій самій локальній мережі й анонсує себе через Bonjour, виберіть його зі списку виявлених, щоб автоматично заповнити це поле.
    • Gateway URL (лише Direct): wss://gateway.example.ts.net (або ws://... для локальної мережі/LAN).
    • Identity file (додатково): шлях до вашого ключа.
    • Project root (додатково): шлях до віддаленого checkout, який використовується для команд.
    • CLI path (додатково): необов’язковий шлях до виконуваного entrypoint/бінарного файлу openclaw (автоматично заповнюється, якщо анонсовано).
  3. Натисніть Test remote. Успіх означає, що віддалена команда openclaw status --json виконується коректно. Невдачі зазвичай означають проблеми з PATH/CLI; код виходу 127 означає, що CLI не знайдено на віддаленому хості.
  4. Перевірки стану та Web Chat тепер автоматично працюватимуть через цей SSH-тунель.

Web Chat

  • SSH tunnel: Web Chat підключається до шлюзу через переспрямований керувальний порт WebSocket (типово 18789).
  • Direct (ws/wss): Web Chat підключається безпосередньо до налаштованого URL шлюзу.
  • Окремого HTTP-сервера WebChat більше немає.

Дозволи

  • Віддалений хост потребує таких самих дозволів TCC, як і локальний: Automation, Accessibility, Screen Recording, Microphone, Speech Recognition, Notifications. Запустіть онбординг на цій машині, щоб надати їх один раз.
  • Вузли анонсують свій стан дозволів через node.list / node.describe, щоб агенти знали, що доступно.

Примітки щодо безпеки

  • Віддавайте перевагу прив’язці до loopback на віддаленому хості та підключенню через SSH або Tailscale.
  • SSH-тунелювання використовує сувору перевірку ключа хоста; спочатку довіртеся ключу хоста, щоб він з’явився в ~/.ssh/known_hosts.
  • Якщо ви прив’язуєте Gateway до інтерфейсу, відмінного від loopback, вимагайте дійсну автентифікацію Gateway: token, password або reverse proxy з перевіркою ідентичності з gateway.auth.mode: "trusted-proxy".
  • Див. Security і Tailscale.

Потік входу WhatsApp (віддалено)

  • Виконайте openclaw channels login --verbose на віддаленому хості. Проскануйте QR-код за допомогою WhatsApp на телефоні.
  • Повторно виконайте вхід на цьому хості, якщо автентифікація закінчиться. Перевірка стану покаже проблеми зі з’єднанням.

Усунення проблем

  • exit 127 / not found: openclaw недоступний у PATH для оболонок без входу в систему. Додайте його до /etc/paths, конфігурації вашої оболонки або створіть символьне посилання в /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
Глобального перемикача «звук за замовчуванням» у застосунку більше немає; ініціатор вибирає звук (або його відсутність) для кожного запиту окремо.