Android + iOS · Windows / macOS / Linux

Unlock the agentic world on your phone

XPhoneUse mirrors a real phone to your computer and hands it to an agent. Android and iPhone alike, on Windows, macOS and Linux. Driving an iPhone needs no Xcode, no Apple developer account and no XCTest - plug in the cable and tap Trust once. From there, MCP, the CLI and the skill put it inside Claude, Codex, WorkBuddy or any other agent.

Free · No account · Everything stays on your machine

XPhoneUse

What people build

Real use cases from the community — each one written by the person who submitted it, reviewed before it goes up.

See more cases

Why XPhoneUse

A real device, not an emulator — and an interface agents can actually use.

📱

A real phone, not an emulator

Your actual device with your actual accounts and app state. No fake GPS, no risk scores, no “this app cannot run on an emulator”.

🤖

Built for agents

An MCP server runs inside the app, alongside the CLI and the skill, exposing taps, text input, scrolling, screenshots and more. Claude, Codex, WorkBuddy and any other agent can use it.

🖥️

Three desktops, one experience

Native installers for Windows, macOS and Linux - exe, dmg, deb and AppImage - all on the same auto-update channel. No SDK, no build step, no Docker. On the phone: Android over scrcpy, iPhone over the USB tunnel, with the screen, input and screenshots on one cable.

🧰

No Xcode for iPhone

No Xcode, no Apple developer account, no XCTest. It talks to the device’s own USB services: plug in, unlock, tap Trust once, and the screen, taps, typing and screenshots are there. On Windows the installer even sets up the driver.

🎬

Screenshots, recording, macros, files

Grab the screen in well under a second on the iOS tunnel, record a session to video, or record a flow once and replay it on a loop. The file manager browses the phone’s storage with drag and drop, and a map picker moves the phone’s location.

🔒

Nothing leaves your machine

The MCP endpoint is 127.0.0.1:7070 and the device link is USB or your own LAN. No relay server, no cloud account, no telemetry about what you do on the phone. Device nicknames, Wi-Fi debugging, quality presets and themes are in there too.

Judgement by Jev - a System One model

A copilot for the conversation

The hard part of a conversation is not the tapping - it is knowing what to say back. The copilot watches the mirror: when the picture settles it reads the conversation, decides what the other person means and what the moment calls for, drafts three replies and ranks them.

  • The reading happens on your machine — offline OCR over the chat, no network and no image tokens
  • Judgement first, words second — what the other person really means, what they need, how dangerous the moment is, whether substance is right now: Jev, a System One decision model, answers all of it in one call
  • Three drafts, ranked — hold the line, promise something concrete, stay short and low-key, each with a confidence score
  • It never sends anything — picking a draft fills the app's input box; what you do with it is up to you

Nothing is sent unless the copilot is on: judging and drafting go to whichever services you configure - Jev, a System One model, for the judgement, any OpenAI-compatible endpoint for the drafts - and the keys stay in this machine's settings.

✦ Copilot 3 candidates ready

Venting anger 82% · Needs: to feel cared about · Do: acknowledge first · Danger 3/9

Candidates (ranked by Jev)
#187%Sorry, I sat on this. Let me pin down a time today — does that work?Fill
#274%I hear you. Give me a moment — I'm looking into it right now.Fill
#361%You're right, I handled that badly. I'll explain properly tonight.Fill
The panel, illustrated: the judgement on top, the drafts ranked under it, and Fill putting one in the input box

Your agent's hands and eyes

Anything a person can do on the phone, an agent can do through the CLI or MCP: open an app, find a button by its text, tap it, type a message, scroll a feed, read the result back, and verify with a cheap screenshot diff.

  • tap · longtap · swipe · scroll in normalized coordinates
  • text — full Unicode, with an --enter that sends the message
  • find / ui-tree — read the Android UI instead of paying for pixels
  • screenshot --compare — local pixel diff, only look when something changed
  • macro record / macro play — replay a flow without re-deriving it
  • ocr — read the screen's text offline: the way to read an iPhone, boxes and all, without image tokens
  • files / push / pull — browse the phone's storage and move files in and out
