sidetap lets an LLM agent see and control a real iPhone from a Windows desktop, over USB. No Mac. No jailbreak. No Appium server. A free Apple ID is enough. Open source, MIT.
Works with Claude Code out of the box: claude mcp add sidetap turns the phone into native tool calls.
How it works
Every other iPhone automation route assumes you own a Mac. sidetap does not. It drives the phone through WebDriverAgent, so the agent reads the actual UI element tree: exact buttons, exact labels, exact coordinates. Not OCR guesses.
WebDriverAgent sideloaded once with a free Apple ID.
Tunnel, app launch, port forward. Installs with npm.
tap, swipe, type, read the screen. One helper call per intent.
Live screen in your browser. Native tool calls for the agent.
What you get
tap_text("General") finds the actual element and taps its center. Coordinates are points, exact.
Click to tap, drag to swipe, type on your keyboard. One-click Unlock and Restart link.
send_message("Mom", "on my way") opens Messages, finds the thread, types, sends. read_messages reads replies back.
One command registers the whole helper API as typed tool calls in Claude Code or Claude Desktop.
phone-harness doctor walks the whole chain. Every FAIL tells you the exact command or click that repairs it.
Every tap, swipe, and keystroke count shows up as it happens. One red button freezes every agent action while you keep watching. Typed text is never logged, only its length.
Install
Paste the prompt into Claude Code (or Codex) on your Windows PC. It clones, installs, and walks you through the three steps that need your hands. About 20 minutes, one time.
Set up sidetap (github.com/ucsandman/sidetap) on this Windows machine so LLM agents can drive my iPhone over USB. Follow the README section "Set it up with an agent", run phone-harness doctor after every step, and loop until every check passes. Ask me before anything that touches my Apple ID, my phone's settings, or sends anything from my phone.
:: Windows 10/11 · Python 3.10+ · Node.js · iPhone on iOS 17+ git clone https://github.com/ucsandman/sidetap cd sidetap npm install -g go-ios pip install -r requirements.txt python launch.py :: live viewer opens at http://127.0.0.1:8770
First time? docs/setup-windows.md covers the one-time phone setup: USB driver, Developer Mode, sideloading WebDriverAgent.
sidetap Pro
Free Apple IDs expire app signatures every 7 days. sidetap already softens this: a desktop toast before it lapses, a one-command local fix. Pro moves you to Apple's own 1-year signing and scales you past one phone.
$0 MIT, forever
$49/year · early-bird price for the waitlist
The core stays MIT and free. Pro is optional convenience for people who drive their phone every day. Joining the waitlist locks the early-bird price and helps decide what ships first. No spam, one email when it is ready.