Zdalny OpenClaw (macOS ⇄ zdalny host)
Ten przepływ pozwala aplikacji macOS działać jako pełne zdalne sterowanie dla gateway OpenClaw działającego na innym hoście (desktop/serwer). To funkcja aplikacji Remote over SSH (zdalne uruchamianie). Wszystkie funkcje — sprawdzanie kondycji, przekazywanie Voice Wake i Web Chat — używają tej samej zdalnej konfiguracji SSH z Settings → General.Tryby
- Local (ten Mac): Wszystko działa na laptopie. Bez udziału SSH.
- Remote over SSH (domyślnie): Polecenia OpenClaw są wykonywane na zdalnym hoście. Aplikacja Mac otwiera połączenie SSH z
-o BatchModeoraz wybraną tożsamością/kluczem i lokalnym przekierowaniem portu. - Remote direct (ws/wss): Bez tunelu SSH. Aplikacja Mac łączy się bezpośrednio z URL gateway (na przykład przez Tailscale Serve lub publiczny reverse proxy HTTPS).
Zdalne transporty
Tryb zdalny obsługuje dwa transporty:- Tunel SSH (domyślnie): Używa
ssh -N -L ...do przekierowania portu gateway na localhost. Gateway będzie widział adres IP węzła jako127.0.0.1, ponieważ tunel używa loopback. - Direct (ws/wss): Łączy się bezpośrednio z URL gateway. Gateway widzi rzeczywisty adres IP klienta.
Wymagania wstępne na zdalnym hoście
- Zainstaluj Node + pnpm i zbuduj/zainstaluj CLI OpenClaw (
pnpm install && pnpm build && pnpm link --global). - Upewnij się, że
openclawjest w PATH dla nieinteraktywnych powłok (w razie potrzeby utwórz symlink w/usr/local/binlub/opt/homebrew/bin). - Otwórz SSH z uwierzytelnianiem kluczem. Zalecamy adresy IP Tailscale dla stabilnej osiągalności poza LAN.
Konfiguracja aplikacji macOS
- Otwórz Settings → General.
- W sekcji OpenClaw runs wybierz Remote over SSH i ustaw:
- Transport: SSH tunnel albo Direct (ws/wss).
- SSH target:
user@host(opcjonalnie:port).- Jeśli gateway znajduje się w tej samej sieci LAN i ogłasza się przez Bonjour, wybierz go z wykrytej listy, aby automatycznie wypełnić to pole.
- Gateway URL (tylko Direct):
wss://gateway.example.ts.net(lubws://...dla lokalnej sieci/LAN). - Identity file (zaawansowane): ścieżka do Twojego klucza.
- Project root (zaawansowane): ścieżka do zdalnego checkoutu używana dla poleceń.
- CLI path (zaawansowane): opcjonalna ścieżka do uruchamialnego entrypointu/binary
openclaw(uzupełniana automatycznie, gdy jest ogłaszana).
- Kliknij Test remote. Sukces oznacza, że zdalne
openclaw status --jsondziała poprawnie. Niepowodzenia zwykle oznaczają problemy z PATH/CLI; kod wyjścia 127 oznacza, że CLI nie zostało znalezione zdalnie. - Sprawdzanie kondycji i Web Chat będą teraz automatycznie działać przez ten tunel SSH.
Web Chat
- Tunel SSH: Web Chat łączy się z gateway przez przekierowany port sterowania WebSocket (domyślnie 18789).
- Direct (ws/wss): Web Chat łączy się bezpośrednio z skonfigurowanym URL gateway.
- Nie ma już oddzielnego serwera HTTP WebChat.
Uprawnienia
- Zdalny host potrzebuje tych samych zgód TCC co lokalny (Automation, Accessibility, Screen Recording, Microphone, Speech Recognition, Notifications). Uruchom onboarding na tej maszynie, aby nadać je jednorazowo.
- Węzły ogłaszają swój stan uprawnień przez
node.list/node.describe, aby agenci wiedzieli, co jest dostępne.
Uwagi dotyczące bezpieczeństwa
- Preferuj bind do loopback na zdalnym hoście i łącz się przez SSH lub Tailscale.
- Tunelowanie SSH używa ścisłego sprawdzania klucza hosta; najpierw zaufaj kluczowi hosta, aby istniał w
~/.ssh/known_hosts. - Jeśli bindujesz Gateway do interfejsu innego niż loopback, wymagaj prawidłowego uwierzytelniania Gateway: tokena, hasła lub reverse proxy świadomego tożsamości z
gateway.auth.mode: "trusted-proxy". - Zobacz Security i Tailscale.
Przepływ logowania WhatsApp (zdalnie)
- Uruchom
openclaw channels login --verbosena zdalnym hoście. Zeskanuj kod QR w WhatsApp na telefonie. - Uruchom logowanie ponownie na tym hoście, jeśli uwierzytelnianie wygaśnie. Sprawdzanie kondycji pokaże problemy z połączeniem.
Rozwiązywanie problemów
- exit 127 / not found:
openclawnie jest w PATH dla powłok bez logowania. Dodaj je do/etc/paths, pliku rc swojej powłoki albo utwórz symlink w/usr/local/bin//opt/homebrew/bin. - Health probe failed: sprawdź osiągalność SSH, PATH i to, czy Baileys jest zalogowane (
openclaw status --json). - Web Chat zawiesza się: potwierdź, że gateway działa na zdalnym hoście i że przekierowany port odpowiada portowi WS gateway; UI wymaga zdrowego połączenia WS.
- IP węzła pokazuje 127.0.0.1: oczekiwane przy tunelu SSH. Przełącz Transport na Direct (ws/wss), jeśli chcesz, aby gateway widział rzeczywisty adres IP klienta.
- Voice Wake: frazy wyzwalające są automatycznie przekazywane w trybie zdalnym; nie jest potrzebny osobny forwarder.
Dźwięki powiadomień
Wybieraj dźwięki dla każdego powiadomienia ze skryptów przy użyciuopenclaw i node.invoke, na przykład: