Connecting your iOS device as an OpenClaw Node
Ever tried to get a mobile device to communicate with your local development machine without jumping through ten different hoops? It is usually a mess of shifting IP addresses, flaky connections, and background process headaches. I want my phone to act like a part of my development setup, not a separate island that requires constant manual configuration.
The iOS app for OpenClaw makes this easier by turning your iPhone into a node. It lets you use the camera, location, and even a web-based canvas directly from your gateway. Here is how I get it running.
What You’ll Need
Section titled “What You’ll Need”- A Gateway running on another device (macOS, Linux, or Windows via WSL2).
- A network path between them (LAN via Bonjour, Tailnet via unicast DNS-SD, or a manual host/port).
Quick Start
Section titled “Quick Start”You can get the connection established in about five minutes. Follow these four steps:
-
Start the Gateway on your computer:
Terminal window openclaw gateway --port 18789 -
Pick your gateway in the iOS app. Open Settings and select a discovered gateway. If it does not show up, you can enable Manual Host and enter your computer’s IP and port.
-
Approve the pairing request on your gateway host. You need to tell the gateway that this device is trusted:
Terminal window openclaw nodes pendingopenclaw nodes approve <requestId> -
Verify the connection to make sure everything is talking:
Terminal window openclaw nodes statusopenclaw gateway call node.list --params "{}"
Discovery Paths
Section titled “Discovery Paths”The app finds your gateway in a few ways. By default, it uses Bonjour (LAN) to look for _openclaw-gw._tcp on the local network.
If you are working across different networks, you can use Tailnet. This requires a unicast DNS-SD zone and Tailscale split DNS. If those do not work, I just use the Manual host/port toggle in the app settings and type in the details directly.
Canvas and A2UI
Section titled “Canvas and A2UI”The iOS node uses a WKWebView to render a canvas. You can control what it shows by sending commands from the gateway.
To point the canvas to a specific URL:
openclaw nodes invoke --node "iOS Node" --command canvas.navigate --params '{"url":"http://<gateway-host>:18793/__openclaw__/canvas/"}'If you want to clear the screen or draw something specific, you can use canvas.eval. Here is an example that draws a red line:
openclaw nodes invoke --node "iOS Node" --command canvas.eval --params '{"javaScript":"(() => { const {ctx} = window.__openclaw; ctx.clearRect(0,0,innerWidth,innerHeight); ctx.lineWidth=6; ctx.strokeStyle=\"#ff2d55\"; ctx.beginPath(); ctx.moveTo(40,40); ctx.lineTo(innerWidth-40, innerHeight-40); ctx.stroke(); return \"ok\"; })()"}'You can also grab a snapshot of the current canvas state:
openclaw nodes invoke --node "iOS Node" --command canvas.snapshot --params '{"maxWidth":900,"format":"jpeg"}'Troubleshooting
Section titled “Troubleshooting”If things do not go as planned, check these common issues:
NODE_BACKGROUND_UNAVAILABLE: iOS is strict about background activity. You must bring the app to the foreground to use the canvas, camera, or screen commands.A2UI_HOST_NOT_CONFIGURED: This means the Gateway isn’t telling the app where the canvas lives. Check yourcanvasHostsetting in the Gateway configuration.- Pairing prompt never appears: Sometimes the notification gets lost. Run
openclaw nodes pendingon your gateway to see if the request is waiting there. - Reconnect fails after reinstall: If you delete and reinstall the app, the security tokens in the Keychain are gone. You will need to pair the node again.
If you hit a wall during setup, check out 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.