Android 向けのモバイル GUI エージェントフレームワーク。
OpenGUI は、AI エージェントが実機上の Android アプリ UI を見て、理解し、操作できるようにします。
## Demo Demo 動画は近日追加予定です。 最初の Demo では、OpenGUI が実際の Android デバイス上でアプリを操作し、画面理解、タップ、入力、構造化された結果の返却までを示します。 ## Quick Start OpenGUI を最も早く試す方法は、Claude Code または Codex にブートストラップを任せることです。 ```text Read ./skills/open-gui-bootstrap/SKILL.md and help me run OpenGUI. Only ask me for phone-side actions. ``` 必要なもの: - Android スマートフォンまたはエミュレーター - USB デバッグの有効化 - AccessibilityService の有効化 - 実際のタスク実行に使うモデル API キー OpenGUI はリポジトリ内のスクリプトを使ってバックエンドを起動し、Android クライアントをインストールします: ```bash cd server ./start.sh ``` ```bash cd client ./start.sh ``` バックエンドと Android クライアントが起動したら、最初のタスクを送信します: ```bash cd server pnpm opengui -- devices --json pnpm opengui -- do "Observe the current Android screen and summarize what you see" --json ``` 手動セットアップガイド: [`docs/get-started.md`](./docs/get-started.md) ## 最近の更新 - `[2026.5.16]` [Codex / Claude Code リモートコントロール](./docs/codex-remote-control.zh-CN.md)を追加しました。ローカル REST API、`pnpm opengui -- ...` CLI、[`open-gui-remote-control`](./skills/open-gui-remote-control/SKILL.md) Skill により、コーディングエージェントから Android アプリタスクをディスパッチできます。 - `[2026.5.9]` [Discord IM エントリー](./docs/DISCORD.ja-JP.md)を追加しました。プレフィックスコマンド、スラッシュコマンド、allowlist、guild 単位のコマンド登録に対応し、Discord チャンネルから Android タスクをリモート実行できます。 - `[2026.5.7]` Docker ベースのバックエンド起動時に、一般的な PostgreSQL / Redis ポート競合を避けられるようローカル起動フローを強化しました。 - `[2026.5.1]` バックエンドのオンボーディングとして、`.env.example`、起動時チェック、graph agent 向け VLM 環境変数設定を整備しました。 ## OpenGUI でできること OpenGUI は、AI が実際の Android スマートフォンを操作できるようにするシステムです。 このリポジトリは4つの実用的な方法で利用できます: - **主要な Android アプリを操作**: X、Reddit、Hacker News、Telegram、WeChat、Weibo、小紅書などの Android アプリ上で、AI にモバイルタスクを実行させることができます。 - **組み込みワークフローを実行**: バックエンド、Android クライアント、スタンバイディスパッチパス、組み込みタスク機能一式がすぐに実行可能な状態で含まれています。 - **Claude や Codex にブートストラップさせる**: [`skills/open-gui-bootstrap/SKILL.md`](./skills/open-gui-bootstrap/SKILL.md) をモデルに指示し、目的を自然言語で説明すれば、セットアップ、ビルド、インストール、ローカルデバッグをモデルが処理します。 - **Codex で Android アプリを操作**: OpenGUI の起動後、[`skills/open-gui-remote-control/SKILL.md`](./skills/open-gui-remote-control/SKILL.md) を Codex または Claude Code に渡すと、ローカル CLI 経由でデバイス一覧、タスクディスパッチ、execution 状態確認ができます。 - **リモートワーカーとしてスマートフォンを操作**: Feishu、Telegram、Discord、REST API 経由でタスクをディスパッチし、デバイスをスタンバイ状態に保ち、バックエンドから構造化された結果を受け取ることができます。 ## 特徴 - **長時間タスク向けに設計**: OpenGUI は、数時間に及ぶモバイルワークフローに対応しており、進捗、レビュー、リカバリーをシステム内で管理します。 - **タスクの継続実行**: `Plan Supervisor` がタスクの状態と継続を管理し、`Executor Graph` がスクリーンショット、ビジョン、アクション、ユーザー呼び出しのループをデバイスのリアルタイム状態上で実行し、`Summarizer` が構造化された結果で実行を完了します。 - **スタンバイ待機**: スタンバイディスパッチパスにより、Feishu、Telegram、Discord、REST エントリーポイントを通じてデバイスがリモートワークを受信できます。 - **ロール別のモデル割り当て**: モデルルーティングにより、プランニングと VLM 実行を分離し、チームがジョブごとにプロバイダーを選択できます。 - **実際のモバイルワークフローに基づいた設計**: グラフ、デバイス実行パス、モデル分割がソースツリーに組み込まれています。 ## OpenGUI が異なる理由 OpenGUI は、明示的なオーケストレーションレイヤーを持つモバイルオペレーターシステムとして構築されています。 ソースコードは現在、以下のコンポーネントを公開しています: - `server/apps/backend/src/modules/graph-agent/graph/mobile-agent.graph.ts` — メイングラフ - `server/apps/backend/src/modules/graph-agent/graph/executor.graph.ts` — デバイス側の実行ループ - `server/apps/backend/src/common/ws/standby.gateway.ts` — スタンバイデバイスディスパッチ - `client/core_network/.../StandbySocketManager.kt` — 永続的なデバイススタンバイ接続 - `client/core_accessibility/.../GestureService.kt` — Android 側のアクション実行 | 観点 | 一般的なスマホエージェントデモ | OpenGUI | |---|---|---| | **実行モデル** | 短いインタラクティブループ | メイングラフ + エグゼキューターサブグラフ | | **タスク状態** | 通常ローカルでセッション単位 | バックエンドグラフでタスク状態を管理 | | **デバイスパス** | 多くの場合ノートPC主導の制御 | スタンバイ・実行ソケット付きの Android クライアント | | **モデル使用** | 1つのモデルがほぼ全てを処理 | プランニングと VLM パスをプロバイダー間で分割可能 | | **リモート操作** | オプションのアドオン | Feishu、Telegram、Discord、REST API、スタンバイディスパッチがバックエンドに組み込み済み | ## 代表的なユースケース - X を開いてトピックに関する最近の投稿を収集する - 実機で Reddit や Hacker News のスレッドを読んで要約する - Feishu、Telegram、Discord、REST API から Android タスクをリモートでトリガーする - Android デバイス上で反復的なモバイルワークフローを実行する - 状態管理、レビュー、リカバリーが必要な長時間モバイルワークフローを実行する ## 現在の制限 - Android 実機またはエミュレーターが必要です。 - USB デバッグと AccessibilityService 権限が必要です。 - 実行品質は、モデル、アプリ UI、ネットワーク状態、タスクの長さに依存します。 - 現時点では OS レベルの常駐アシスタントではありません。タスクは手動、または設定済みのディスパッチ経路から起動します。 - 長時間タスクはシステム設計上サポートされていますが、信頼性にはさらに実環境での検証が必要です。 - すぐに実行できるタスク例と benchmark は今後さらに追加する必要があります。 ## Roadmap - 短い Demo 動画と実アプリ例を追加する。 - ローカルセットアップをより一コマンドに近づける。 - すぐに実行できる phone-use タスクテンプレートを増やす。 - 実行リカバリーと失敗レポートを改善する。 - Android GUI Agent の信頼性 benchmark タスクを追加する。 - モデル設定とコスト削減プロファイルのドキュメントを拡充する。 ## OpenGUI の使い方 ### 1. Claude や Codex を使う場合 [`skills/open-gui-bootstrap/SKILL.md`](./skills/open-gui-bootstrap/SKILL.md) から始めてください。 手順はシンプルです: 1. Claude または Codex にスキルを指示する 2. タスクを自然言語で説明する 3. バックエンドのブートストラップ、APK ビルド、インストール、ローカルデバッグをモデルに任せる 以下の場合のみ操作が必要です: - スマートフォンの接続またはエミュレーターの起動 - USB デバッグの承認 - AccessibilityService の有効化 - オーバーレイまたはバッテリー権限の付与 - API キーまたはボット認証情報の入力 バックエンドと Android client が起動したら、[`skills/open-gui-remote-control/SKILL.md`](./skills/open-gui-remote-control/SKILL.md) を使って Codex または Claude Code にローカル CLI 経由でスマートフォンを操作させることができます: ```bash cd server pnpm opengui -- devices --json pnpm opengui -- do "Observe the current Android screen and summarize what you see" --json pnpm opengui -- status