onehumanbeing/esp32-iphone-agent

出典
GitHub
初登場日
分野
エージェント
GitHubスター数
2,003
主な言語
Python

外部のオープンソース リポジトリを紹介するページです。HDATFの製品ではありません。

onehumanbeing/esp32-iphone-agent

何をするか

ESP32 iPhone Agentは、PythonのサーバーとArduinoのファームウェアからなるMITライセンスのプロジェクトで、AIのビジョンモデルにMac、Xcode、開発者アカウント、スマートフォンのアプリ、脱獄なしで実機のiPhoneを操作させます。人が使う経路である画面とポインターでiPhoneを自動化したい開発者と趣味の制作者が対象で、READMEは、自分が所有するか使用を許された端末とアカウントだけを自動化し、各アプリの規約を守るよう求めています。スマートフォンの画面はAirPlayでmacOSかLinuxのコンピューター上のUxPlayにミラーリングされ、GStreamerがJPEGのフレームに変え、USB端子に挿したESP32-S3ボードは標準のUSBマウスとキーボードとして認識されます。iOSのAssistiveTouch(画面にポインターを表示するアクセシビリティ設定)をオンにすると、クリックがタップに、ドラッグがスワイプになり、ボードは2.4GHzのWi-Fiで受け取ったclickやtypeなどの1行のコマンドだけを実行します。判断はすべてコンピューター上のFastAPIサーバーが担い、そのコードではWeb APIとボードのポートが既定でログインの仕組みなしにすべてのネットワークインターフェースで開かれ、コマンドはTCP上を平文でやり取りされます。ユーザーが8890番ポートのWeb画面に目標を入力すると、plannerモデルが最大6段階の計画を書き、actorモデルが新しい画面写真ごとにtapやswipeなどの動作を0から1000の座標で最大6個返します。ポインターは相対移動で動くため、サーバーはポインターを少し揺らしてミラーリング画面上で見つけて補正し、動作ごとに画面が変わったかを確かめてモデルに伝え、効果のない同じ動作が繰り返されると計画を立て直します。1回の実行は40段階か3回連続のエラーで終わり、Web画面は判断ごとに根拠になった画面写真の上に動作を描いたstep wallと、Escキーでも作動する緊急停止を表示します。準備するものは、ファームウェアを書き込んだESP32-S3ボード(試験用のボードは約7ドルのSeeed XIAO ESP32S3)、USB-CのiPhoneかカメラアダプターを使うLightningのiPhone、Python 3.10以上です。モデルは画像を受け付けるOpenAI互換のチャットAPIであればよく、plannerとactorに別々のモデルを使え、呼び出しごとに現在の画面写真が送られるため、クラウドのAPIを使うとスマートフォンの画面に映る内容がその提供元に渡ります。開発と時間の計測はNVIDIA DGX Spark 2台のローカルモデルで行われ(動作ごとに約1.3秒、計画ごとに2秒)、同梱のserveフォルダーのサーバーはエージェント全体の実行での試験が未実施の実験用です。READMEが挙げる制限は、iOSがパスコード入力、Apple Pay、DRMの動画をミラーリングから外すためエージェントがその画面を見られないこと、スマートフォンがロックされるとミラーリングが止まること、入力はASCIIだけで横向きのアプリは未対応であることです。

ライセンス

MIT 寛容なライセンスです。著作権表示を残せば商用利用と改変ができます。

