ESP32 iPhone Agent:用一块约 7 美元的 ESP32 当“手”、AirPlay 镜像当“眼”,让视觉模型操作真实的 iPhone

Published · AI Daily — AI-assisted deep research, methodology & disclosure

onehumanbeing/esp32-iphone-agent 是一个 MIT 许可的 Python 项目,创建于 2026 年 10 月 11 日,截至发稿约有 1500 个星标。它用 AirPlay 镜像把 iPhone 屏幕传到电脑,再让一块 ESP32-S3 以 USB 鼠标和键盘的身份接在手机上,由任何兼容 OpenAI 接口的视觉模型规划并点击。手机上不需要装任何软件,也不需要 Mac、Xcode 或开发者账号。可靠性数据项目没有给出,演示由作者自己展示。

onehumanbeing/esp32-iphone-agent 是一个开源项目,用 Python 写成,采用 MIT 许可,创建于 2026 年 10 月 11 日,最近一次推送是 10 月 13 日,截至发稿约有 1,517 个星标和 194 个分叉。它的卖点是一句话:让 AI 模型使用一部真正的 iPhone,只需要一块约 7 美元的 ESP32,不需要 Mac,不需要开发者账号,也不需要越狱。项目的演示视频和更新发布在作者的 X 账号和 YouTube 上。README 里给了两个例子:一个是“打开白板并画一个笑脸”,智能体会搜索应用、打开它并用连续笔画画出笑脸;另一个是“设一个每天早上七点重复的闹钟并保存”,它打开时钟,在时间轮上输入 0700,一次点几下勾选重复的日期,然后保存。每一步的截图都会连同点击或笔画的标记一起留在“步骤墙”上。

它为什么要这样做?README 解释说,大多数 iPhone 自动化是通过 XCTest 或 WebDriverAgent 驱动手机的,需要一台 Mac、Xcode、一个已签名的辅助应用和一个苹果开发者账号,而免费账号的签名每 7 天就会过期。这个项目走的是人用手机的同一条路径:屏幕和指针,所以手机上什么都不用装。项目给了一张对比表:这个方案不需要开发者账号、Xcode,电脑用 Mac 或 Linux 都行,手机上不装任何应用,因为它只看像素,所以连游戏也能操作;而 XCTest 类工具需要开发者账号和 Xcode,电脑只能是 Mac,需要装测试运行器,并且大多只能操作能通过无障碍树看到的界面。 技术上由三部分组成。“眼睛”是 AirPlay 镜像:iPhone 把屏幕镜像到电脑上运行的 UxPlay,GStreamer 管线再把视频流转成给智能体和网页使用的 JPEG 帧。“手”是一个 USB HID 桥:插在手机上的 ESP32-S3 被识别为标准的 USB 鼠标和键盘,iOS 开启“辅助触控”后,鼠标会移动屏幕上的圆形指针,点击等于轻点,拖动等于滑动;板子通过 Wi-Fi 连接电脑,只执行 move、click、type 等简单的行命令,回复 ok 或 err,所有逻辑都留在电脑上。“大脑”由规划器和执行器组成:规划器根据目标和当前屏幕写出简短计划,执行器看每张新截图,选择点按、滑动、画路径、输入、按键、回主屏或结束,两个角色可以是同一个模型,模型只要是兼容 OpenAI 接口、能接受图像即可,云端接口或自己运行的模型都行。

让这条路径可行的是“闭环”。指针是相对移动的,所以服务器要自己追踪它的位置:每次点击之前先晃动指针,在镜像画面里找到它并修正偏差,边用边细化校准;每次动作之后检查屏幕是否真的发生了变化,并告诉模型,这样漏掉的点击会被发现并重试,而不是在错误的基础上继续。重复的动作会触发重新规划,连接掉线或模型回复有误也可以恢复。网页界面提供实时手机画面(点击即轻点、拖动即滑动)、实时日志、记录每步截图与推理的“步骤墙”,以及紧急停止按钮;按 Esc 同样会停止智能体并释放指针。开启 HIDAGENT_DEBUG=1 后,还会为每次运行保存一个包含每次模型调用和动作的 steps.jsonl 与对应截图的调试目录。 硬件需求很少:一块 ESP32-S3 板,作者测试的是 Seeed Studio XIAO ESP32S3 的普通版本,不带预焊排针,不是 Sense 摄像头版,也不是 Plus 版,Seeed 官方售价约 7 美元,其他 USB-C 口直连 S3 原生 USB 的板子也可以;USB-C 的 iPhone 直接插,Lightning 机型要用 Lightning 转 USB 相机转接器;电脑用 macOS 或 Linux,并与手机在同一网络,运行 UxPlay 和服务器。如果想完全本地运行,作者给出的开发配置是用两台 NVIDIA DGX Spark 做张量并行(TP=2),运行 nvidia/Qwen3.8-Flash-Next-NVFP4,在关闭思考模式时每个动作约 1.3 秒、每份计划约 2 秒。

读者需要看清几点。第一,这些是项目自己的说明和演示,README 没有给出任务成功率、失败率或在大量任务上的评测,所以不要把演示当作可靠性的证明。第二,智能体控制的是一部完整的手机,意味着它可能碰到你的邮件、银行和即时通讯应用;用云端模型时,每一张屏幕截图都会发给模型提供方。建议先用一部测试机,不要登录重要账号,并随时准备好紧急停止。第三,它改变了“iPhone 自动化”的门槛,也同时降低了通过物理接入控制手机的门槛,这对测试人员是便利,对安全人员则是需要考虑的风险。总体上,这是一个构思巧妙、值得动手试一试的小项目,但还处在非常早期的阶段。

Sources

FAQ

它是怎么“看”和“动手”的?

“眼睛”是 AirPlay 镜像:手机把屏幕镜像到电脑上运行的 UxPlay,GStreamer 管线把视频流变成给智能体和网页用的 JPEG 帧。“手”是 USB HID 桥:一块插在手机上的 ESP32-S3 对手机表现为标准的 USB 鼠标和键盘,在 iOS 开启辅助触控后,鼠标会移动屏幕上的指针,点击就是轻点,拖动就是滑动。板子通过 Wi-Fi 连接电脑,只执行 move、click、type 之类的简单行命令,所有逻辑都在电脑上。

智能体怎么保证点得准?

因为指针是相对移动的,服务器要自己追踪位置。每次点击前,它会晃动指针,在镜像画面里找到它并修正偏差,边用边细化校准。每次动作之后,它会检查屏幕是否真的变了,并告诉模型,所以漏点会被发现并重试,而不是在错误的基础上继续。重复动作会触发重新规划,连接中断或回复有误也能恢复。“大脑”分为规划器和执行器两个角色,规划器根据目标和当前屏幕写出简短计划,执行器看每张新截图选择下一步,两者可以是同一个模型。

要什么硬件,有什么风险?

需要一块 ESP32-S3 板,作者测试用的是 Seeed Studio XIAO ESP32S3 的普通版本,约 7 美元;USB-C 的 iPhone 可直接插,Lightning 机型需要转接器;电脑用 macOS 或 Linux,并与手机在同一网络。视觉模型可以是任何兼容 OpenAI 的接口,云端或本地都行。风险方面:智能体能操作整部手机,意味着它能碰到你的所有账号,网页上有紧急停止按钮(也可按 Esc),使用云端模型时屏幕截图会发给模型提供方。README 没有给出成功率或失败率的评测,演示效果以作者展示为准。