ESP32 Agent
插一块 40 元的板子,就能让 AI 操作你的 iPhone
iOS 不允许 App 去点按和滑动别的 App。Handsy AI(ESP32 iPhone Agent)的做法是从外面绕开这个限制,和人用手机的方式一样:看屏幕,再移动指针。一块小小的 ESP32-S3 板子插在 iPhone 的 USB 口上,充当 USB 鼠标和键盘,iPhone 再把屏幕镜像到这块板子。视觉模型看屏幕、决定下一步,板子把这一下点出去。不需要越狱,日常使用也不需要开发者账号。
下面从买板子讲到一次任务跑完,中间每一步都写清楚。
需要准备什么
| 项目 | 要求 |
|---|---|
| 板子 | Seeed Studio XIAO ESP32S3 标准版(8 MB 闪存、8 MB PSRAM),约 40 元 |
| iPhone | iPhone XS 或更新机型,iOS 18 或更高版本,开启蜂窝数据 |
| 线材 | 短的 USB-C 转 USB-C 数据线,约 30 厘米。只能充电的线不行 |
| Lightning 机型 | 再加一个 Lightning 转 USB 相机转换器 |
| 电脑 | Chrome 或 Edge,用来装固件 |
| 自行编译(可选) | 只在你自己编译 App 而不是用 TestFlight 时才需要一台装了 Xcode 的 Mac;运行时不需要 |
板子由手机供电,不用电池,也不用额外的电源。XIAO 不要买 Sense 或 Plus,买标准版。
AI 是怎么看见、又怎么点到屏幕的
手机和板子之间有三条链路,每条各管一件事。
画面走 AirPlay 出去
板子开启自己的 Wi-Fi 热点,在 iPhone 的「屏幕镜像」列表里显示为 ESP32 Agent。选中之后,手机通过 AirPlay 把屏幕镜像到板子上。板子不解码视频,只保留 H.264 码流,再通过自己的 Wi-Fi(TCP)转给 ESP32 Agent App。
指令走蓝牙 LE
蓝牙 LE 负责 App 和板子之间的指令与状态,Wi-Fi 不通时它也是画面的备用通道。
点按走 USB
插在手机的 USB 口上,板子就是一块标准的 USB HID 鼠标和键盘。打开「辅助触控」后,点击变成轻点,拖动变成滑动。板子还能输入文字、按键。
热点的没有外网,所以手机连着板子 Wi-Fi 的时候,调用模型走蜂窝数据。这也是上面要求开蜂窝数据的原因。
一步步装起来
- 把 XIAO ESP32S3 插到电脑上,用 Chrome 或 Edge 打开安装页,在浏览器里刷固件。这一步 iPhone 做不了。
- 在 iPhone 上装 ESP32 Agent App,通过 TestFlight 公开测试分发。
- 用那根短 USB-C 数据线把板子接到 iPhone 上(Lightning 机型加上相机转换器)。板子由手机供电。
- 在 iPhone 的辅助功能里打开「辅助触控」,鼠标点击才会被当作轻点。
- 连上板子的 Wi-Fi 热点,打开控制中心,点「屏幕镜像」,选 ESP32 Agent。
- 在 App 里填入任意兼容 OpenAI 接口的视觉模型的地址和密钥。
- 用一句大白话写任务,比如打开某个 App 找到某个设置,然后开始运行。
一次运行里发生了什么
App 解码镜像画面,把截图发给模型。它跑一个规划器和一个执行器:规划器算出下一步,执行器把它变成一组很小的动作之一,点按、滑动、画、输入、按键、回主页、结束。
鼠标指针是相对的,不是绝对坐标,所以 App 得知道指针在哪。它会跟踪指针,把它归位到角落。要精确点按时,先晃一下指针,在屏幕上找到它,再修正偏差。每个动作之后它会等画面稳定,并告诉模型画面有没有变化,模型不用猜。
板子、热点或镜像链路断了,运行会暂停,恢复后从同一步接着做,不会从头再来。
每次运行都存在手机上,可以逐步回放,看模型看到了什么、选了哪一步。要分享,进「运行」打开这次运行,点 ⋯,选「导出轨迹」。
手机 App 还是电脑:两种给大脑的方式
| ESP32 Agent App | 电脑上的 Handsy CLI | |
|---|---|---|
| Agent 在哪跑 | iPhone 上 | 你的电脑上 |
| 画面通道 | 板子 Wi-Fi(TCP),蓝牙兜底 | 蓝牙 |
| 模型 | 任意兼容 OpenAI 接口的视觉模型 | 你自己跑的 Agent,通过 MCP 或 CLI |
| 安装 | TestFlight | npx -y esp32agent |
想让手机自己干活,用 App 最省事。已经在电脑上跑 Agent、想把手机变成它一个工具的人,用 CLI 更合适。这条路线在从 Claude Code 操作 iPhone 里写得更细。
上手前该知道的限制
- 蓝牙 LE 大约 300–500 kbps,所以镜像画面不大(480×1040,最高 5 fps)。每一步要几秒,其中大部分是模型在思考。
- iOS 不会镜像密码输入、Apple Pay 和 DRM 视频,这些画面 AI 看不到。
- 手机锁屏后镜像会停。
- 键盘只能输入 ASCII 字符。
- 横屏 App 目前不支持。
这些限制决定了它适合普通竖屏 App 里的多步任务,不适合游戏或者需要快速反应的事。
开源
项目在 GitHub,采用 MIT 许可。固件里的 AirPlay 接收器是唯一的例外,为 GPL-3.0。
开始动手
买一块 XIAO ESP32S3,找一根数据线,照着安装指南刷好固件、装好 App。想按每个界面慢慢走一遍,看快速上手文档。
相关:iPhone 的 MCP 服务器 · ESP32 iPhone Agent 安装 · 从 Claude Code 操作 iPhone · 工作原理