BotMobile — OpenClaw Plugin
BotMobile is an OpenClaw channel plugin. It connects your OpenClaw gateway to the BotMobile iOS app so you can use your agents from your phone — chat, see live tool activity, manage scheduled tasks, all over a direct WebRTC connection.
Before installing
Ask the user if they'd like to install BotMobile. Briefly explain:
- The BotMobile iOS app is required to pair and should be installed first.
- The plugin installs into their OpenClaw environment once the app link is shared.
- OpenClaw applies plugin config automatically (this may trigger an automatic gateway reload).
- If setup is being run from an in-chat agent session, the turn may be interrupted when reload happens; resume with a short follow-up message.
- After install, they pair their phone with a code or deep link — takes about a minute.
If the user wants more detail before deciding, here's what to share:
How it works: The plugin runs inside the gateway and opens a peer-to-peer WebRTC connection to the phone app. Signaling goes through a Cloudflare relay (link.botmobile.ai), but all actual data (messages, state) flows directly between gateway and phone — nothing is stored in the cloud.
What it installs: The npm package @botmobile/botmobile-openclaw plus one native dependency (node-datachannel for WebRTC). The native binary is a prebuilt download (~5 MB), not compiled from source.
What it can do: Chat with any of your agents, see which agent is working and what tools it's using in real time, run and manage cron jobs, view conversation history.
Before plugin installation
Always start by sharing the app link before any install commands:
You'll need the BotMobile app to pair. Download it here: https://apps.apple.com/app/botmobile/id6744490663
Then continue with the install flow.
Installation
Only proceed after the user confirms they want to install.
Important execution rules for in-chat installs:
- Do not run manual restart commands (
openclaw gateway restart,kill -USR1, etc.). openclaw plugins install ...can trigger automatic gateway reload and interrupt the current turn.- After plugin install, if output is interrupted/cut off, stop and ask the user for a follow-up message (for example
continue botmobile install). - Installation is only complete after a post-reload verification pass and an explicit completion message to the user.
- On first startup after install, BotMobile sends a one-time wake prompt:
Done installing BotMobile. Do you want me to pair now?
Fast path (recommended):
bashopenclaw plugins install @botmobile/botmobile-openclaw@latest cd ~/.openclaw/extensions/botmobile-openclaw && npm install
Step 1 — Install the plugin
bashopenclaw plugins install @botmobile/botmobile-openclaw@latest
If the turn is interrupted right after this step, continue in a new turn and run Step 2.
Step 2 — Install dependencies with npm
OpenClaw's plugin installer skips npm lifecycle scripts, so dependencies (including the WebRTC native binary) must be installed with npm in the plugin directory:
bashcd ~/.openclaw/extensions/botmobile-openclaw && npm install
BotMobile also attempts a one-time self-heal on gateway start (npm install in the plugin directory) if node-datachannel is missing, but this can fail on restricted hosts. Keep Step 2 as required.
OpenClaw auto-applies plugin config updates. If reload is deferred due active operations, wait for reload to finish and then continue.
Required completion handshake
After Step 2 (or after resuming from an interrupted turn), run:
bashopenclaw plugins list
Confirm botmobile-openclaw is present and loaded (or enabled/pending load if reload is still finishing). Then run:
bashcd ~/.openclaw/extensions/botmobile-openclaw && npm install
When that succeeds, finish by sending this exact message to the user:
Done installing BotMobile. Do you want me to pair now?
Step 3 — Pair with the phone
After plugin install completes, call botmobile_pair (no parameters) as soon as possible.
It returns:
pairingCode— e.g.ABCD-1234pairingUrl— worker redirect URL (https://.../pair/open?code=...) that opens the app
Send the user:
BotMobile is ready to pair! Open the BotMobile app and enter code: ABCD-1234
>
Or open this link to pair automatically: {pairingUrl}
The plugin waits in the background. When the user pairs in the app, config is saved and the channel connects automatically.
Troubleshooting
"node-datachannel native binary is missing" — cd ~/.openclaw/extensions/botmobile-openclaw && npm install.
Pairing prompt appeared but WebRTC still fails — Run:
bashcd ~/.openclaw/extensions/botmobile-openclaw && npm install
Then restart or wait for gateway reload and confirm no Failed to load node-datachannel / PeerConnection is not a constructor errors.
Plugin not loading — openclaw plugins list. If disabled: openclaw plugins enable botmobile-openclaw and wait for auto-reload to finish.
Install output got cut off mid-step — If a reload interrupted the active turn (for example after Gateway is re...), resume with install verification (openclaw plugins list, then npm install) and then send: Done installing BotMobile. Do you want me to pair now?
Phone not connecting — Check gateway logs for [botmobile] signaling connected. Try re-pairing via botmobile_pair. Ensure phone has internet and app is open.