ESP32 iPhone 操作代理
用 ESP32-S3 和视觉模型自动操作真实 iPhone,无需运行时电脑。
- Star 数
- ★ 3.2k
- 最近更新
- 1 天前
- License
- MIT
- 主语言
- C
- FA 评分
- 58/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 想用自然语言设置闹钟的 iPhone 用户,可让代理打开时钟、填写时间、选择重复日期并保存。
- 不适合
- 需要横屏应用自动化的用户
- 需要输入非 ASCII 字符的用户
- 无法使用蜂窝数据连接模型的用户
- 源码审查
- 58/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
这是一个由 iPhone 应用和 ESP32-S3 开发板协作运行的手机操作代理。开发板通过 AirPlay 接收 iPhone 屏幕镜像,并通过 USB HID 模拟鼠标和键盘;应用经 BLE 接收画面,再将截图发送给兼容 OpenAI 的视觉模型。应用中的规划器和执行器根据模型结果执行点击、滑动、绘制、输入文字、按键、返回主屏幕或结束任务等操作。开发板使用自己的 Wi-Fi 热点连接手机,模型请求则通过蜂窝网络发送。首次刷写固件和构建应用需要装有 Xcode 的 Mac,运行任务时不需要电脑。
将 ESP32-S3 插入 iPhone,在应用中通过 Bluetooth 配对开发板,连接其 Wi-Fi 热点并在控制中心选择“ESP32 Agent”进行屏幕镜像。应用解码开发板经 BLE 转发的 H.264 画面,将截图发送到配置的视觉模型端点,由规划器和执行器生成并执行点击、滑动、绘制、ASCII 键盘输入、按键或返回主屏幕等动作。每步结束后,应用等待画面稳定并检查变化;连接中断时会暂停并从当前步骤恢复。每次运行保存在手机中,可逐步回放,也可导出截图、动作和标注。
- 想用自然语言设置闹钟的 iPhone 用户,可让代理打开时钟、填写时间、选择重复日期并保存。
- 需要重复进入 iOS 设置页面的用户,可让代理打开设置并导航到指定页面。
- 希望在没有运行时电脑的情况下操作 iPhone 的个人用户,可使用手机应用和插在手机上的 ESP32-S3。
- 测试手机自动化流程的开发者,可回放运行步骤,并导出截图、动作和标注供分析。
- 运行自托管视觉模型的用户,可将应用配置为连接 vLLM、SGLang、llama.cpp 或 Ollama 等兼容端点。
如何安装或部署这个 Agent?
首次安装需要一台 Mac:安装 arduino-cli、ESP32 core 3.3.x 和 NimBLE-Arduino 2.5.1,然后刷写开发板。再复制 Xcode 配置示例,填写开发团队和应用 Bundle ID,并用 Xcode 将 IPhoneAgent scheme 安装到 iPhone。项目由 XcodeGen 根据 ios/project.yml 生成。免费 Apple ID 可用于签名,但需要每 7 天重新签名;一键加入热点需要付费开发者账号提供的 Hotspot Configuration capability。
如何使用这个 Agent?
把开发板插入 iPhone 并打开 ESP32 Agent 应用。按应用引导完成蓝牙配对、加入开发板热点、在控制中心开启 Screen Mirroring,以及启用 AssistiveTouch 和指针校准。随后输入视觉模型端点和密钥,再输入任务并点击 Start。
这个 Agent 有哪些优点和局限?
- AirPlay 接收和 USB HID 操作集成在 ESP32-S3 开发板中,任务运行时无需电脑。
- 应用支持任意兼容 OpenAI 且接受图像的聊天 API,包括云端服务和自托管端点。
- 运行记录保存在手机上,可逐步回放并导出截图、动作和标注。
- 连接丢失时会暂停任务,并从同一步骤恢复。
- 需要 iOS 18 或更高版本的 iPhone、带原生 USB 和 PSRAM 的 ESP32-S3,以及首次刷写和构建用的 Mac 与 Xcode。
- BLE 带宽约为 300–500 kbps,镜像约为 480×1040、最高 5 fps,每个步骤通常需要几秒。
- 应用使用私有 iOS suspend API;项目说明此实现尚需在上架 App Store 前替换。
- 仅支持 ASCII 输入和竖屏坐标;锁屏或部分密码、Apple Pay、DRM 视频画面无法镜像。
这个 Agent 与同类方案有什么区别?
相较于 VersaiOS,本项目不需要运行 UxPlay 的电脑,并支持连续多步指令;相较于 ja1chen/actell,本项目不依赖 Developer Mode 和 Developer Disk Image;相较于 boboabw/phone-agent,本项目还通过开发板上的 AirPlay 接收手机画面。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| ESP32 iPhone 操作代理 当前 | 58 · 缺口较多 | 桌面应用免费 + 模型费 | ★ 3.2k | 1 天前 | C | OpenAI API |
| mobile-use:自然语言操控手机的开源智能体 | 33 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 3.3k | 今天 | Python | OpenAI API · Claude API |
| AppAgent | 0 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 6.9k | 1 年前 | Python | OpenAI API |
| Nuphus 桌面自动化 MCP | 72 · 存在缺口 | MCP 服务器免费 + 模型费 | ★ 326 | 5 天前 | Rust | Claude.ai · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README说明应用将屏幕图像发送到兼容视觉模型、按步骤执行触控和键盘动作,并称模型密钥保存在 Keychain;安全文档列出 BLE、热点、AirPlay 接收器和未由用户启动的执行风险。启动任务需用户操作且可停止,但证据未展示细粒度权限控制、敏感截图处理、数据保留控制或动作撤销机制,因此这些方面扣分。README与 LICENSE 对 MIT 和 AirPlay 派生部分的 GPL-3.0 作了归属说明;未提供依赖漏洞审查证据。
README描述断连后暂停并从当前步骤恢复,CI 配置涵盖 iOS、固件和旧版服务器构建或测试,旧版测试还检查解析错误及无板连接错误。这支持一般可靠性,但给出的材料没有说明新 iOS 与固件路径的具体用户可见故障信息,故失败反馈仅给部分分。
README面向希望用真实 iPhone 自动化的用户,列出硬件、iOS、模型接口和配置要求;明确说明不能处理部分受保护屏幕、锁屏、横屏和非 ASCII 输入。任务从用户输入或已保存任务触发,边界及环境要求较清楚,但适用场景和触发条件仍以概述为主。
项目布局、快速开始、示例任务、相关文档和限制均有说明;MIT 许可及 AirPlay 代码的 GPL-3.0 例外清楚。当前架构与旧版标签、分支有交代,但未见正式变更日志;维护责任只由贡献入口、安全报告渠道及未验证发布者信息部分说明,因此相应得分有限。
产品把镜像、视觉模型规划和 USB HID 操作整合到手机自动化流程,并提供步骤回放与轨迹导出,具有明确用途。README也披露低带宽、低帧率、模型延迟及蜂窝网络依赖;没有材料量化成功率或成本收益,故不给满分。
README对硬件、安装、数据流和限制给出具体描述,CI 与旧版测试文件支持部分工程主张;但演示、兼容性和当前版本行为主要由 README 陈述,给出的文件之间独立交叉佐证有限。说明中区分当前版与旧版及已知限制,未把未执行的测试当作已验证结果。
- 执行会通过 USB HID 操作真实手机;只对获准使用的设备和账户运行,并在任务期间留意动作,确保停止入口可用。
- 屏幕图像会发送到所配置的视觉模型端点;配置云端端点时应考虑截图可能包含个人或敏感信息。
- 材料说明横屏、非 ASCII 输入、部分受保护屏幕及锁屏镜像不受支持;性能受 BLE 带宽和蜂窝网络影响。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.1.0 v0.1.0 — AirPlay + ESP32 USB HID (computer in the middle)
发布说明摘录
First tagged release: the original architecture, before the next big redesign. - Eyes: the iPhone mirrors its screen over AirPlay to UxPlay on a Mac or Linux computer. - Hands: a ~$7 ESP32-S3 plugs into the iPhone's USB port as a mouse + keyboard (AssistiveTouch pointer), connected to the computer over Wi-Fi. - Brain: any OpenAI-compatible vision model (demo: Qwen3.8-Flash-Next on two DGX Sparks). - No Mac required, no developer account, no jailbreak. Known limits: portrait apps only, ASCII-only typing, ~1.3 s per step. …在 GitHub 查看 ↗