Developer Finn Voorhees has demonstrated an AI agent that can operate an iPhone directly from a chat prompt. In the demo, he gave the agent a single instruction: find the cheapest Ryanair ticket to London for the next day. The agent then opened the Ryanair app on its own, filled in the destination, selected the date, checked fares, and returned to the chat interface with the result. No computer was involved during the process.
The setup runs inside PiChat, an iPhone chat app built by Voorhees. Under the hood, it uses his previously open-sourced PiDurableKit, which runs Pi Agent on the phone through Apple’s JavaScriptCore and handles model calls, tool execution, and task management. The video used Claude Opus 5.5, though inference still ran in the cloud. To keep tasks running after switching between apps, PiChat also uses Apple’s background task system and stores execution progress in SQLite for recovery after interruptions. The core cross-app control code has not been released. In the video, enabling iPhone Control triggered a prompt for the lock screen passcode to turn on XCTest UI automation. XCTest can simulate taps, swipes, and text input. The open-source project TouchSynthesis uses private XCTest interfaces to generate touch events on iPhone without real-time computer control, but Voorhees has not confirmed whether he used that approach.
Developer Finn Voorhees demonstrated an AI agent that can operate an iPhone directly. In the demo, he gave it a single prompt asking for the cheapest Ryanair ticket to London for the next day. The agent then opened Ryanair on its own, entered the destination, selected the date, checked the fare, and returned to the chat interface with the result. No computer was involved at any point.
Running inside PiChat with PiDurableKit underneath
The agent runs inside PiChat, an iPhone chat app built by Voorhees. Its underlying framework is PiDurableKit, which he previously open-sourced. Through Apple’s JavaScriptCore, PiDurableKit runs Pi Agent on the phone and handles model invocation, tool execution, and task management.
The model shown in the video was Claude Opus 5.5, although inference still took place in the cloud.
Background execution and task recovery
To keep the agent working after switching to other apps, PiChat uses Apple’s background task mechanism. It also stores execution progress in SQLite so interrupted tasks can resume later.
Voorhees has not released the most important part yet: the code used for cross-app control.
XCTest appeared in the demo
When iPhone Control was enabled in the video, the system asked for the device passcode to activate XCTest UI automation. XCTest is Apple’s UI testing framework and can simulate taps, swipes, and text entry.
The open-source project TouchSynthesis uses private XCTest interfaces to let an iPhone generate its own touch events without real-time control from a computer. Voorhees has not confirmed whether his demo used that method.
This article was originally published by Bit.Fan. For more cryptocurrency news and market insights, visit www.bit.fan. Disclaimer:
The market information, project data, and third-party content displayed on this platform are for industry information sharing only and do not constitute any form of investment advice or return commitment.
Cryptocurrency trading carries high risks. Users should fully assess their risk tolerance and make independent decisions. All profits, losses, and legal responsibilities are borne by the users themselves.