Analysis updated 2026-08-13
Let an AI coding agent open apps and interact with a real iPhone for testing
Automate repetitive phone tasks by scripting taps, typing, and scrolling
Verify a phone app's behavior by having an agent read on-screen text via OCR
Demo or test iOS app flows without jailbreaking the device or using Xcode tooling
| shawnpana/phone-harness | vasu-devs/justhireme | juneyaooo/nihaisha-nishi-tcm | |
|---|---|---|---|
| Stars | 1,699 | 1,703 | 1,704 |
| Language | Python | Python | Python |
| Setup difficulty | moderate | moderate | easy |
| Complexity | 3/5 | 3/5 | 2/5 |
| Audience | developer | vibe coder | general |
Figures from each repo's GitHub metadata at analysis time.
Requires macOS Sequoia or newer, iPhone Mirroring paired once, and terminal Accessibility and Screen Recording permissions.
Phone Harness lets an AI agent like Claude Code or Codex actually control a real iPhone through your Mac, without jailbreaking the phone or installing any special developer tools on it. It works by taking over the Mac's built-in iPhone Mirroring window, which shows your phone's screen live and forwards mouse and keyboard input to it as real touches. The agent sees the phone by taking a screenshot of that mirroring window and running Apple's Vision framework on it to read every piece of visible text along with its exact screen position, similar to how a web agent might read a page's structure. It acts on the phone by sending low-level input events, taps, long presses, drags, scrolls, and typed text, directly to that same window. After acting, it takes another screenshot to confirm the change actually happened, since there is no other way to inspect the phone's state. Setting it up mostly means running a guided prompt inside an agent like Claude Code, which walks you through cloning the project, installing it as a command, and registering it so the agent automatically reaches for it. Two steps require you personally: pairing iPhone Mirroring with your physical phone once, and granting the Mac's terminal permission for Accessibility and Screen Recording in System Settings. A built-in doctor command checks that everything is connected correctly. The project is honest about what does not work. Older automation approaches like AppleScript clicks are silently ignored because the mirrored window has no accessibility information, only a video feed. Typed text has to use raw keyboard codes rather than Unicode characters, slow drags barely register on iOS lists so scrolling needs a proper flick or wheel gesture, and input is ignored if the mirroring window is not the frontmost window on screen. It has real limits too: only one phone and one session at a time, no multi-touch gestures like pinching, no camera or Face ID flows, and DRM protected video shows up as a black screen since it cannot be captured.
Phone Harness lets an AI agent control a real iPhone through the Mac's iPhone Mirroring feature, using screenshots and OCR to see and simulated taps to act.
Mainly Python. The stack also includes Python, macOS, Vision framework.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.