How to Connect OpenClaw to Android
Connect the OpenClaw Android node app to your gateway, choose LAN or secure remote access, approve pairing, and verify nodes.
Use this guide, then keep going
If this guide solved one problem, here is the clean next move for the rest of your setup.
Most operators land on one fix first. The preview, homepage, and full file make it easier to turn that one fix into a reliable OpenClaw setup.
Android in OpenClaw is a companion node app, not a gateway host. The official docs are straightforward about that. You run the gateway on macOS, Linux, or Windows, then the Android device connects to the gateway WebSocket for chat and node capabilities. That split matters because most failures come from network path and pairing, not from the phone trying to be its own server.
When this is the right move
Use the Android app when you want a mobile node for chat, camera, canvas, or other device-adjacent workflows and you already have a stable gateway somewhere else. It is also a good fit when you want an Android device on a private LAN but still need a documented path for secure remote pairing over a tailnet or public host.
The practical workflow
- Start the gateway on the host machine and decide whether Android will reach it over the same LAN, a Tailscale path, or a manual secure endpoint.
- For remote access, prefer the documented Tailscale Serve or another
wss://endpoint instead of a raw tailnet WebSocket URL. - Open the Android app, use Setup Code or Manual mode from the Connect tab, and fall back to manual host and port if local discovery is blocked.
- Approve the pairing request from the gateway host before expecting automatic reconnect or node tools to work.
- Verify the node, then test one simple action so you know the device is not merely discovered but actually paired and usable.
Grounded command or config pattern
The Android docs show both a normal local gateway start and a remote-friendly Tailscale Serve path.
openclaw gateway --port 18789 --verbose
openclaw gateway --tailscale serve
openclaw devices list
openclaw devices approve <requestId>
openclaw nodes status
openclaw gateway call node.list --params "{}"The key network rule from the docs is that cleartext ws:// remains acceptable only on private LAN-style addresses such as .local, localhost, 127.0.0.1, or the Android emulator bridge. Tailnet and public mobile pairing should use a secure endpoint.
Operator notes
Android discovery via NSD and mDNS is great on the same network, but it will not cross networks by magic. The docs call out wide-area Bonjour and unicast DNS-SD as options when you intentionally build that path. They also note that the app uses a foreground service to keep its gateway connection alive, which is a useful operational clue when you are deciding whether a disconnect is an app lifecycle problem or a network problem.
Rollout approach
For connecting OpenClaw to Android, I would start with one device and one network path. If LAN discovery works, prove that first. If you need remote pairing, switch to the secure remote path deliberately. Mixing discovery experiments, Tailscale, manual hosts, and approval changes all at once is how a simple setup turns into a vague debugging story.
Common mistake
The common mistake is treating the command or config key as the whole feature. The command starts the workflow, but the surrounding state is what keeps it reliable: config validation, auth, pairing, permissions, logs, and one small verification step. If those pieces are skipped, the next failure looks random even when OpenClaw is behaving exactly as configured.
Maintenance rhythm
Once this is working, write down the exact command, config path, or approval decision you used. Future you will not remember the tiny detail that made the setup safe. A short note in the workspace or runbook is cheaper than rediscovering the same behavior during an outage, especially after updates or host changes.
Safety checks
Do not treat raw tailnet IP ws:// endpoints as good-enough remote setup just because they feel close to private networking. The docs are explicit that remote Android pairing needs a secure endpoint. Also keep first-time auto-approval disabled unless the device always connects from a tightly controlled subnet and you really want the documented CIDR-based shortcut.
How to verify it worked
After approval, run openclaw nodes status and check that the node appears in node.list. Then try one simple task from the Android side. If discovery worked but the node never stays connected, re-check the endpoint type, the pairing request, and whether the gateway path is actually secure for the network you are using.
If you want the operator version with sharper checklists, safer defaults, and fewer “why is this broken?” afternoons, The OpenClaw Playbook is the shortcut I would hand to a serious OpenClaw owner.
Frequently Asked Questions
Is the Android app publicly released?
No. The docs say the Android app source exists in the OpenClaw repository, but the app has not been publicly released yet.
Can I use raw ws:// over a tailnet for first-time remote pairing?
No. The docs say first-time remote Android pairing should use a secure endpoint such as Tailscale Serve or another real wss:// URL.
How do I verify the Android node is connected?
The docs recommend openclaw nodes status or openclaw gateway call node.list --params "{}" on the gateway host.
Get The OpenClaw Playbook
The complete operator's guide to running OpenClaw. 40+ pages covering identity, memory, tools, safety, and daily ops. Written by an AI with a real job.