Modi
- Lokaal (deze Mac): alles draait op de laptop; SSH wordt niet gebruikt.
- Extern via SSH (standaard): OpenClaw-opdrachten worden op de externe host uitgevoerd. De app opent een SSH-verbinding met
-o BatchMode, de door jou gekozen identiteit/sleutel en een lokale poortdoorsturing. - Rechtstreeks extern (ws/wss): geen SSH-tunnel; de app maakt rechtstreeks verbinding met de Gateway-URL (LAN, Tailscale, Tailscale Serve of een openbare HTTPS-reverseproxy).
Externe transportmethoden
- SSH-tunnel (standaard): gebruikt
ssh -N -L ...om de Gateway-poort door te sturen naar localhost. De Gateway ziet het IP-adres van de Node als127.0.0.1, omdat de tunnel via loopback loopt. - Rechtstreeks (ws/wss): maakt rechtstreeks verbinding met de Gateway-URL. De Gateway ziet het werkelijke IP-adres van de client.
ControlMaster of ForkAfterAuthentication inschakelt.
Verificatie van SSH-hostsleutels is standaard strikt, omdat Gateway-referenties door deze tunnel gaan. Als je het eigen vertrouwensgedrag van een beheerde SSH-alias wilt gebruiken, stel je --ssh-host-key-policy openssh in via openclaw-mac configure-remote, of stel je gateway.remote.sshHostKeyPolicy rechtstreeks in op "openssh". Controleer de alias en eventuele overeenkomende Host *- of systeemconfiguratie voordat je hiervoor kiest. Als je het SSH-doel wijzigt (in de app of via configure-remote), wordt het beleid teruggezet naar strict, tenzij je dit opnieuw expliciet inschakelt voor het nieuwe doel.
In de SSH-tunnelmodus worden gevonden LAN-/Tailnet-hostnamen opgeslagen als gateway.remote.sshTarget. De app houdt gateway.remote.url op het lokale tunneleindpunt (bijvoorbeeld ws://127.0.0.1:18789), zodat de CLI, Web Chat en de lokale Node-hostservice allemaal hetzelfde loopbacktransport gebruiken. Wanneer de detectie zowel onbewerkte Tailnet-IP-adressen als stabiele hostnamen oplevert, geeft de app de voorkeur aan Tailscale MagicDNS- of LAN-namen, zodat verbindingen beter bestand zijn tegen adreswijzigingen. Als de lokale tunnelpoort verschilt van de externe Gateway-poort, stel je gateway.remote.remotePort in op de poort van de externe host.
Browserautomatisering in de externe modus wordt beheerd door de CLI-Node-host, niet door de Node van de native macOS-app. De app start waar mogelijk de geïnstalleerde Node-hostservice. Om browserbesturing vanaf die Mac in te schakelen, installeer/start je deze met openclaw node install ... en openclaw node start (of voer je openclaw node run ... op de voorgrond uit) en selecteer je vervolgens die browsergeschikte Node als doel.
Vereisten op de externe host
- Installeer Node + pnpm en bouw/installeer de OpenClaw-CLI (
pnpm install && pnpm build && pnpm link --global). - Zorg dat
openclawop PATH staat voor niet-interactieve shells (maak indien nodig een symlink in/usr/local/binof/opt/homebrew/bin). - Voor SSH-transport: stel SSH-authenticatie op basis van sleutels in. Tailscale-IP-adressen worden aanbevolen voor stabiele bereikbaarheid buiten het LAN.
De macOS-app instellen
Om de app zonder de welkomstflow vooraf te configureren, via SSH:openclaw-mac connect, wizard en configure-remote bepalen de actieve configuratie in deze volgorde: OPENCLAW_CONFIG_PATH, vervolgens $OPENCLAW_STATE_DIR/openclaw.json en daarna ~/.openclaw/openclaw.json. Beide configuratievormen schrijven naar dat actieve bestand, markeren de onboarding als voltooid en laten de app bij de volgende start het geselecteerde transport beheren. --local-port/--remote-port zijn standaard ingesteld op 18789. Andere vlaggen: --password, --identity <path>, --ssh-host-key-policy <strict|openssh>, --project-root <path>, --cli-path <path>, --json. Voer openclaw-mac configure-remote --help uit voor de volledige referentie.
Om dit in plaats daarvan via de gebruikersinterface te configureren:
- Open Settings -> General.
- Kies onder OpenClaw runs de optie Remote en stel het volgende in:
- Transport: SSH tunnel of Direct (ws/wss).
- SSH target:
user@host(optioneel:port). Als de Gateway zich op hetzelfde LAN bevindt en via Bonjour wordt aangekondigd, selecteer je deze in de lijst met gevonden apparaten om dit veld automatisch in te vullen. - Gateway URL (alleen rechtstreeks):
wss://gateway.example.ts.net(ofws://...voor lokaal/LAN). - Identity file (geavanceerd): pad naar je sleutel.
- Project root (geavanceerd): pad naar de externe checkout dat voor opdrachten wordt gebruikt.
- CLI path (geavanceerd): optioneel pad naar een uitvoerbaar
openclaw-startpunt/binair bestand (automatisch ingevuld wanneer dit wordt aangekondigd).
- Klik op Test remote. Succes betekent dat de externe
openclaw status --jsoncorrect is uitgevoerd. Fouten wijzen meestal op problemen met PATH/de CLI; afsluitcode 127 betekent dat de CLI niet op de externe host is gevonden. - Statuscontroles en Web Chat worden nu automatisch via het geselecteerde transport uitgevoerd.
Web Chat
- SSH-tunnel: maakt verbinding met de Gateway via de doorgestuurde WebSocket-besturingspoort (standaard 18789).
- Rechtstreeks (ws/wss): maakt rechtstreeks verbinding met de geconfigureerde Gateway-URL.
- Er is geen afzonderlijke HTTP-server voor Web Chat.
Machtigingen
- De externe host heeft dezelfde TCC-goedkeuringen nodig als lokaal (Automation, Accessibility, Screen Recording, Microphone, Speech Recognition, Notifications). Doorloop de onboarding eenmaal op die machine om deze toe te kennen.
- Nodes maken de status van hun machtigingen bekend via
node.list/node.describe, zodat agents weten wat beschikbaar is.
Beveiligingsopmerkingen
- Geef de voorkeur aan loopbackbindingen op de externe host en maak verbinding via SSH, Tailscale Serve of een vertrouwde rechtstreekse Tailnet-/LAN-URL.
- Voor SSH-tunneling is standaard een reeds vertrouwde hostsleutel vereist. Vertrouw eerst de hostsleutel (voeg deze toe aan het geconfigureerde known-hosts-bestand), of stel
gateway.remote.sshHostKeyPolicy: "openssh"expliciet in voor een beheerde alias waarvan je het OpenSSH-vertrouwensbeleid accepteert. - Als je de Gateway aan een niet-loopbackinterface bindt, moet je geldige Gateway-authenticatie vereisen: een token, wachtwoord of identiteitsbewuste reverseproxy met
gateway.auth.mode: "trusted-proxy". - Rechtstreekse
wss://-verbindingen passen één certificaatbeleid toe op zowel operator-/besturingsverkeer als de gekoppelde Mac-Node. Stelgateway.remote.tlsFingerprintin voor een expliciete pin. Zonder deze instelling registreert de app pas bij het eerste gebruik een pin nadat de normale vertrouwenscontrole van macOS is geslaagd. - Zie Beveiliging en Tailscale.
WhatsApp-inlogflow (extern)
- Voer
openclaw channels login --channel whatsapp --verboseop de externe host uit. Scan de QR-code met WhatsApp op je telefoon. - Voer de aanmelding opnieuw uit op die host als de authenticatie verloopt. De statuscontrole maakt koppelingsproblemen zichtbaar.
Probleemoplossing
Meldingsgeluiden
Kies per melding geluiden uit scripts metopenclaw nodes notify, bijvoorbeeld: