ESP32 iPhone Agent: Ein rund 7 Dollar teurer ESP32 als „Hände“ und AirPlay-Spiegelung als „Augen“ lassen ein Bildmodell ein echtes iPhone bedienen

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

onehumanbeing/esp32-iphone-agent ist ein Python-Projekt unter MIT, angelegt am 11. Oktober 2026, mit etwa 1.500 Sternen beim Schreiben. AirPlay-Spiegelung schickt den iPhone-Bildschirm an einen Rechner, und ein am Telefon steckender ESP32-S3 arbeitet als USB-Maus und -Tastatur, gesteuert von einem beliebigen OpenAI-kompatiblen Bildmodell. Auf dem Telefon wird nichts installiert, und weder Mac, Xcode noch Entwicklerkonto sind nötig. Zuverlässigkeitszahlen nennt das Projekt nicht, die Demos stammen vom Autor.

onehumanbeing/esp32-iphone-agent ist ein quelloffenes, in Python geschriebenes Projekt unter der MIT-Lizenz. Es wurde am 11. Oktober 2026 angelegt, der letzte Push war am 13. Oktober, und es hat beim Schreiben etwa 1.517 Sterne und 194 Forks. Das Versprechen ist eine Zeile: ein KI-Modell ein echtes iPhone benutzen lassen, mit einem rund 7 Dollar teuren ESP32, ohne Mac, ohne Entwicklerkonto und ohne Jailbreak. Demovideos und Neuigkeiten gibt es auf dem X-Konto des Autors und auf YouTube. Das README nennt zwei Beispiele. Im ersten lautet die Aufgabe „Öffne Whiteboard und zeichne ein Smiley“, und der Agent sucht die App, öffnet sie und zeichnet das Gesicht in durchgehenden Strichen. Im zweiten lautet sie „Stelle einen Wecker auf 7:00 Uhr, der sich täglich wiederholt, und speichere ihn“, und der Agent öffnet Uhr, tippt 0700 ins Zeitrad, hakt die Tage unter Wiederholen mit mehreren Tipps auf einmal ab und speichert. Der Screenshot jedes Schritts, mit eingezeichnetem Tipp oder Strich, bleibt auf einer „Schrittwand“.

Warum dieser Weg? Das README erklärt, die meiste iPhone-Automatisierung steuere das Telefon über XCTest oder WebDriverAgent. Das braucht einen Mac, Xcode, eine signierte Hilfs-App und ein Apple-Entwicklerkonto, und die Signatur eines kostenlosen Kontos läuft alle 7 Tage ab. Dieses Projekt nutzt dieselben Wege wie ein Mensch, Bildschirm und Zeiger, sodass auf dem Telefon nichts installiert sein muss. Eine Vergleichstabelle im README sagt, dieser Ansatz brauche kein Entwicklerkonto und kein Xcode, laufe auf Mac oder Linux, installiere keine App auf dem Telefon und funktioniere in jeder App, auch in Spielen, weil er nur Pixel sieht. Werkzeuge vom Typ XCTest brauchen ein Entwicklerkonto und Xcode, laufen nur auf einem Mac, benötigen eine Test-Runner-App und hängen meist davon ab, was der Barrierefreiheitsbaum zeigt.

Technisch besteht es aus drei Teilen. Die Augen sind die AirPlay-Spiegelung: Das iPhone spiegelt seinen Bildschirm an UxPlay auf Ihrem Rechner, und eine GStreamer-Pipeline verwandelt den Strom in JPEG-Bilder für den Agenten und die Webseite. Die Hände sind eine USB-HID-Brücke: Ein am Telefon steckender ESP32-S3 erscheint als normale USB-Maus und -Tastatur. Bei aktiviertem AssistiveTouch bewegt die Maus einen runden Zeiger auf dem Bildschirm, ein Klick ist ein Tippen und ein Ziehen ein Wischen. Die Platine verbindet sich per WLAN mit dem Rechner und führt einfache Zeilenbefehle wie move, click und type aus, antwortet mit ok oder err, und alle Logik bleibt auf dem Rechner. Das Gehirn besteht aus einem Planer und einem Akteur. Der Planer schreibt aus Ziel und aktuellem Bildschirm einen kurzen Plan. Der Akteur schaut sich jeden neuen Screenshot an und wählt Tippen, Wischen, einen Pfad zeichnen, Eingeben, eine Taste drücken, zum Home-Bildschirm gehen oder Beenden. Beide Rollen können dasselbe Modell sein, und jedes OpenAI-kompatible Modell, das Bilder akzeptiert, funktioniert, über eine Cloud-API oder ein selbst betriebenes Modell.

Was diesen Weg gangbar macht, ist der geschlossene Regelkreis. Der Zeiger ist relativ, daher verfolgt der Server seine Position. Vor jedem Tippen wackelt er mit dem Zeiger, findet ihn auf dem gespiegelten Bildschirm und korrigiert Abweichungen, wobei er die Kalibrierung laufend verfeinert. Nach jeder Aktion prüft er, ob sich der Bildschirm wirklich geändert hat, und sagt es dem Modell, sodass ein verfehltes Tippen bemerkt und wiederholt wird, statt darauf aufzubauen. Wiederholte Aktionen lösen eine Neuplanung aus, und von einer unterbrochenen Verbindung oder einer schlechten Antwort kann man sich erholen. Die Weboberfläche zeigt das Telefon live, wo ein Klick tippt und ein Ziehen wischt, ein Live-Protokoll, die Schrittwand mit jedem Screenshot und der Begründung des Modells sowie einen Not-Aus. Auch Esc stoppt den Agenten und gibt den Zeiger frei. Mit HIDAGENT_DEBUG=1 speichert jeder Lauf zusätzlich einen Ordner mit steps.jsonl, das jeden Modellaufruf und jede Aktion enthält, und mit dem Screenshot, den jeder Aufruf sah.

