mobile-use

Browser & Desktop 💻 Python ⚖️ Apache-2.0 🟢 Actively maintained
2.8k stars

mobile-use is an open-source AI agent that controls Android and iOS devices using natural language commands. It automates tasks like sending messages or navigating apps by understanding the UI, and can extract data into structured formats. It is for developers and power users who want to automate mobile interactions without writing scripts.

✨ Key features

  • Natural language control of Android and iOS devices.
  • UI-aware automation that navigates app interfaces.
  • Data scraping from apps into structured formats like JSON.
  • Extensible LLM configuration supporting OpenAI, Google, xAI, OpenRouter, MiniMax.
  • Top performer with 100% on AndroidWorld benchmark.
  • Runs locally or via Docker for quick launch.

🎯 Use cases

  • Automate sending messages or performing actions in apps.
  • Extract unread emails with sender and subject into JSON.
  • Navigate complex apps to retrieve information like battery level.
  • Test app workflows by simulating user interactions.
  • Scrape data from any app for analysis or integration.

📦 Installation

🧰 Requirements: Requires Python, uv, and either an Android device with ADB or iOS simulator with Xcode and idb_companion (macOS only). API keys for LLM providers (e.g., OpenAI, Anthropic) are needed.

git clone https://github.com/minitap-ai/mobile-use.git && cd mobile-use
cp .env.example .env
Edit .env with your API keys
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv sync

For Docker quick launch (Android only):

chmod +x mobile-use.sh
bash ./mobile-use.sh "your command" --output-description "description"

🚀 Usage

python ./minitap/mobile_use/main.py "Go to settings and tell me my current battery level"

For data scraping:

python ./minitap/mobile_use/main.py \
  "Open Gmail, find all unread emails, and list their sender and subject line" \
  --output-description "A JSON list of objects, each with 'sender' and 'subject' keys"

⚠️ Good to know

Limited effectiveness with games because they don't provide accessibility tree data; physical iOS devices are not yet supported.

❓ FAQ

What devices are supported?

Physical Android phones with USB debugging, Android emulators, and iOS simulators on macOS. Physical iOS devices are not yet supported.

Can I use my own LLM provider?

Yes, you can configure different LLMs by editing llm-config.override.jsonc. Supported providers include OpenAI, Google, xAI, OpenRouter, MiniMax, and any OpenAI-compatible API.

How do I run mobile-use with Docker?

For Android devices/emulators, run the provided script (mobile-use.sh on Linux/macOS, mobile-use.ps1 on Windows) with your command and optional output description. Ensure your device is on the same Wi-Fi network.

What is the AndroidWorld benchmark result?

mobile-use is the first agentic framework to achieve 100% on the AndroidWorld benchmark, as stated in the README.

📊 Repository

Stars★ 2,804
Forks🍴 240
Open issues🐛 4
Last commit🕒 Aug 28, 2026
Created📅 Aug 2025
Language💻 Python
License⚖️ Apache-2.0
Websiteminitap.ai

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.