Docs
# the agent reads the screen, finds the button by text, taps, verifies
python scripts/xphoneuse-cli.py connect
python scripts/xphoneuse-cli.py ocr --json
python scripts/xphoneuse-cli.py find "发送"
python scripts/xphoneuse-cli.py tap 0.86 0.94
python scripts/xphoneuse-cli.py text "今晚七点见" --enter
python scripts/xphoneuse-cli.py screenshot --compare

Running in three steps

No SDK, no build step, no jailbreak or root.

Plug in and allow

Android: turn on USB debugging. iPhone: unlock and tap Trust - the developer image the screen, touch and screenshots need is installed by the app, and so is the Developer Mode that installing it needs (it warns for 10 seconds first; the phone restarts once).

Mirror it

Pick the device in the app. The window switches to the live screen, and input goes both ways — you can use the phone while the agent does.

Hand it over

Please enter the following in agent conversations such as Claude Code, Codex, WorkBuddy: Please install skill: https://xphoneuse.com/static/skills/xphoneuse.zip

Questions people ask

Do I need to root or jailbreak my phone?

No. Android only needs USB debugging (and Wi-Fi debugging if you want to work cable-free). iPhone needs the cable and one trust confirmation: the screen, touch, screenshot and pasteboard services come from the device's developer image, and the device refuses to install one while Developer Mode is off - so the app downloads and mounts it, and turns Developer Mode on itself when it has to (after a 10-second warning; the phone restarts once). You can turn the switch off again afterwards.

Does my screen or my data go to a server?

No. The video stream goes from the phone to your machine, and the MCP server listens on 127.0.0.1 only. There is no relay and no account. The app sends anonymous usage counts (launch/exit, platform) to a self-hosted analytics instance — never screen content, app names or device identifiers.

Why does iOS ask “Allow Paste?” when the agent types?

Non-ASCII text is delivered through the iPhone clipboard, and iOS asks every app the first time. Tap Allow Paste once, or make it permanent per app in Settings → [App] → Paste from Other Apps → Allow. Pure ASCII text is typed key by key and never triggers it.

Can the agent and I use the phone at the same time?

Yes. The app and the MCP session share one connection to the device, so you can watch (or take over) while the agent works. Screenshots prefer the live mirror frame, which costs nothing on the device.

What can't it do on iOS?

iOS has no back button equivalent, no rotation control and no audio forwarding — those are Android-only. If neither the USB tunnel nor the Bluetooth bridge is attached, an iPhone session is view-only.

Is there an API for automation?

Yes — that is the point. Use the CLI, or speak MCP directly from your own agent: 32 tools covering input, screenshots, offline OCR, the UI tree, app launching, file transfer, macros, Wi-Fi debugging and device management.

Does the copilot reply for me?

No. It writes drafts: picking one fills the app's input box, and the send key is always yours. With the copilot off it captures nothing, reads nothing and sends nothing; the transcript lives in memory and goes away with the app. The judging and drafting requests go to the services you configured, and the keys stay in this machine's settings.

Does the iPhone side need Xcode or an Apple developer account?

Neither. Most iPhone automation wants Xcode installed, an Apple developer account, and an XCTest agent compiled onto the phone. XPhoneUse talks to the device's own USB services instead: install the app, plug in the cable, tap Trust once. The one thing it does need is the device's developer image, which serves the screen, touch and screenshot services - the app downloads and mounts it itself, turning Developer Mode on when it has to, and you can switch that off afterwards.

Get in touch

Something broken, something missing, or you want to talk about wiring this into your own agent - reach me directly.

X / Twitter — @kindle_jiang

DM or mention me - both work.

xphoneuse@aovik.com

Prefer email? That reaches me too.

Unlock the agentic world on your phone

Download XPhoneUse, plug in a device, and Unlock the agentic world on your phone.

Download now