Image: GitHub
Why it mattersMobile QA and agentic testing on a real device usually needs jailbreaking or a signed enterprise profile, and this harness reaches both platforms without either, which makes setup easier for teams that had been delaying mobile agents.
An MIT-licensed harness called phone-harness, written by Shawn Pana, gives an LLM the ability to control a phone by way of a Mac. It reached 2,243 stars over its 30-day window. It does not require jailbreaking the iPhone or installing anything on the phone itself.
How it reaches each platform
On the iPhone side, the harness uses macOS iPhone Mirroring, the feature Apple added in Sequoia that projects the phone's screen to the desktop. The harness captures that mirrored window, runs OCR over the frame to find text and coordinates, and sends touches back through HID-level input events. The path is deliberate: iPhone Mirroring is a supported Apple feature, so the harness can work with any iPhone paired to that Mac without a developer profile.
On Android, the setup uses adb over USB or Wi-Fi, taking a screen capture plus the accessibility tree, then issuing input commands the way any Android automation tool would. That approach is widely used: it is what other mobile agent projects and test frameworks rely on, and it means the harness works on any Android device with USB debugging enabled.
What the agent sees and does
The read step gives the model two options: the pixels of the screen (through OCR) on iPhone, and the accessibility tree on Android. The write step is the same on both, at the level of taps and gestures the platform already allows. The README lists Claude (both the Code CLI and the standard chat), Codex, and any LLM that can invoke helper functions as compatible clients.
That combination is the interesting part. A hosted model can control a live phone through a Mac the developer already uses, without anything installed on the phone and without an enterprise developer account. The install artefact stays on the desktop.
Mobile teams that wanted to use an agent have had two bad options: install a testing framework on every device, or use a hosted device farm (a service that runs tests on many real phones) that runs their code inside a closed system they cannot inspect. phone-harness gives a third option for the cases where a real, personal device is what you want to control, and it does it under a licence that lets you copy the code into your own project.
The obvious limit is that the iPhone path only works on a Mac with iPhone Mirroring, and OCR-plus-taps is slower and breaks more easily than a proper mobile automation runtime. It is a good fit for exploratory agent work, one-off flows, and QA where the benefit is a fast setup rather than a stable test suite. It is not a replacement for a full device farm.
The other thing to plan for is what an agent doing HID-level input on a personal phone can reach: messages, banking apps, whatever is signed in. Treat access to phone-harness the same way you would treat access to the phone itself, and do not run untrusted agents against a paired device.
Source
Primary source: ShawnPana/phone-harness on GitHub.
This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.
Get AI News in your inbox
New developer tools, model and agent releases, and how teams are actually using them to release software. Short, and only when there is something worth reading.