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 沒有給出成功率或失敗率的評測,演示效果以作者展示為準。