同じiPhoneのアプリがAIに画面の判断を任せ、ESP32-S3がUSBでタップ・スワイプを送る自動化ツール
中辛 の解説
目標 → 画面 → 入力 → 再確認
ESP32 iPhone Agentは画像を読めるモデルに次の操作を問い合わせ、実際のiPhoneへタップ・スワイプを送るプロジェクトです。現在のmainでは、エージェントは同じiPhoneのアプリで動きます。
- iPhoneが基板のWi-Fiホットスポットへ接続し、AirPlayで画面を送ります。
- 基板が映像をBluetooth LEで同じiPhoneアプリへ返します。
- アプリが映像を画像へ復号し、モバイル通信でモデルAPIへ送って次の操作を受け取ります。
- アプリのBLE命令を、基板がUSBマウス・キーボード入力へ変えてiPhoneを操作します。
- 変わった画面を読み直して続け、実行記録をiPhoneに残します。
基板がAIモデルを実行するわけではありません。アプリが、選んだクラウドまたは自分のサーバーのモデルAPIを呼び出します。
初回と実行時の準備
- 初回導入: Mac・Xcodeでアプリをビルドし、ESP32-S3へファームウェアを書き込みます。無料Apple IDは7日ごとの再署名が必要です。ワンタップでホットスポットへ接続する有料機能がない場合は、手動でつなぎます。
- 使う機器: iOS 18以降のiPhoneと、ネイティブUSB・PSRAM対応のESP32-S3が必要です。公式の試験基板は8MB PSRAMの標準XIAO ESP32S3です。LightningのiPhoneにはカメラアダプターが必要です。
- 実行中: Wi-Fiはインターネットのない基板ホットスポットに使うため、モバイル通信から到達できるモデルAPIが必要です。別の制御用コンピューターは動かさなくてよくなります。
- iPhoneの設定: 基板のペアリング、ホットスポットと画面ミラーリング、AssistiveTouch、ポインター調整を進めます。
任せる前に確認
横画面と非ASCII入力は未対応で、日本語・韓国語は入力できません。ロックするとミラーリングが止まり、Apple Payや一部のDRM画面も表示されない場合があります。画像はモデルAPIへ送られるため、データの扱いと利用費用を確認します。
アプリの完了表示や画面の変化だけで、目標の達成は証明できません。アラームなら時刻・曜日・保存状態を直接確認します。必要ならDynamic Islandやアプリで停止できます。
旧版とは構成が変わっています
Mac/LinuxのUxPlay・Pythonサーバーを使う方式はv0.1.0/legacyに残っています。新しい構成の必須準備へ旧Pythonサーバーを混ぜないようにします。READMEのアラーム写真もv0.1.0の資料と明記されています。
2026年10月15日、main e035e424f492のUnreleased版。実機の接続、モデル実行、成功率の測定は行っていません。
こんなリポジトリです
こんなときに便利です
- アラームなど結果を直接確認できる小さなiPhone操作を試す
- 同じiPhoneアプリと基板で画面判断と入力をつなぐ構成を学ぶ
- 実行記録を再生し、AIが選んだタップ・スワイプを見る
主な機能
ほかとの違い
基板がAirPlay画面を受けてBLEで同じiPhoneアプリへ返し、アプリの命令をUSB入力へ変えます。初回のMac・Xcode導入は必要ですが、実行中の制御用コンピューターは不要な構成です。
このリポジトリの作り方
はじめてですか? むずかしくありません — 上から順にたどれば、自分の環境で動かして味見できます。
準備するもの
- 初回のアプリビルドと基板導入用Mac・XcodeおよびApple ID
- iOS 18以降のiPhoneとモバイルデータ通信
- ネイティブUSB・PSRAM対応ESP32-S3とiPhoneのUSB接続
- モバイル通信から到達できる画像対応モデルAPI
- Bluetoothペアリング・基板ホットスポット・画面ミラーリング・AssistiveTouch・ポインター調整
すぐに始める
main e035e424f492の公式READMEを要約した準備手順です。ギット飯が実機へ導入して検証した結果ではありません。
- 機器: Mac・Xcode、iOS 18以降のiPhoneとモバイルデータ通信、ネイティブUSB・PSRAM対応ESP32-S3、画像対応モデルAPIを用意します。Lightningにはカメラアダプターも必要です。
- 基板: arduino-cli、ESP32 core 3.3.x、NimBLE-Arduino 2.5.xを用意します。公式例では
arduino-cli lib install "NimBLE-Arduino@2.5.1"後にhardware/flash.shを実行します。BLEバッファー設定のため公式スクリプトを使います。 - アプリ:
ios/Config/Local.xcconfig.exampleをios/Config/Local.xcconfigへコピーし、DEVELOPMENT_TEAMとIA_BUNDLE_IDを設定します。ios/IPhoneAgent.xcodeprojをXcodeで開き、IPhoneAgentスキームをiPhoneで実行します。無料Apple IDは7日ごとに再署名します。 - 基板と画面: 基板をiPhoneへつなぎ、ESP32 AgentアプリでBluetoothをペアリングします。基板のWi-Fiへ接続し、画面ミラーリングでESP32 Agentを選びます。自動接続機能がない場合はアプリに表示されたパスワードで手動接続します。
- ポインターとモデル: AssistiveTouchを有効にして調整を確認します。モデルのエンドポイントとキーを入力し、モバイル通信から接続できるか確認します。
- 小さな目標: 結果を確認できる目標を入力してStartを押します。実際の設定を確認し、必要ならDynamic Islandまたはアプリから停止します。
App Store・TestFlight配布はまだ計画段階です。該当版の公式文書で条件と詳細なコマンドを確認してください。
ギット飯トライで味見
入れるのが面倒で少し不安だったなら — 安全スキャンからインストールまで、ターミナル一行で終わります。
ターミナルに貼り付ければ、ギット飯の安全スキャン → 隔離フォルダへ clone → インストール → 実行方法の案内まで自動です。はじめてでも大丈夫 — この一行だけです。
npx gitbap-try onehumanbeing/esp32-iphone-agent
Node.js さえあれば、インストールなしで動きます · ギット飯トライとは? →
スター推移 · 7日
確認日時
使いやすさ · まねしやすいか
- ゆるいライセンス
- テストあり
- サンプル集
- 最近の更新
- AGENTS.md
- llms.txt
- テンプレート
最近の更新あり · 2026 年に作成
「自動化・ワークフロー」 こういうリポジトリを毎週受け取りませんか?
毎週月曜の朝、選んだ一膳だけ。広告なし · いつでも解除。
自分のリポジトリですか? README にギット飯バッジを貼る
[](https://www.gitbap.com/r/onehumanbeing/esp32-iphone-agent)Claude からそのまま使う — ギット飯のつなぎ方
ギット飯を Claude につなぐと、こうしたリポジトリを Claude・Cursor・Codex から直接さがして試せます。
Claude の設定 → コネクタにこのアドレスを貼り付け。
https://www.gitbap.com/api/mcpプラグインを入れると /gitbap-trending·/gitbap-try のスラッシュコマンドで、その場でリポジトリを試せます。Claude Code で下の 2 行を順に実行してください。
/plugin marketplace add jakeparkcolde/gitbap-cowork/plugin install gitbap-cowork@gitbapAI が README をもとに要約しました · 原文を見る