iOS support

An iPhone connects one of two ways, and the app picks for you.

Transport What it needs What you get
USB tunnel (iOS 27+, preferred) Cable + Developer Mode Live screen, input, ~0.7 s screenshots, full Unicode typing
AirPlay mirroring + Bluetooth dongle (iOS 26 and older) Same Wi-Fi network + the Bluetooth input dongle Screen, rotation, volume, and with the dongle: taps, typing, macros

Connecting

  1. Unlock the phone and plug in the cable.
  2. Tap Trust This Computer.
  3. Pick the device in the app.

The screen, touch, screenshot and pasteboard services come from the developer image the device has mounted, and installing that image is what needs Developer Mode (the device refuses the mount without it) - the app downloads and mounts it for you (about 16 MB the first time on iOS 27+, cached afterwards). When Developer Mode is off, the app turns it on itself: it warns for 10 seconds first (unplug the cable to stop it), then switches it on and the iPhone restarts once - unlock it after the restart and connect again. Once the image is mounted you can turn Developer Mode off again and the tunnel keeps working (with it off, iOS 27 still publishes all five services). An iOS update invalidates the mounted image and takes those services with it; the app puts a current one back whenever they come up missing.

iOS 16 and older do not use the tunnel, but their screenshots need a developer image too: the classic screenshotr service only answers with Developer Mode on and a classic image mounted at /Developer (about 7 MB the first time). The app prepares both of those as well, so the first screenshot on an older phone may wait for it.

Typing non-ASCII text

The keyboard types ASCII only, so everything else takes one of two routes. Pick the default in Settings → iOS connection → non-ASCII input (clipboard):

Method Upside Cost
Clipboard paste (default) Nothing to install on the phone Replaces the device clipboard; iOS asks to allow the paste the first time in each app
AgentInput keyboard No alerts, and the clipboard is left alone The AgentInput app must be installed and its keyboard active

Agents can also choose per call: unicode-text "text" --method clipboard|agentinput. ASCII text is typed either way, so neither applies to it.

Why does “Allow Paste?” keep appearing?

With the clipboard method, typing non-ASCII text (Chinese, emoji, accented letters) goes through the phone's clipboard — over the tunnel that means setting the device pasteboard and pressing Cmd+V. iOS asks the first time each app pastes, and there is no protocol-level way around it.

What to do:

  1. Tap Allow Paste in the dialog — the agent can do this itself.
  2. To stop it for good: Settings → [that app]Paste from Other AppsAllow.
  3. Pure ASCII text is typed key by key and never triggers the alert at all.

The AgentInput keyboard

Install AgentInput and switch to its keyboard, and non-ASCII text arrives character by character: no prompts, and the clipboard stays yours. Older devices on the Bluetooth HID bridge (no USB tunnel) have no other route.

Once the app's non-ASCII input is set to AgentInput, agents take this route by default. If the keyboard is missing or not the active one, the app falls back to the clipboard and says so in its reply.

To check it is active: take a screenshot — the keyboard carries the word AgentInput.

What iOS cannot do

  • No back gesture (press back is Android-only) — tap the on-screen back button instead.
  • No rotation control and no audio forwarding.
  • No UI tree, so find and ui-tree are unavailable: the agent works from screenshots, which costs more.
  • launch, open-url and Wi-Fi debugging are Android-only (macros work here too).

If neither the USB tunnel nor the Bluetooth bridge is attached, an iPhone session is view-only.

When it will not connect

  1. Make sure the phone is unlocked and the cable actually carries data — many charging cables do not.
  2. Unplug and replug; watch whether the device list refreshes.
  3. Tap Trust This Computer again; on Windows make sure Apple Mobile Device Support is installed (the installer can add it).
  4. Still stuck: restart the phone and plug it back in.

Last updated 2026-09-17