← 返回列表

新工具 GitHub · onehumanbeing/esp32-iphone-agent

用 $7 ESP32-S3 板加 iPhone Agent 应用,让视觉模型看屏并操作真实 iPhone

给模型一个目标(如“打开设置进入 Wi-Fi”),它通过 AirPlay 镜像看屏、用 USB HID 点击滑动输入完成任务,可回放导出轨迹

开始尝试

效果

README 附有真实手机与模型所见镜像的对照截图、App 界面截图和示例闹钟任务照片,并链接 X 与 YouTube 演示视频;本站不托管截图或视频

这是什么

新在哪里:以前让 AI 操作 iPhone 往往要越狱、开发者账号或电脑跑服务;现在一块约 $7 的 ESP32-S3 当 AirPlay 眼睛和 HID 手,agent 跑在同一台 iPhone 的应用里

怎么做到的:用 arduino-cli 装 NimBLE-Arduino 等库并通过 hardware/flash.sh 刷板(板子开热点并在屏幕镜像列表显示为 ESP32 Agent);用 Xcode 编译安装 IPhoneAgent 应用;App 内四步设置配对蓝牙、连接镜像、打开 AssistiveTouch 自校准指针、填入 OpenAI 兼容视觉模型端点与密钥;输入任务后由 planner/actor 循环执行点击、滑动、输入并检测画面变化

适合谁
有硬件动手能力和 Mac/Xcode 环境、想自己搭手机端 computer-use 的开发者与爱好者
能帮你
用一块低成本的板子绕开越狱与开发者账号,让模型通过看屏加 USB HID 真实操作 iPhone,并完整留痕可回放

评分 三项分开看,不合成总分;热度不等于好用

新颖性
全新做法 · 2026-10-12 出现
热度
未知
易上手
门槛较高
怎么评的

三项都由本站记录的事实按固定规则算出,编辑不能直接改档位;规则改动会写进更新说明。

新颖性

  • ●●● 全新做法,且有来源依据的出现时间在最近 30 天内
  • ●●○ 老工具新用法或近期刚开放,且有来源依据的时间在最近 30 天内
  • ●○○ 出现时间超过 30 天、未核实到精确日期,或已不再是新做法
  • 其他 出现时间未核实、晚于今天,或新颖类型未核实时按最低一档处理,不靠猜测加分

热度

  • ●●● 最近一次每周人工确认为“热门”:最近 14 天里独立讨论、实际案例、持续时间、传播平台、相对关注五项门槛全部满足(规则 heat-v1)
  • ●●○ 最近一次人工确认为“观察中”:前三项至少一项达到,或讨论增长 ≥ 50%,且至少 2 个独立案例
  • ●○○ 最近一次人工确认为“未进入跟踪”
  • 其他 还没有人工确认过的热度记录时显示“未知”。热度只统计本站已接入的信源,不代表全网

易上手

  • ●●● 准备门槛低且难度入门:不需要新账号或付费,首次尝试不超过 30 分钟,公开可用,会复制粘贴即可
  • ●●○ 准备门槛中等,或门槛低但需要改少量代码或配置
  • ●○○ 准备门槛高:需要商业软件或付费服务、首次尝试超过 2 小时、特殊硬件或网络、排队或邀请且无替代方案,或需要专业知识
  • 其他 只有介绍、还没有站内步骤,或关键步骤已失效时显示“暂不可试”;门槛未核实时显示“未核实”

怎么尝试

  • 时间 首次约 90 分钟
  • 费用 按量付费:仓库 MIT 开源,硬件约 $7 ESP32-S3 需自购,视觉模型按所选端点按量计费(原站未给出具体价格)
  • 账号 不需要新账号
  • 环境 ESP32-S3 开发板(需原生 USB 与 PSRAM,测试用 Seeed Studio XIAO ESP32S3 8MB PSRAM);iPhone iOS 18 或以上;Mac 上装 arduino-cli、ESP32 core 3.3.x、NimBLE-Arduino 2.5.x 与 Xcode(含 XcodeGen);OpenAI 兼容视觉模型端点
  • 准备 ESP32-S3 开发板:作为 AirPlay 接收端与 USB HID 鼠标键盘
  • 准备 iPhone(iOS 18+):运行 ESP32 Agent 应用并作为被操作设备
  • 准备 Mac + Xcode:刷板与一次性构建安装 iPhone 应用
  • 准备 arduino-cli 及 ESP32 core 3.3.x、NimBLE-Arduino 2.5.x:编译并烧录板子固件
  • 准备 OpenAI 兼容视觉模型端点与 API 密钥:提供读屏与决策的大脑
  • 准备 Apple ID(免费可签名,付费账号可用一键连热点):签名安装应用
  • 准备 USB-C 数据线或 Lightning 转 USB 相机转换器:连接板子与手机并供电

替代方案:没有有效替代方案。能做到:README 未列出同类免越狱、免电脑的手机端 computer-use 替代路径;原 Mac 版方案仍需电脑跑 UxPlay 与 Python 服务端;差别:。

完成替代方案不算复现本实践。

按下面的步骤就能做出第一个结果。复制命令不会自动执行。

  1. 刷入 ESP32-S3 固件

    在 Mac 上安装 arduino-cli、ESP32 core 3.3.x 与 NimBLE-Arduino 2.5.x,板子插到 Mac 后用 flash.sh 编译烧录(务必用该脚本以应用 nimble_cfg.h 中的 BLE 缓冲区配置)。

    bash原始来源命令
    arduino-cli lib install "NimBLE-Arduino@2.5.1"
    hardware/flash.sh

    预期结果:固件编译成功并写入板子,板子开热点且在手机屏幕镜像列表出现 ESP32 Agent

  2. 配置并构建 iPhone 应用

    复制配置示例并填好 DEVELOPMENT_TEAM 与 IA_BUNDLE_ID,然后用 Xcode 打开工程并在自己的 iPhone 上运行 IPhoneAgent scheme。

    bash原始来源命令
    cp ios/Config/Local.xcconfig.example ios/Config/Local.xcconfig
    open ios/IPhoneAgent.xcodeproj

    预期结果:应用安装到 iPhone 并能打开 ESP32 Agent

  3. 在 App 内完成四步设置

    板子插到 iPhone 后打开 ESP32 Agent,按向导依次完成 Plug Me In(蓝牙配对)、Let Me See the Screen(连板子 Wi-Fi 并在控制中心选屏幕镜像 ESP32 Agent)、Let Me Use the Pointer(打开 AssistiveTouch,应用自校准指针)、Give Me a Brain(填模型端点与密钥并选视觉模型)。

    预期结果:四项检查各自显示通过,镜像画面能在应用中看到

  4. 给模型布置一个任务

    在应用中输入目标并点 Start,例如“Open Settings and go to Wi-Fi”,过程中可在灵动岛或应用内停止。

    预期结果:模型逐步点击、滑动或输入,屏幕随之变化并最终停在目标界面

  5. 回放并导出这次运行

    到 Runs 打开刚才的运行,逐步回放带点击滑动标记的画面;需要时通过 ⋯ → Export trace 导出截图、动作与标注。

    预期结果:能看到每一步动作叠加在截图上的回放,并得到导出文件

原始来源:ESP32 约 7 美元让 AI 操控真机 iPhone ↗