mobile-use
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 .envuv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv syncFor 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
🤖 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.