
Mobilerun is an open-source framework for controlling Android and iOS devices with LLM agents.
It gives agents mobile-native tools to inspect UI state, understand screenshots, tap, swipe, type, plan multi-step workflows, and return results through a CLI or Python API.
📕 Documentation · ☁️ Mobilerun Cloud
Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文

Use the framework when you want to run the agent on your machine. Use Mobilerun Cloud when you want a ready-to-go solution for your local phones or cloud-hosted virtual/physical phones, managed infrastructure, and API-driven device workflows without running the agent on your local machine. Check out our benchmark results.
Note: Python 3.14 is not currently supported. Please use Python
>=3.11,<3.14.
Install Mobilerun with uv:
# CLI usage
uv tool install mobilerun
# CLI + Python integration
uv pip install mobilerun
Most LLM providers are included by default. For Anthropic support, install the optional extra:
uv tool install "mobilerun[anthropic]"
uv tool install mobilerun
mobilerun setup
mobilerun configure
mobilerun run "Open settings and turn on dark mode"
Before starting, make sure you have ADB installed and an Android device with Developer options and USB debugging enabled. iOS setup is supported separately through the iOS Portal flow.
mobilerun setup
This installs the Mobilerun Portal app, enables its accessibility service, and prepares the device for local control.
mobilerun ping
You should see confirmation that the Portal is installed and accessible.
mobilerun configure
The wizard walks you through choosing a provider, auth method, and model. You can also use provider environment variables such as GOOGLE_API_KEY, OPENAI_API_KEY, or ANTHROPIC_API_KEY.
mobilerun run "Open the settings app and tell me the Android version"
Useful run options:
mobilerun run "Open settings and turn on dark mode"
mobilerun run "What app is currently open?" --vision
mobilerun run "Find a contact named John and send him an email" --reasoning
mobilerun run "Take a screenshot" --ios
mobilerun run "Open Settings" --steps 30 --debug
Read the full framework documentation.
--vision, or use screenshot-only control with --vision-only (useful for the apps that do not have a11y tree information).--reasoning for manager-executor planning on longer or more complex tasks.| Mobilerun Framework | Mobilerun Cloud | |
|---|---|---|
| Best for | Running agents locally on your own machine and devices | Ready-to-go local phone control, hosted real or virtual devices, API workflows, and managed device operations |
| Runtime | Your machine | Mobilerun-managed infrastructure |
| Interface | CLI, Docker, and Python API | Dashboard, REST API, SDKs, and hosted devices |
Use the framework when you want full local control of the agent runtime. Use Mobilerun Cloud when you want managed devices, fleet workflows, or cloud APIs without running the agent locally. Learn more in the framework overview and the cloud docs.
| Device type | What it is | Best for |
|---|---|---|
| Personal | Your own hardware connected to Mobilerun Cloud | Quick automation on devices you own |
| Cloud Phone (Hosted) | Instantly available cloud-hosted phone | Scalable hosted automation |
| Physical Phone (Hosted) | Real hardware with stronger identity characteristics | Workflows that need high device authenticity and trust |
Shows multi-step navigation, text input, and app-state reasoning while Mobilerun searches for accommodation.
Shows browsing, app navigation, and result extraction from a natural-language task.
Shows a short recurring mobile workflow that can be automated from a prompt.
Contributions are welcome. Please feel free to submit a pull request or open an issue.
This project is licensed under the MIT License. See LICENSE for details.
To help catch security issues before submitting changes, run:
bandit -r mobilerun
safety scan
$ claude mcp add mobilerun \
-- python -m otcore.mcp_server <graph>