Phone Harness Lets AI Agents Tap and Swipe Real iPhones
Shawn Pana open-sourced Phone Harness , a Python toolkit letting agents control iPhones and Androids. Works via iPhone Mirroring plus Apple Vision OCR on macOS, and adb plus the accessibility tree on Android.

Takeaways
- Shawn Pana open-sourced Phone Harness , a Python toolkit letting agents control iPhones and Androids.
- Works via iPhone Mirroring plus Apple Vision OCR on macOS, and adb plus the accessibility tree on Android.
- Ships CLI, MCP server, and plugins for Claude Code, Codex, Hermes, and OpenClaw integrations.
- MIT licensed, 4,000+ GitHub stars, no jailbreak, Xcode, or app install required on the phone.
- Phone Harness Cloud rents Android emulators at 5 cents a minute or real iPhones from $64 a month.
- Limits: no multi-touch, no Face ID or camera flows, DRM video blacks out, icons without labels need vision models.
Phone Harness is an MIT-licensed toolkit that lets coding agents operate iPhones and Android devices through their visible interfaces. Agents such as Claude Code and Codex can tap, swipe, type, launch apps, and read on-screen text. Within weeks of launch, the repository had passed 4,000 GitHub stars .
Created by Shawn Pana, the project supports local devices and hosted hardware. The local harness is free, while Phone Harness Cloud rents Android emulators and real iPhones. Example workflows include booking a Waymo, adding an item to an Amazon cart, reading notifications, and retrieving an SMS authentication code.
Pixels in, taps out
| Target | Screen access | Input | Requirements |
|---|---|---|---|
| Local iPhone | iPhone Mirroring and Apple Vision OCR | macOS input events | macOS 15 or later, Screen Recording, and Accessibility permissions |
| Local Android | Screenshots and the accessibility tree | adb input commands | USB or Wi-Fi debugging |
| Cloud Android | Hosted screenshots and accessibility data | Remote adb | Phone Harness Cloud account |
| Cloud iPhone | Hosted device stream | HTTPS API | Phone Harness Cloud subscription |
Because the harness controls the visible interface, the target app needs no automation SDK, instrumentation build, Appium server, jailbreak, or companion app. The production app runs unchanged. The project describes this approach as stealthy, although apps can still inspect account behavior, device state, network origin, and interaction patterns.
Three doors into the harness
The Python CLI preimports helpers for common actions. In this example, the agent opens Notes, taps a text label, types a message, and prints text returned by screen() :
Reporting is indexed from AlphaSignal. Rights remain with the original publisher and cited sources.
Read original report

