macOS companion app

Віддалене керування

Цей процес дає змогу застосунку macOS працювати як повноцінний пульт дистанційного керування для Gateway OpenClaw, запущеного на іншому хості (настільному комп’ютері або сервері). Застосунок безпосередньо підключається до довірених URL-адрес Gateway у LAN/Tailnet або керує SSH-тунелем, якщо віддалений Gateway доступний лише через local loopback. Перевірки працездатності, переспрямування Voice Wake та Web Chat використовують ту саму віддалену конфігурацію з Settings -> General.

Режими

  • Локальний (цей Mac): усе працює на ноутбуці; SSH не використовується.
  • Віддалений через SSH (типово): команди OpenClaw виконуються на віддаленому хості. Застосунок відкриває SSH-з’єднання з -o BatchMode, вибраним посвідченням/ключем і локальним перенаправленням порту.
  • Прямий віддалений (ws/wss): без SSH-тунелю; застосунок підключається безпосередньо до URL-адреси Gateway (LAN, Tailscale, Tailscale Serve або публічного зворотного проксі HTTPS).

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

  • SSH-тунель (типово): використовує ssh -N -L ... для перенаправлення порту Gateway на localhost. Gateway бачить IP-адресу Node як 127.0.0.1, оскільки тунель використовує local loopback.
  • Прямий (ws/wss): підключається безпосередньо до URL-адреси Gateway. Gateway бачить справжню IP-адресу клієнта.

Застосунок вимикає мультиплексування SSH-з’єднань і перехід у фоновий режим після автентифікації для власних процесів SSH, щоб мати змогу відстежувати та перезапускати конкретний процес, навіть якщо вибраний псевдонім вмикає ControlMaster або ForkAfterAuthentication.

Перевірка ключа SSH-хоста типово є суворою, оскільки облікові дані Gateway передаються через цей тунель. Щоб дозволити використання власної моделі довіри керованого псевдоніма SSH, задайте --ssh-host-key-policy openssh через openclaw-mac configure-remote або безпосередньо встановіть для gateway.remote.sshHostKeyPolicy значення "openssh". Перед цим перевірте псевдонім і будь-яку відповідну конфігурацію Host * або системну конфігурацію. Зміна цільового SSH-хоста (у застосунку або через configure-remote) скидає політику до strict, якщо ви явно не дозволите її знову для нового цільового хоста.

