OpenClaw Node Setup: Connect Your Phone and Remote Devices
How to pair your phone, tablet, and remote devices to OpenClaw using the node system. Covers iOS, Android, and macOS companion apps with step-by-step setup.
OpenClaw nodes let you control your AI assistant from any device — phone, tablet, second laptop. One OpenClaw installation, multiple entry points. You send a voice note from your phone; the assistant handles it on your server and replies in Telegram.
This guide covers pairing iOS, Android, and macOS devices to your OpenClaw instance.
What OpenClaw Nodes Actually Are
An OpenClaw node is any device that connects to your OpenClaw gateway. The gateway runs on your server (VPS or local machine). Nodes are clients that send and receive messages.
Common configurations:
- Server + phone — OpenClaw on a VPS, iOS/Android app as the interface
- Server + Mac — OpenClaw on VPS, macOS companion app for desktop access
- Local + phone — OpenClaw on laptop, phone for on-the-go access via Tailscale
- Multi-device — one server, multiple phones, shared assistant context
The gateway handles authentication, routing, and connection management. Nodes just display the interface and relay your input.
Prerequisites
Before pairing any device:
- OpenClaw installed and running on a server (npm install -g openclaw or Docker)
- Gateway service running:
openclaw gateway start - Port 3000 open on your server (or whatever port gateway binds to)
- If connecting over internet (not local Wi-Fi): a public URL for your gateway
Verify gateway is running:
openclaw gateway status
# Should return: Gateway running on port 3000
If it's not running:
openclaw gateway start
Getting a Public URL for Your Gateway
Pairing over local Wi-Fi works without a public URL. Pairing from mobile data, Tailscale, or another network requires one.
Options:
Option 1: VPS with Static IP (Recommended)
If you're running OpenClaw on a Hetzner, DigitalOcean, or Vultr VPS, you already have a public IP. Point a domain at it:
# In your OpenClaw config
gateway.remote.url = "https://openclaw.yourdomain.com"
Option 2: Tailscale (Local Machine)
Tailscale creates a private network between your devices — no port forwarding, no public exposure.
- Install Tailscale on your OpenClaw machine
- Install Tailscale on your phone
- Both join the same Tailscale network
- Use the Tailscale IP of your OpenClaw machine as the gateway URL
Option 3: Cloudflare Tunnel
Zero-trust access via Cloudflare's edge network. Free tier works for personal use.
cloudflared tunnel --url http://localhost:3000
Cloudflare returns a .trycloudflare.com URL. Use it as your gateway URL for pairing.
Pairing an iPhone (iOS App)
The OpenClaw iOS app is available in the App Store (search "OpenClaw").
- Open the app → tap "Connect to OpenClaw"
- Select "Scan QR Code" or "Enter Setup Code"
- On your OpenClaw server, run:
openclaw pair --generate - A QR code appears in terminal — scan it with the iOS app
- The app prompts for your gateway URL — enter your public URL or Tailscale IP
- Tap "Connect" — pairing completes in under 5 seconds
Verify pairing worked:
openclaw nodes list
# Should show your iPhone with status: connected
If pairing fails with "invalid bootstrap token" — regenerate the pair code. Codes expire after 10 minutes.
Pairing an Android Device
Same flow as iOS. The OpenClaw Android app is on the Play Store.
- Install the app → "Connect"
- Select "Scan QR Code"
- Run
openclaw pair --generateon your server - Scan the QR code
- Enter your gateway URL when prompted
Android-specific note: if you're on mobile data and your gateway URL is a local IP (192.168.x.x), it won't connect. You need a public URL or Tailscale for cross-network access.
Pairing a macOS Device
The macOS companion app gives you a native menubar interface to your OpenClaw instance.
- Download from the OpenClaw website or App Store
- Open the app → Preferences → Gateway
- Enter your gateway URL
- Click "Pair Device" — you'll be prompted for a pairing code
- Run
openclaw pair --generate --type macon your server - Enter the 8-digit code displayed
The macOS app adds an icon to your menubar. Click it to open a floating window. Works like a native chat client backed by your OpenClaw instance.
Common Pairing Failures (and Fixes)
Error: "pairing required" or "unauthorized"
The node isn't registered. Run openclaw pair --generate again and complete the pairing flow.
Error: "bootstrap token invalid or expired"
Pair codes expire in 10 minutes. Generate a fresh code and complete pairing within 5 minutes of generation.
Error: "gateway.bind" or "gateway not reachable"
Check:
openclaw gateway status— is it running?curl http://localhost:3000/health— does it respond on the server?curl http://YOUR_PUBLIC_URL/health— does it respond from outside?- Check firewall:
ufw allow 3000(or your gateway port) - If behind Cloudflare: set DNS to "DNS only" (grey cloud) before testing, then proxy after
Connects on Wi-Fi but not mobile data
Your gateway URL is a local IP (192.168.x.x). Local IPs only work on the same network. Use a public URL, Tailscale, or Cloudflare Tunnel for cross-network access.
Keeps disconnecting
Usually a gateway crash. Check: journalctl -u openclaw-gateway -n 50. Common cause: out of memory on the server — check free -h and kill zombie agent processes.
Multi-Device Setup
You can pair multiple devices to one OpenClaw instance. Each device gets its own session but shares the same agent context and workspace.
Useful setup: pair both your personal iPhone and work laptop. Send quick questions from the phone. Do heavier work from the laptop. Both see the same conversation history.
To list all paired nodes:
openclaw nodes list
To revoke a device:
openclaw nodes revoke --id node-id-here
Security: Locking Down Node Access
By default, any device with a valid pair code can connect to your OpenClaw instance. For production setups, add these protections:
- Rotate pair codes regularly — don't use the same code twice
- Revoke old devices — run
openclaw nodes listmonthly, remove anything you don't recognize - Use Tailscale over public URLs — Tailscale limits access to devices you explicitly add to your network
- Keep gateway port closed to internet — if using Cloudflare Tunnel, no need to open port 3000 publicly