同じ分野のリポジトリ

  • T-Auto/dsh-ops
    dsh-opsはDeepSeek Harness(DSH)向けのサードパーティ製プラグインで、WindowsのAIエージェントに専用のbashとPowerShell 7、Rustのファイルツールを提供し、PowerShellのエラーの繰り返しにかかるトークンと時間を減らすことを目指しています。バージョン0.3.0はWindows x64のみに対応し、DSH 0.2.0-rc.2を対象として、Node.jsは22系の22.19以上か24以上が必要で、DSHのプラグインmarketplaceかnpxコマンドでインストールします。既定でオンのshell componentはops_bashを公開してホストのpwshツールに同梱のPowerShell 7を使わせ、システム既定のターミナルとPATHはそのままにします。同じく既定でオンのfile componentはファイルツールを別のRust workerで実行し、編集にはdry runとアトミックな置換を用意しています。既定でオフの2つのcomponentのうち、backgroundはdanger-full-accessのセッションでのみ長い処理を扱い、PTCはツールをコードからSDKで呼び出すPTC-onlyのセッションでのみops_batchを追加します。ops_batchはSHA-256による確認、各処理の前に書き込む項目ごとの状態、中断後の再開を備えてコピー、移動、削除を実行し、監査記録はworkspaceの所有者が書き換えられる.dsh-opsフォルダーの通常のローカル記録です。DSHのread-onlyとworkspace-writeのモードでは、任意のBashとPTCのコードが制限なしの代替経路を持たずにOS隔離(confinement)の中で実行されますが、Windowsのホストはこの隔離をpartialと報告します。danger-full-accessは設計上この隔離を迂回し、プラグインは現在のユーザーが所有するworkspaceの最上位フォルダーについて元の権限をバックアップしたうえで、そのフォルダーだけにWRITE_OWNER権限を加えます。同梱のbashとPowerShell 7は、圧縮サイズがそれぞれ161.2 MBと107.6 MBの任意のnpmパッケージとして入り、registryのミラーにこのパッケージがない場合でもインストールは警告なしに終了コード0で終わります。READMEにあるトークン97パーセントと65パーセントの削減は作者自身のbenchmarkによる値で、PTCの設計文書は固定の削減値と実際のモデルターンのbenchmarkを示したものはないと明記しています。LICENSEファイルはプラグインをMIT、FastCtxをApache-2.0とし、同梱のシェルはGPL(Git for Windows)とMIT(PowerShell)の条件に従い、PROVENANCE.mdはGPLのソース提供の義務をまだ確認していないと書いています。文書には、DSHのバージョンごとの実際のインストールは確認されていないことと、2026-10-08に以前のバージョンがツール登録の衝突ですべての新しいDSHセッションを失敗させたことが記されており、今の設計は自分のツールだけを登録してこれを避けています。
  • mksglu/context-mode
    Context Modeは、AIコーディングエージェントを使う開発者向けのMCPサーバー兼hookプラグインで、大きなツール出力をcontext windowの外に置き、会話の圧縮(compaction)の後に作業状態を復元します。11個のMCPツールのうち、ctx_execute、ctx_batch_execute、ctx_execute_fileは12言語のコードを別のサブプロセスで実行し、出力された結果だけをcontextに渡します。ctx_index、ctx_search、ctx_fetch_and_indexはMarkdownと取得したWebページをSQLite FTS5のインデックスに保存し、BM25で順位付けした一致部分だけを返します。hookはcurl、wget、web fetchの呼び出しをこれらのツールへ回し、ファイル編集、git操作、エラー、ユーザーの決定をプロジェクトごとのSQLiteデータベースに記録し、READMEは--continueなしで新しいセッションを始めると以前のセッションのデータを削除すると書いています。会話の圧縮後には分類ごとの要約と検索呼び出しを含む再開用のsnapshotを挿入し、固定したcommitのコードはREADMEが示す2 KBの制限を無視します。Node.js 22.5以上かBunが必要で、Claude Codeではmarketplaceからプラグインとしてインストールし、ほかのクライアントでは設定ファイルにMCPサーバーとhookの項目を加えるか、専用のプラグインを使います。MCPサーバーだけをインストールした場合は自動のroutingなしでツールだけを使え、セッションの継続はClaude Codeなどでは完全、Cursor、Codex CLI、Kiroでは一部で、Antigravity IDEとZedにはありません。READMEは端末の外に出るデータとtelemetryはないと明記していますが、サーバーは起動時にnpm registryで最新バージョンを確認し、ctx_insightはcontext-mode.comのInsightダッシュボードを開きます。READMEに説明のないhooks/platform-bridge.mjsは、platform.jsonにAPI keyとサーバーのアドレスがある場合、一部の秘密値の形式、メールアドレス、ホームフォルダーのパスを隠したうえで、すべてのセッションイベントを設定されたInsightサーバーへ送ります。ctx_execute_fileはプロジェクトフォルダーの中に制限されますが、READMEはctx_executeとctx_batch_executeがプロセス自身のファイルアクセス権限で任意のコードを実行すると明記し、ホスト側のsandboxを有効にしておくよう勧めています。ユーザーのpermissionのdeny規則はsandboxツールの中にも適用され、ctx_fetch_and_indexはCTX_FETCH_STRICT=1を設定するまでローカルとプライベートネットワークのアドレスを許可します。LICENSEファイルはElastic License 2.0(ELv2)で、利用、改変、再配布を認める一方、第三者へホスト型またはマネージドサービスとして提供することとライセンス表示を消すことを禁じています。
  • rociiu/talorys
    Talorysは一人のオーナーが自分のCloudflareアカウントにデプロイして使う個人向けAIアシスタントで、チャット、記憶、タスク、ノート、プロジェクト、リマインダーを一つのブラウザアプリにまとめており、リポジトリはバージョン0.1.4を説明しています。登録手続きはなく、オーナーのパスワードはローカルでPBKDF2-SHA256によりハッシュ化されてCloudflareのシークレットとして保存され、公開されるpages.devのアドレスはそのパスワード、SameSite=Strictのセッションクッキー、ログイン失敗時のロックで保護されます。リクエストはReact画面を持つCloudflare Pagesアプリから公開URLのない非公開Workerへ渡され、Cloudflare Agents SDKで作られた一つのDurable Objectが会話、記憶、タスク、ノート、プロジェクト、自動化、設定、使用量をSQLiteに保管し、オーナーはセッションと認証情報を除いたバックアップファイルをダウンロードできます。入力はチャット欄に書く文章で、返答はWorkers AI(既定モデル@cf/zai-org/glm-4.7-flash)が作るMarkdownが生成され次第表示され、画面にはどのツールを呼んでいるかも表示されます。記憶はオーナーが閲覧、編集、削除できる事実と好みで、1ターンに最大8件が入り、本文の語句検索に合う項目を先に入れて最近の好みを4件まで補い、@cf/baai/bge-m3を使う意味検索は既定でオフで、オンにすると既定で1日500回の埋め込み上限がかかります。タスク、ノート、プロジェクトは画面とチャットのどちらからも編集でき、チャットでタスク、ノート、記憶の削除を頼むと削除の提案として表示され、オーナーがアプリでApproveを押すと実行されます。自動化は一回だけのリマインダーと繰り返しのリマインダー、AIを使わずに期限が近いタスクと期限切れのタスクをまとめるタスク要約、読み取り専用ツールだけを使い200語以内で答えるAIプロンプト実行に分かれ、毎日、選んだ曜日、毎月、15分から31日の間隔でDurable Objectのアラームに合わせて実行され、結果はアプリ内の通知センターに届き、読んだコードではプッシュ通知やメール送信の機能は確認できませんでした。既定の上限は1ターンあたり出力1,024トークン、ツール呼び出し6回、context 6,000トークン(超えると古い会話を要約)と、1日あたりAIリクエスト200回、予約AI実行6回で、それぞれ決められた上限まで引き上げることができ、AIの割り当てを使い切った後もタスク、ノート、記憶、リマインダーは動き続けます。デプロイはNode.js 22以上でnpx create-talorys@latestを実行し、ブラウザでのCloudflareログインか、Workers Scripts Edit、Cloudflare Pages Edit、Workers AI Read、Account Settings Readの権限を持つAPIトークンで進め、データは利用統計の送信なしでオーナーのアカウントに残りますが、チャットのメッセージとプロンプトに入った記憶はWorkers AIの推論のためにCloudflareが処理します。READMEはWorkersの無料プランに収まるように設計し、使用量にはCloudflareが定めて変更しうる上限があると書いており、執筆時点のCloudflareの基準ではWorkers AIは1日10,000 Neuronsまで提供されるため、無料プランではそれを使い切るとUTC 00:00のリセットまでチャットが止まり、有料プランは月額最低5ドルで追加のNeuronsを1,000あたり0.011ドルで請求します。
  • FeiZhuLulu/DeepSeek-Bot
    DeepSeek-Bot(DS Bot)はDeepSeek Harness(DSH)にインストールするボットプラグインで、名前と役割を持つ複数のボットを作って会話し、グループで仕事を任せる機能を加えます。複数のAIボットに仕事を分けて任せたいDSHユーザーが対象で、リポジトリはDeepSeekの公式製品とは別の独立したコミュニティプロジェクトだと明記しています。各ボットは名前、役割、指示文、モデルを個別に持つDSHセッションで、message_bot、create_bot、update_bot、ask_userのツールで互いにメッセージをやり取りし、既定のボットChiefがほかのボットを管理します。グループ会話では管理者ボットが既定で答え、メンションでほかのボットに順番を渡すかPASSの表示で発言を飛ばし、メンバーごとにグループ別の隠れたセッションを持ちます。ボットはDSHの会話圧縮の代わりに、contextの使用率が0.8に達すると別の小さなモデル呼び出しでチェックポイントを残します。記憶はボット別の範囲とチームの範囲に分かれ、remember、forget、recallのツールと毎ターン後の見直しで管理され、項目ごとに300文字、MEMORY.mdは4,000文字といった上限があり、秘密値に見える内容は拒否します。Web検索はプロフィールで指定したプロバイダー、モデル経路の検索、公開されたBingとDuckDuckGoの結果ページの順に試し、Desktopのボットブラウザはボットごとに分けた読み取り専用の画面で、パスワードとカードの入力欄を飛ばしてページをMarkdownとして読みます。request_secretはユーザー入力カードで受け取った値をシェル変数としてのみ渡し、state.jsonとログからは除外すると説明していますが、そのままコピーされた値だけが隠され、エンコードしたり分割したりした値は漏れる可能性があり、Windowsではファイル権限600が効かず、httpで開いた画面では値が平文で送信されます。インストールはDSH Desktop(Windows、macOS)のPluginsメニューのAdd pluginで行うか、DSH WebでNode.js 22.19以上とpnpmを使って設定一式を構成する方法で、DSHのインストールとプラグインの接続は別の段階です。文書はv0.1の初期公開版のため機能、ツール、保存形式が変わる可能性があり、Linuxのdsh 0.2.1-alpha.1で試験したと明記しており、データは既定でユーザーフォルダーの.dsh/bot以下に保存され、使用量の画面は費用なしでトークンだけを表示します。
  • docker/docker-agent
    docker-agentはDockerが提供するAIエージェント実行ツールで、YAMLファイルにエージェントを定義し、docker agentコマンドで実行します。YAMLにはモデル、指示文、toolset、サブエージェント、代替モデル、反復回数の上限、skillを書きます。ツールはDocker MCP Gateway、ローカルのstdio、リモートのHTTP方式のMCPサーバーとして接続し、think、todo、memoryなどの組み込みツールも使えます。memoryはユーザーのホームフォルダにあるSQLiteファイルに保存され、RAGはBM25とembeddingを組み合わせた検索とrerankingに対応します。モデルはOpenAI、Anthropic、Gemini、Bedrockなどの外部プロバイダーか、Docker Model Runnerのローカルモデルから選び、APIキーは利用者が設定します。インストールはDocker Desktop 4.63以降に同梱されたプラグインを使うか、Homebrewと配布バイナリで行います。副作用のあるツールは実行前に利用者の確認を求めるのが既定で、拒否、許可、確認の順に適用される権限ルールを置けます。--yoloオプションはすべてのツールを自動承認し、サンドボックス実行には別途Docker Sandboxesのインストールが必要で、作業フォルダは書き込み可能な状態で接続されます。PATH上のclaudeやcodexなどのCLIに作業を渡す機能、セッションDBを持つREST APIサーバー、OCIレジストリによる共有、保存したセッションを再実行する評価機能もあります。利用情報の収集(telemetry)が既定で有効で、ドキュメントは収集データに秘密情報や個人情報が含まれないと想定しないよう求めています。

Trendshiftのランキングに入ったリポジトリだけを載せ、リストは候補を探すためだけに使いました。順位の数字は転載していません。説明、ライセンス、スター数は各GitHubリポジトリで確認しました。解説は私たちの判断です。これらを試験したわけではなく、上昇リストに載ったことは品質の証明ではありません。

GitHubで見る (新しいタブで開きます)