Show HN: Open-source app that lets LLMs control any iPhone app (no Mac required) Developer jkcoxson released an open-source iPhone app that lets a vision-capable LLM control any app on the same iPhone without a Mac at run time, requiring only a one-time USB pairing file generated from a Mac. The app runs on iOS 26 or later with Developer Mode enabled, mounts a developer image and uses a loopback VPN at 10.7.0.1 to send screenshots to a model via an OpenRouter key or any OpenAI-compatible endpoint, which returns tool calls to tap, swipe, type or open apps, at a few seconds per step. The build must be sideloaded because it needs developer services, and it requires a paid Apple developer team for the built-in VPN or a re-signed LocalDevVPN every 7 days with a free Apple ID. Let an AI model use your iPhone, from the iPhone itself. No Mac at run time one-time pairing only , no extra hardware, no jailbreak. Left: "Select a Lyft to the Eiffel Tower don't book yet " 4× speed : the agent leaves its own app, opens Lyft, types the destination, picks it and stops at the ride options. Middle: the finished run, each step with its screenshot. Right: a new chat. - No computer at run time: the agent runs on the iPhone and controls that same iPhone, no extra hardware or jailbreak. A Mac is only needed once, to make the pairing file - Start it from anywhere: the chat, Siri, the "Run Agent" Shortcut or an iphoneuse://run?prompt=… link. | Part | Notes | |---|---| | iPhone | iOS 26 or later, Developer Mode on. | | Apple account | Paid team: the app uses its own built-in VPN needs the Network Extension entitlement . Free Apple ID: build with BUILTIN VPN=NO Xcode build setting or xcodebuild argument and install LocalDevVPN https://apps.apple.com/app/localdevvpn/id6755608044 ; re-sign every 7 days. | | Pairing file | Made once from a Mac over USB below . | | Vision model | An OpenRouter https://openrouter.ai/settings/keys key, or any OpenAI-compatible endpoint whose model takes images and tool calls. | | Mac with Xcode + rustup | Only to build the app and make the pairing file. Not needed at run time. | - Shortcut needed on cellular: iOS refuses new loopback VPN connections on cellular data, so the app runs a Cellular Toggle shortcut that turns data off while it connects, then back on or turn it off by hand . - No other VPN at the same time: it needs a loopback VPN the built-in one, or LocalDevVPN https://apps.apple.com/app/localdevvpn/id6755608044 , and iOS allows one VPN at a time, so Tailscale and similar stop while it is on. - "Viewed remotely from Mac" notice on every run: iOS shows "Device Hub: This device was viewed remotely from Mac" when its developer services are used, even though the "Mac" here is the app itself. Nothing leaves the phone except calls to LLMs . - Permissions: requires Developer Mode, a VPN configuration, Local Network access to find the phone's pairing service , and Location set to "Always" keeps runs alive in the background, alongside silent audio . Microphone only for voice prompts. - Pairing files expire: make a new one when the app says so. - Sideloaded build only: it needs Developer Mode and developer services, so it can't go on the App Store. - A few seconds per step: most of it is the model. flowchart LR subgraph App "iphone-use-app" L "LLM calling" D "Mount developer image" O "Orchestrator" end L <-- "screenshot + history /