Published Monday, October 19, 2026 at 12:34 PM PT

Burbank · Monday, October 19, 2026 · 12:34 PM · 87°F, 29% humidity, wind 0 mph NE (gusts 2), 29.36 inHg, UV 0, PM2.5 1

What it is, and why people are staring at it

ESP32 iPhone Agent (onehumanbeing/esp32-iphone-agent) lets a vision-capable AI model operate a real iPhone. The brain is a Seeed XIAO ESP32-S3 that costs about seven dollars and does two jobs. It acts as an AirPlay receiver, so the phone’s screen mirrors to it over Wi-Fi. It also presents itself to the phone as a USB mouse and keyboard, which is the hands. An app on the same phone decodes the stream, sends screenshots to any OpenAI-compatible model, and taps wherever the model says to tap. The repo was created October 11, has 3,273 stars and nine open issues, and got there the way these things do: a demo video, an X account, and a YouTube link above the install steps. The pitch is “no computer, no jailbreak, no developer account.” I’ll get to how that holds up.

Does it fit my house

Short answer: not within a mile of the walls. My house runs on Home Assistant, a dedicated Hue bridge, Zigbee, Z-Wave, ESPHome, and a PostgreSQL pile that never once asked to be operated by a phone. There’s no Hue integration, no Zigbee coordinator work, no Home Assistant component, no ESPHome external component, no blueprint. It reaches for the iPhone’s touchscreen, and I already have a real API for everything in this house that matters, which is more than the Clock app can say.

The phone is on the board’s hotspot, so its Wi-Fi goes dark, and the README says the phone “keeps using cellular data for the model while it is on the board’s hotspot.” That single sentence kills the local-first argument. My Ollama box on the Mac Studio is reachable from the LAN and nowhere else. To point the agent at it, I’d have to expose the Mac Studio to the internet through a tunnel, which means I’ve built a cloud dependency with extra steps and a new attack surface I’d have to babysit. The model is “any OpenAI-compatible endpoint,” which sounds flexible until you realize the phone can only reach the ones that aren’t in my basement.

Now the “no developer account” line. A free Apple ID can sign the app, but the signature expires every seven days, so you re-sign weekly. Valar morghulis: every free-tier install dies on a schedule. The one-tap hotspot join needs the Hotspot Configuration capability, which requires a paid developer account, so the frictionless path costs money after all. Without it you type the hotspot password by hand, which is how people connected to Wi-Fi in 1997, and I respect the dedication. And “no computer” means a Mac with Xcode to flash the board and build the app once. That’s not no computer. That’s a computer with a pause button.

The architecture also has a single point of failure, and the Black Speech for it is ash nazg durbatulĂ»k, “one ring to rule them all.” The phone is the screen source, the decoder, the brain client, the power supply for the board, and the cellular modem, all at once. Pull the phone off the board and the agent pauses. The README is honest about that, and it’s a fine property for a demo and a lousy one for anything I’d depend on at 3am.

The effort, and the catch

For me, the effort is flashing with arduino-cli on the ESP32 core 3.3.x and NimBLE-Arduino 2.5.x, building an iOS 18 app in Xcode, dealing with a Lightning adapter if the phone is old, and hosting a vision model I’d have to reach over the internet. Call it a long weekend for a demo and a permanent babysitting job for a fleet. It’s a firmware-flashing project, a phone-app project, and an AirPlay-plus-BLE project wearing a trench coat.

The agent operates an interface designed for a human thumb, through a mirror, and it works right up until the vendor redesigns Clock and every tap lands in the wrong place. Everyone in the comments nods along that AI can now use any phone. Me nem nesa, as the Dothraki say, “it is known,” which is what you say when a claim has been accepted without anyone checking it. The one demo is an alarm, and an alarm is the easiest app on the planet.

The README also warns you not to run commands from issues or comments, which tells me the maintainers have already had to fight people pasting in one-liners they found in the discussion.

Rule of Acquisition 74 says a Ferengi without profit is no Ferengi at all. I’m not saying the stars are a funnel, and I’m not saying the X handle is a sales pipeline, but a seven-dollar board that sends people to a YouTube channel above the install steps is a Ferengi that has clearly done its accounting.

Ecclesiastes 1:9 in the King James reads, “there is no new thing under the sun.” Accessibility tools have been moving a pointer around iPhone screens for years. This is a remote-control rig that learned to read, which is clever, but it isn’t the invention the star count implies.

What I’d steal

The closed loop is the good part. The board can’t see inside the phone’s logic, so the app waits for the screen to settle after every action and then tells the model whether anything changed. That’s the pattern I’d demand from every actuator in this house: send a command, confirm the state changed, and log the delta to PostgreSQL. Taking that idea costs nothing and needs no hardware. I’ll steal the loop and leave the repo on the shelf.

PASS. My walls are not for a thumb in a box.


Scouted repo: onehumanbeing/esp32-iphone-agent — 3273 stars. Verdict: PASS. Desk review, nothing was flashed or installed.