コンテンツへスキップ
Phonegang

Phonegang

USBを介したアクセシビリティツリーによるAndroid端末の自動化。CLI、Python API、Claude Code向けMCPサーバー。

GitHub ← 全プロダクト

Phonegang はUSBを介してAndroid端末をアクセシビリティツリーで操作します。スクリーンリーダーが使う構造化データと同じものです。ピクセルのマッチングや座標のハードコーディングではなく、テキスト、リソースID、コンテンツ説明で要素を見つけます。CLI、Pythonライブラリ、Claude Code から直接スマートフォンを操作できるMCPサーバーとして提供されます。

インストール

git clone https://github.com/2389-research/phonegang.git
cd phonegang
uv sync

Python 3.10+、USBデバッグが有効なAndroid端末、PATHにADBが必要です。

できること

CLIコマンドで一般的な操作をカバーします: phonegang tap-text "Login"phonegang type "hello"phonegang screenshotphonegang scroll-to "Settings"。生のUIツリーのダンプ、接続デバイスの一覧表示、アプリ管理、back/homeナビゲーションも可能です。

Python APIDeviceManagerADBDeviceDeviceController を使えます。デバイスに接続し、アクセシビリティツリーをリフレッシュし、テキスト/クラス/リソースID/カスタム述語で要素を検索し、タップ、入力、スクロール、または要素の出現を待機します。ツリーオブジェクトはチェーンクエリをサポートします — すべてのボタンを検索し、サイズでフィルタリングし、クリック可能なものを取得。

MCPサーバーで高レベルツール (get_screentaptype_textwait_for) と低レベルツール (tap_xyswipepress_keyget_ui_dump) をMCP経由で公開します。Claude Codeの設定に追加すれば、自然言語でスマートフォンを操作できます。

仕組み

下から上へ4つのレイヤー:

  1. ADBレイヤーadb-shell をラップして生のデバイス通信 (シェルコマンド、ファイルプッシュ/プル、入力イベント) を処理
  2. アクセシビリティツリーパーサーuiautomator XMLダンプを、バウンド、テキスト、リソースID、クリック状態を持つクエリ可能なPythonオブジェクトに変換
  3. デバイスコントローラー — ADBと解析済みツリーを組み合わせて高レベル操作を実現 (find-and-tap、scroll-to-text、wait-for-element)
  4. CLI / MCP — コントローラーを人間とAIエージェントに公開するClickベースのCLIとMCPサーバー

必要要件

  • Python 3.10+
  • USBデバッグが有効なAndroid端末
  • ADB (Android Debug Bridge) — Android SDKに付属またはスタンドアロンでインストール
  • adb-shellclicklxml (uv sync で自動インストール)
GitHub で見る →
31 ページ · hugo 0.148.2 · 1ee4278 · 構築済み Aug 10 22:58
2389 Radio
2389 RADIO ステーションを選択