Der Hardwarebedarf ist gering. Sie brauchen eine ESP32-S3-Platine. Der Autor testete die einfache Seeed Studio XIAO ESP32S3 ohne vorgelötete Stiftleisten, nicht die Sense-Kameraversion und nicht die Plus, für etwa 7 Dollar bei Seeed, und jede ESP32-S3-Platine, deren USB-C-Anschluss am nativen USB des S3 hängt, funktioniert. iPhones mit USB-C stecken direkt, Lightning-Modelle brauchen einen Lightning-auf-USB-Kameraadapter. Der Rechner läuft mit macOS oder Linux im selben Netz wie das Telefon und führt UxPlay und den Server aus. Für ein ganz lokales Setup nutzt die Entwicklungskonfiguration des Autors zwei NVIDIA DGX Spark mit Tensorparallelität (TP=2), um nvidia/Qwen3.8-Flash-Next-NVFP4 zu betreiben, bei etwa 1,3 Sekunden pro Aktion und 2 Sekunden pro Plan mit ausgeschaltetem Denkmodus.

Einige Punkte für Leser. Erstens ist all das Beschreibung und Demo des Projekts selbst. Das README nennt keine Erfolgsquote, Fehlerquote oder Auswertung über viele Aufgaben; sehen Sie eine Demo nicht als Beleg für Zuverlässigkeit. Zweitens steuert der Agent ein ganzes Telefon, kann also an E-Mail, Bank und Messenger-Apps kommen, und bei einem Cloud-Modell geht jeder Screenshot an den Modellanbieter. Nutzen Sie ein Testtelefon, melden Sie sich nicht bei wichtigen Konten an und halten Sie den Not-Aus griffbereit. Drittens senkt es die Hürde der iPhone-Automatisierung und auch die Hürde, ein Telefon über physischen Zugriff zu steuern, was für Tester bequem ist und ein Risiko, das Sicherheitsleute bedenken müssen. Insgesamt ist es ein cleveres kleines Projekt, das einen Versuch wert ist, aber noch ganz am Anfang.

Sources

FAQ

Wie „sieht“ und „handelt“ es?

Die Augen sind die AirPlay-Spiegelung: Das Telefon spiegelt seinen Bildschirm an UxPlay auf Ihrem Rechner, und eine GStreamer-Pipeline macht daraus JPEG-Bilder für den Agenten und die Webseite. Die Hände sind eine USB-HID-Brücke: Ein am Telefon steckender ESP32-S3 erscheint als normale USB-Maus und -Tastatur. Bei aktivierter iOS-Funktion AssistiveTouch bewegt die Maus einen Zeiger auf dem Bildschirm, ein Klick ist ein Tippen und ein Ziehen ein Wischen. Die Platine verbindet sich per WLAN mit dem Rechner und führt einfache Zeilenbefehle wie move, click und type aus; die gesamte Logik bleibt auf dem Rechner.

Wie stellt der Agent sicher, dass er an der richtigen Stelle tippt?

Der Zeiger ist relativ, daher verfolgt der Server seine Position. Vor jedem Tippen wackelt er mit dem Zeiger, findet ihn auf dem gespiegelten Bildschirm und korrigiert Abweichungen, wobei er die Kalibrierung laufend verfeinert. Nach jeder Aktion prüft er, ob sich der Bildschirm wirklich geändert hat, und sagt es dem Modell, sodass ein verfehltes Tippen bemerkt und wiederholt wird, statt darauf aufzubauen. Wiederholte Aktionen lösen eine Neuplanung aus, und von einer unterbrochenen Verbindung oder einer schlechten Antwort kann man sich erholen. Das Gehirn hat zwei Rollen: Ein Planer schreibt aus Ziel und Bildschirm einen kurzen Plan, ein Akteur wählt aus jedem neuen Screenshot die nächste Aktion. Beide können dasselbe Modell sein.

Welche Hardware braucht es, und welche Risiken gibt es?

Sie brauchen eine ESP32-S3-Platine. Der Autor testete die einfache Seeed Studio XIAO ESP32S3 für etwa 7 Dollar. iPhones mit USB-C stecken direkt, Lightning-Modelle brauchen einen Adapter. Der Rechner läuft mit macOS oder Linux im selben Netz wie das Telefon. Das Bildmodell kann jede OpenAI-kompatible API sein, in der Cloud oder lokal. Zum Risiko: Ein Agent, der das ganze Telefon bedienen kann, kommt an alle Ihre Konten. Die Webseite hat einen Not-Aus, auch Esc funktioniert. Mit einem Cloud-Modell gehen Screenshots an den Modellanbieter. Das README nennt keine Erfolgsquoten; sehen Sie die Demos als Schaufenster des Autors.