Running OpenClaw Remotely: macOS to Remote Host
I often find myself wanting to keep my local machine clean while still getting the benefits of a native desktop app. Sometimes you need a process to stay alive on a server that doesn’t go to sleep when you close your laptop lid.
I’ve found that using an SSH-based remote flow makes the transition between a local environment and a remote host much easier. This setup allows your Mac to act as a full remote control for an OpenClaw gateway running elsewhere.
What You’ll Need
Section titled “What You’ll Need”- Node and pnpm installed on your remote host.
- OpenClaw CLI built and linked globally (
pnpm install && pnpm build && pnpm link --global). openclawadded to the remote PATH (e.g., in/usr/local/bin).- SSH access configured with key authentication (Tailscale is recommended).
Quick Start
Section titled “Quick Start”- Prepare the remote host: Install the CLI and run
openclaw channels login --verboseon that machine to scan the WhatsApp QR code. - Configure the app: Open Settings → General in the macOS app and select Remote over SSH under the “OpenClaw runs” section.
- Set transport and target: Choose SSH tunnel or Direct (ws/wss) and enter your
user@hostin the SSH target field. - Verify: Click Test remote. If the app successfully runs
openclaw status --jsonon your server, you are ready to go.
Remote Transports
Section titled “Remote Transports”You can choose between two ways to move data:
- SSH tunnel: This uses
ssh -N -Lto forward the gateway port to your localhost. The gateway will see the IP as127.0.0.1. - Direct (ws/wss): This connects straight to the gateway URL, which is useful if you are using a reverse proxy or Tailscale Serve.
Notification Sounds
Section titled “Notification Sounds”You can trigger specific sounds for notifications using the CLI. There is no global default sound anymore; you choose one per request:
openclaw nodes notify --node <id> --title "Ping" --body "Remote gateway ready" --sound GlassTroubleshooting
Section titled “Troubleshooting”- exit 127 / not found: This means
openclawisn’t in the PATH for non-login shells. Add it to/etc/pathsor symlink it into/usr/local/bin. - Health probe failed: Check your SSH reachability and ensure the CLI is logged in by running
openclaw status --jsonon the remote host. - Web Chat stuck: Confirm the gateway is running and that the forwarded port matches the gateway WebSocket port.
- Node IP shows 127.0.0.1: This is expected when using the SSH tunnel. Switch to Direct (ws/wss) if you need the gateway to see your real client IP.
If you hit a wall with your configuration, you can ask the AI Setup Assistant for help.
What’s Next
Section titled “What’s Next”OpenClaw Expert
Still stuck?
If this page didn't answer your case, ask OpenClaw Expert for step-by-step guidance.