lycorp-jp/sim-use
Give your AI agent eyes and hands on iOS Simulator and Android emulator/devices.
What it solves
sim-use は、AI エージェントが iOS シミュレータや Android エミュレータ、デバイス上のモバイルアプリと対話できる手段を提供します。LLM が現在の画面状態を観察し、タップや入力といったアクションを実行して、構築した機能が正しく動作しているかを検証できるようにすることで、エージェント開発ループのギャップを埋めます。
How it works
このツールは、Apple の Accessibility API、iOS シミュレータの HID パイプライン、Android の AccessibilityService と連携するクロスプラットフォーム CLI として動作します。"observe, act, verify" のサイクルを使用します。
- Observe:
uiコマンドは、画面の複雑なアクセシビリティツリーをトークン効率の高いコンパクトなアウトラインに変換し、LLM が過剰なトークンを消費せずに容易に推論できるようにします。 - Act: エージェントはエイリアス(例:
tap @9)や特定の識別子を使ってアクションを実行でき、要素の正確な座標を指定する必要がなくなります。 - Verify: エージェントは再度
uiコマンドを実行し、アクションの結果を確認します。
速度を保つために、デバイスごとのバックグラウンドデーモンを使用して初期化コストを削減し、往復インタラクションを約 300ms で実現します。
Who it’s for
モバイルアプリ開発、テスト、オートメーション向けに AI エージェントを構築する開発者向けです。高性能でクロスプラットフォームなインターフェースが必要な方に最適です。
Highlights
- Token-Efficient: アウトライン表現は生の JSON アクセシビリティツリーに比べて約 16 倍コンパクトです。
- Cross-Platform: iOS と Android の両方に対応した単一のコマンドインターフェースです。
- AI-Native: エイリアスキャッシュタップとバンドルされたエージェントスキル(例: Claude 用)を含み、AI に CLI の使い方を教えます。
- Comprehensive Input: タップ、スワイプ、ハードウェアボタン、IME 安全な Unicode ペーストをサポートし、キーボード合成問題を回避します。
- Batching: iOS のみで、複数ステップを 1 回の呼び出しにチェーンでき、レイテンシを削減します。
- Viewer: アクセシビリティツリーを SVG キャンバス上に描画するバンドル Web アプリで、視覚的デバッグが可能です。