AI NewsDev toolsAnnouncement

phone-harness lets an AI model control a phone from a Mac

An MIT-licensed harness by Shawn Pana that gives an LLM full control of an iPhone through Mac iPhone Mirroring, or an Android device over adb, is at 2,243 GitHub stars in 30 days.

AI News

Editorial2 min read

LinkedInX
ShawnPana phone-harness GitHub repository social card

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.

SourceGitHub

This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.

Share
LinkedInX
Start a project