droidrun/mobile-harness
Skills for controlling Android, iOS and cloud phones
Mobile Harness – Android および iOS 上の AI エージェント向けポータブル制御命令
概要 – 言語モデルベースの AI エージェントが実際の Android または iOS デバイスと通信できるようにする、軽量で Markdown 駆動のハーネスです。これはエージェントランタイムではありません。エージェントが UI アクションの実行、スクリーンショットの取得、アプリの起動などを行うために呼び出す Python API(mobilerun_core)を提供します。このハーネスは、ローカルデバイス(ADB または Portal HTTP サーバー経由)と、Mobilerun クラウドサービスを通じたクラウドホストデバイスの両方で動作します。
主な機能
- 1 回の呼び出しでデバイスに接続:
from mobilerun_core import Mobilerun m = Mobilerun() dev = m.connect("<id>", backend="cloud") - Android と iOS の統一 API:
ui()、screenshot()、start_app()、tap_node()、type()、scroll()など。 - アクセシビリティツリーで動作するヘルパーメソッド(
find_nodes、tap_text、scroll_until)。 - 自動機能検出(
device.capabilities、device.supports(...))。 - オプションのクラウドバックエンド(
MOBILERUN_CLOUD_API_KEYが必要)。 - ローカルバックエンド:
- ADB 経由の Android(より豊富な機能のためにオプションの Portal HTTP を使用)。
- Android Portal HTTP のみ。
- オープンソースの ios-portal HTTP サーバー経由の iOS。
- エージェントが作成するすべての状態(メモリ、資格情報、カスタムアプリカード)は、git 無視の
local/フォルダーに保存され、ユーザーデータをリポジトリから分離します。
ベンチマーク – 標準的なコーディングエージェントと GPT-6 スタイルのモデルを使用して、公開の AndroidWorld(116 タスク)および iOSWorld(133 タスク)スイートで評価されました。結果:Android の平均スコア 100%、iOS の平均スコア 98.24%、バイナリ合格率はそれぞれ 100% と 93.23% でした。詳細なタスクリプレイと方法論は README にリンクされています。
インストール
- リポジトリをクローンします。
- Python 仮想環境(Python 3.11-3.13)を作成し、コアライブラリをインストールします:
python -m venv .venv .venv/bin/pip install "mobilerun-core[local]" .venv/bin/python -c "from mobilerun_core import Mobilerun" - プラットフォーム固有のセットアップ(ADB、Portal サーバー、クラウド API キーなど)については
install.mdに従ってください。
AI エージェントの使用方法 – README には、エージェントにリポジトリのクローンとインストール手順の実行を指示する、コピー&ペースト可能な Agent Setup Prompt が用意されています。環境が準備できたら、エージェントは生成されたコードから直接 Mobilerun をインポートし、デバイスに接続し、機能をクエリし、UI アクションを呼び出すことができます。
配布 – このハーネスは、skills.sh CLI(npx skills add droidrun/mobile-harness)を介してスキルとしてエージェントに追加するか、Claude Code プラグイン(/plugin marketplace add droidrun/mobile-harness)として追加できます。どちらの方法でも同じ Python パッケージがインストールされ、local/ データディレクトリが適切なランタイムの場所に保持されます。
対象読者 – LLM 駆動のモバイル自動化エージェントを構築する研究者や開発者、特に Android と iOS の両方で一貫した言語モデルに優しい API を必要とする人々(デバイスがローカルでもクラウドでも)。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト