Letting an agent loose on a real iPhone taught me to build the kill switch first

Reddit r/AI_Agents Tools

Summary

The author built sidetap, a Python harness that lets an LLM agent control a real iPhone from Windows over USB, with safety features like a kill switch and guardrails. The post details the technical challenge of sideloading WebDriverAgent with a free Apple ID and introduces the open-source tool.

The first time you watch an agent drive your actual phone it's genuinely unsettling. So the red STOP button, the live activity feed, and the send guardrails went in before most of the features did. I wanted an LLM agent to be able to send texts and poke around on my iPhone. Every route I found assumed a Mac: iPhone Mirroring, Xcode, Appium on macOS. I've got a Windows desktop and a stubborn streak. So I built sidetap. It's a Python harness that lets an agent (or you, from your browser) see and control a real iPhone from Windows over USB. No Mac, no jailbreak, no paid Apple dev account. The part that almost killed the project: sideloading WebDriverAgent with a free Apple ID installs fine but it never actually starts. Turns out Sideloadly signs the outer app and leaves the nested .xctest runner unsigned, so iOS silently refuses to load it. Couldn't find this documented anywhere. My fix grabs the provisioning profile Sideloadly mints (it sits in your temp folder for a few hundred milliseconds), then re-signs the whole thing locally with go-ios. No Apple passwords scripted, nothing phones home. What it does: The agent reads the real UI element tree, so tap_text("General") taps the actual button. No OCR, no vision model Live viewer in your browser at ~34 fps. Click to tap, drag to swipe, type on your keyboard One-call stuff like send_message("Mom", "on my way"), with guardrails that refuse to send if the contact match looks ambiguous Native MCP tools, so Claude Code picks the whole API up as typed tool calls A big red STOP button that freezes the agent while you keep watching the screen. Watching an agent drive your actual phone is unsettling the first time, the kill switch came early A doctor command where every failed check prints the exact command that fixes it The catch: free Apple ID signatures expire every 7 days. One command re-signs, and the doctor counts down the days so it doesn't surprise you. MIT licensed, repo in comments Would love feedback, especially from anyone who's fought iOS code signing and lost a weekend to it
Original Article

Similar Articles

I gave my agent my actual iphone..

Reddit r/openclaw

A developer created a way for AI agents to control real iPhones via API, enabling tasks like drafting iMessages, running iOS Shortcuts, and mobile app testing. They are offering access to 70 phones for experimentation.