Skip to main content
The Phone Harness plugin for OpenClaw adds one tool, phone_exec. Your agent writes a short Python script, you approve it, and the script runs on your phone. The phone can be a Cloud Android or iPhone on your account, your own iPhone through iPhone Mirroring, or an Android over adb.

Install

You need OpenClaw 2026.10.9 or newer, and uv on the machine that runs the Gateway.
OpenClaw shows what the plugin can do and asks you to accept it. Where it cannot ask, such as in a script or with /plugins install in a chat, run the command again with --accept-capabilities once you have reviewed the plugin. A running Gateway picks it up straight away. For a cloud phone, sign in once on the same machine:

Try it

Start a new chat and ask:
A rented Cloud Android bills by the minute, so the agent asks before it starts one and stops it when the task is done.

Approving scripts

Every script asks you first. You see the script and choose:
  • Allow once runs this script.
  • Always allow runs this script and every later script in the same session. A new conversation asks again.
  • Deny stops it.
If nobody can answer, the script does not run. That includes openclaw agent from a terminal and scheduled jobs. Only the owner of the OpenClaw can drive the phone. Anyone else who messages your agent is refused.

Which agents get the tool

The coding and full tool profiles include phone_exec. The messaging profile does not, so a chat bot does not offer your phone by default. To add it, set tools.alsoAllow to ["phone_exec"]. Sandboxed sessions never get the tool, because the script would run on the Gateway machine, outside the sandbox.

What stays private

The script runs without your API keys, tokens or passwords in its environment. Phone Harness sends usage data, including scripts and what they print, to PostHog. To turn it off, set DO_NOT_TRACK=1 in the Gateway’s environment, or run uvx phone-harness config set telemetry false as the user the Gateway runs as.