OpenClaw remoto (macOS ⇄ host remoto)
Questo flusso consente all’app macOS di agire come un controllo remoto completo per un gateway OpenClaw in esecuzione su un altro host (desktop/server). È la funzionalità Remote over SSH (esecuzione remota) dell’app. Tutte le funzionalità — controlli di integrità, inoltro Voice Wake e Web Chat — riutilizzano la stessa configurazione SSH remota da Settings → General.Modalità
- Local (this Mac): tutto viene eseguito sul laptop. Nessun SSH coinvolto.
- Remote over SSH (default): i comandi OpenClaw vengono eseguiti sull’host remoto. L’app Mac apre una connessione SSH con
-o BatchModepiù la tua identità/chiave scelta e un inoltro di porta locale. - Remote direct (ws/wss): nessun tunnel SSH. L’app Mac si connette direttamente all’URL del gateway (ad esempio tramite Tailscale Serve o un reverse proxy HTTPS pubblico).
Trasporti remoti
La modalità remota supporta due trasporti:- Tunnel SSH (predefinito): usa
ssh -N -L ...per inoltrare la porta del gateway a localhost. Il gateway vedrà l’IP del nodo come127.0.0.1perché il tunnel è loopback. - Direct (ws/wss): si connette direttamente all’URL del gateway. Il gateway vede il vero IP del client.
Prerequisiti sull’host remoto
- Installa Node + pnpm e compila/installa la CLI OpenClaw (
pnpm install && pnpm build && pnpm link --global). - Assicurati che
openclawsia nel PATH per le shell non interattive (crea un symlink in/usr/local/bino/opt/homebrew/binse necessario). - Apri SSH con autenticazione a chiave. Consigliamo gli IP Tailscale per una raggiungibilità stabile fuori LAN.
Configurazione dell’app macOS
- Apri Settings → General.
- In OpenClaw runs, scegli Remote over SSH e imposta:
- Transport: SSH tunnel oppure Direct (ws/wss).
- SSH target:
user@host(facoltativo:port).- Se il gateway è sulla stessa LAN e pubblicizza Bonjour, selezionalo dall’elenco rilevato per compilare automaticamente questo campo.
- Gateway URL (solo Direct):
wss://gateway.example.ts.net(oppurews://...per locale/LAN). - Identity file (avanzato): percorso della tua chiave.
- Project root (avanzato): percorso remoto del checkout usato per i comandi.
- CLI path (avanzato): percorso facoltativo a un entrypoint/binario
openclaweseguibile (compilato automaticamente quando pubblicizzato).
- Premi Test remote. Il successo indica che
openclaw status --jsonviene eseguito correttamente sul remoto. I fallimenti di solito significano problemi di PATH/CLI; l’uscita 127 significa che la CLI non viene trovata in remoto. - I controlli di integrità e Web Chat ora verranno eseguiti automaticamente attraverso questo tunnel SSH.
Web Chat
- Tunnel SSH: Web Chat si connette al gateway tramite la porta di controllo WebSocket inoltrata (predefinita 18789).
- Direct (ws/wss): Web Chat si connette direttamente all’URL gateway configurato.
- Non esiste più un server HTTP WebChat separato.
Permessi
- L’host remoto necessita delle stesse approvazioni TCC di quello locale (Automation, Accessibility, Screen Recording, Microphone, Speech Recognition, Notifications). Esegui l’onboarding su quella macchina per concederle una volta.
- I nodi pubblicizzano il loro stato dei permessi tramite
node.list/node.describecosì gli agenti sanno cosa è disponibile.
Note di sicurezza
- Preferisci bind loopback sull’host remoto e connettiti tramite SSH o Tailscale.
- Il tunneling SSH usa un controllo rigoroso della chiave host; considera attendibile prima la chiave host in modo che esista in
~/.ssh/known_hosts. - Se fai il bind del Gateway a un’interfaccia non loopback, richiedi un’autenticazione Gateway valida: token, password oppure un reverse proxy identity-aware con
gateway.auth.mode: "trusted-proxy". - Vedi Security e Tailscale.
Flusso di login WhatsApp (remoto)
- Esegui
openclaw channels login --verbosesull’host remoto. Scansiona il codice QR con WhatsApp sul tuo telefono. - Riesegui il login su quell’host se l’autenticazione scade. Il controllo di integrità mostrerà i problemi di collegamento.
Troubleshooting
- exit 127 / not found:
openclawnon è nel PATH per le shell non di login. Aggiungilo a/etc/paths, al file rc della tua shell oppure crea un symlink in/usr/local/bin//opt/homebrew/bin. - Health probe failed: controlla la raggiungibilità SSH, il PATH e che Baileys abbia effettuato il login (
openclaw status --json). - Web Chat bloccata: conferma che il gateway sia in esecuzione sull’host remoto e che la porta inoltrata corrisponda alla porta WS del gateway; la UI richiede una connessione WS integra.
- L’IP del nodo mostra 127.0.0.1: è previsto con il tunnel SSH. Passa Transport a Direct (ws/wss) se vuoi che il gateway veda il vero IP del client.
- Voice Wake: le frasi di attivazione vengono inoltrate automaticamente in modalità remota; non è necessario alcun forwarder separato.
Suoni di notifica
Scegli i suoni per notifica dagli script conopenclaw e node.invoke, ad esempio: