My PC just texted my mom. From my real iPhone.

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.

git clone github.com/ucsandman/sidetap
Set it up with an agent →

Works with Claude Code out of the box: claude mcp add sidetap turns the phone into native tool calls.

viewer · 12 checks ok · battery 82% · unlocked
Every agent action, live. The switch works here too.
MacXcodejailbreakAppium serverpaid developer accountfree Apple ID + a USB cable

How it works

One cable. Four hops. Real hands on a real phone.

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.

iOS 17+

iPhone

WebDriverAgent sideloaded once with a free Apple ID.

USB

go-ios

Tunnel, app launch, port forward. Installs with npm.

Python

harness

tap, swipe, type, read the screen. One helper call per intent.

you + agent

viewer & MCP

Live screen in your browser. Native tool calls for the agent.

What you get

Built for agents. Supervised by you.

Real UI tree, not screenshots

tap_text("General") finds the actual element and taps its center. Coordinates are points, exact.

Live viewer at ~34 fps

Click to tap, drag to swipe, type on your keyboard. One-click Unlock and Restart link.

One-call flows

send_message("Mom", "on my way") opens Messages, finds the thread, types, sends. read_messages reads replies back.

Native MCP tools

One command registers the whole helper API as typed tool calls in Claude Code or Claude Desktop.

A doctor that names the fix

phone-harness doctor walks the whole chain. Every FAIL tells you the exact command or click that repairs it.

Kill switch + live activity feed

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

Let your agent set it up for you.

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.

paste into your agent
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.
or by hand
:: 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

The weekly re-sign, gone.

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.

Open source

$0 MIT, forever

  • Everything on this page: viewer, helpers, MCP tools, doctor, kill switch
  • Weekly re-sign with one command and one click
  • Expiry countdown and desktop notifications
  • Community support on GitHub
Clone it free →

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.