У режимі SSH-тунелю виявлені імена хостів LAN/tailnet зберігаються як gateway.remote.sshTarget. Застосунок залишає gateway.remote.url налаштованим на локальну кінцеву точку тунелю (наприклад, ws://127.0.0.1:18789), щоб CLI, Web Chat і локальна служба хоста Node використовували той самий транспорт local loopback. Коли виявлення повертає як необроблені IP-адреси Tailnet, так і стабільні імена хостів, застосунок надає перевагу Tailscale MagicDNS або іменам LAN, щоб з’єднання краще зберігалися після зміни адрес. Якщо локальний порт тунелю відрізняється від порту віддаленого Gateway, установіть gateway.remote.remotePort відповідно до порту на віддаленому хості.

У віддаленому режимі автоматизацією браузера керує хост Node CLI, а не Node нативного застосунку macOS. Застосунок за можливості запускає встановлену службу хоста Node; щоб увімкнути керування браузером із цього Mac, установіть і запустіть її за допомогою openclaw node install ... та openclaw node start (або виконайте openclaw node run ... на передньому плані), а потім виберіть цільовим Node із підтримкою браузера.

Передумови на віддаленому хості

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

Налаштування застосунку macOS

Щоб попередньо налаштувати застосунок через SSH без початкового процесу привітання:

bash
openclaw-mac configure-remote \  --ssh-target user@gateway-host \  --local-port 18789 \  --remote-port 18789 \  --token "$OPENCLAW_GATEWAY_TOKEN"

Або, якщо Gateway уже доступний у довіреній LAN чи Tailnet, повністю пропустіть SSH:

bash
openclaw-mac configure-remote \  --direct-url ws://192.168.0.202:18789 \  --token "$OPENCLAW_GATEWAY_TOKEN"

Обидві форми записують ~/.openclaw/openclaw.json, позначають початкове налаштування завершеним і дають застосунку змогу керувати вибраним транспортом після наступного запуску. Типове значення --local-port/--remote-port18789. Інші прапорці: --password, --identity <path>, --ssh-host-key-policy <strict|openssh>, --project-root <path>, --cli-path <path>, --json. Виконайте openclaw-mac configure-remote --help, щоб переглянути повну довідку.

Щоб натомість виконати налаштування через інтерфейс:

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

Web Chat

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

Дозволи

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

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

  • Надавайте перевагу прив’язуванню до local loopback на віддаленому хості та підключайтеся через SSH, Tailscale Serve або довірену пряму URL-адресу Tailnet/LAN.
  • SSH-тунелювання типово вимагає вже довіреного ключа хоста. Спочатку позначте ключ хоста як довірений (додайте його до налаштованого файлу відомих хостів) або явно встановіть gateway.remote.sshHostKeyPolicy: "openssh" для керованого псевдоніма, політику довіри OpenSSH якого ви приймаєте.
  • Якщо ви прив’язуєте Gateway до інтерфейсу, відмінного від local loopback, вимагайте належну автентифікацію Gateway: токен, пароль або зворотний проксі з урахуванням посвідчень і gateway.auth.mode: "trusted-proxy".
  • Див. Безпека і Tailscale.

Процес входу у WhatsApp (віддалений)

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

Усунення несправностей

Симптом Причина / виправлення
exit 127 / не знайдено openclaw відсутній у PATH для оболонок без входу в систему. Додайте його до /etc/paths або конфігураційного файлу своєї оболонки чи створіть символічне посилання в /usr/local/bin//opt/homebrew/bin.
Перевірка працездатності завершилася невдало Перевірте доступність через SSH, PATH і стан входу Baileys (WhatsApp) (openclaw status --json).
Вебчат не відповідає Переконайтеся, що Gateway працює на віддаленому хості, а перенаправлений порт відповідає WS-порту Gateway; для інтерфейсу користувача потрібне справне WS-з’єднання.
IP-адреса Node відображається як 127.0.0.1 Це очікувана поведінка за використання тунелю SSH. Перемкніть Транспорт на Прямий (ws/wss), якщо потрібно, щоб Gateway бачив справжню IP-адресу клієнта.
Панель керування працює, але можливості Mac недоступні З’єднання оператора/керування справне, але з’єднання із супровідним Node не встановлено або в ньому відсутній набір команд. Відкрийте розділ пристроїв у рядку меню та перевірте, чи має Mac стан paired · disconnected. Для кінцевих точок Tailscale Serve wss://*.ts.net застосунок виявляє застарілі успадковані відбитки кінцевих TLS-сертифікатів після ротації сертифіката, видаляє застарілий відбиток, щойно macOS починає довіряти новому сертифікату, та автоматично повторює спробу. Якщо сертифікат не має системної довіри або хост не є іменем Tailscale Serve, задайте для gateway.remote.tlsFingerprint очікуваний відбиток сертифіката, перевірте сертифікат або перемкніться на Віддалено через SSH.
Голосова активація У віддаленому режимі фрази активації пересилаються автоматично; окремий засіб пересилання не потрібен.

Звуки сповіщень

Вибирайте звук для кожного сповіщення зі скриптів за допомогою openclaw nodes notify, наприклад:

bash
openclaw nodes notify --node <id> --title "Ping" --body "Remote gateway ready" --sound Glass

У застосунку немає глобального перемикача звуку за замовчуванням; виклики вибирають звук (або його відсутність) для кожного запиту.

Пов’язані матеріали

Was this useful?
On this page

On this page