Mobilerun is an open-source framework for mobile app testing, QA, and running AI agents on real Android and iOS devices.
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 Β· π‘οΈ Mobile Harness
Deutsch | EspaΓ±ol | franΓ§ais | ζ₯ζ¬θͺ | νκ΅μ΄ | PortuguΓͺs | Π ΡΡΡΠΊΠΈΠΉ | δΈζ
- π€ Control Android and iOS devices with natural language commands
- π Use OpenAI, Anthropic, Gemini, xAI, Ollama, DeepSeek, OpenRouter, and OpenAI-compatible models
- π§ Run direct tasks or enable reasoning mode for complex multi-step automation
- π» Automate from the CLI, a terminal UI, Docker, or Python code
- π Extend agents with custom tools, structured output, app cards, and credentials
- πΈ Combine accessibility trees with screenshots for visual understanding
- π« Trace execution with Arize Phoenix or Langfuse
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.
| Target | Supported | Setup |
|---|---|---|
| Android Real Device | β | adb or the Portal app |
| Android Emulator | β | Running emulator (adb) |
| iOS Real Device | β | mobilerun-ios over USB |
| iOS Simulator | β | iOS Portal app |
| Android on Mobilerun Cloud | β | Hosted phones or your own |
| iOS on Mobilerun Cloud | β | Hosted iPhones or your own |
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 mobilerunMost 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. For iOS, set up mobilerun-ios for an iPhone or the iOS Portal app for the simulator.
mobilerun setupThis installs the Mobilerun Portal app, enables its accessibility service, and prepares the device for local control.
mobilerun pingYou should see confirmation that the Portal is installed and accessible.
mobilerun configureThe 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, ANTHROPIC_API_KEY, XAI_API_KEY, or MINIMAX_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 --debugRead the full framework documentation.
- CLI: Run one-off natural language tasks, inspect devices, replay macros, and debug from the terminal.
- Python API: Build custom mobile automation workflows with Python and use custom tools.
- Android and iOS support: Control Android through the Portal app, iPhones through
mobilerun-ios, or the iOS Simulator through the iOS Portal app. - Portal-based control: Use UI trees, screenshots, text input, gestures, app launching, and device state from the Portal runtime.
- Vision mode: Send screenshots to the LLM with
--vision, or use screenshot-only control with--vision-only(useful for the apps that do not have a11y tree information). - Reasoning mode: Use
--reasoningfor manager-executor planning on longer or more complex tasks. - Tracing and telemetry: Debug execution with Arize Phoenix, Langfuse, saved trajectories, and detailed logs.
- Structured output: Return structured data from mobile workflows.
- App cards and custom tools: Add app-specific guidance to make agent perform better on your use-cases.
- Docker: Run Mobilerun in a container for repeatable local environments.
| 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.
- Choose Mobilerun Framework for local agent execution and code-level control.
- Choose Mobilerun Cloud for managed phones, APIs, and scale without running agents locally.
| 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, not emulated | QA and workflows that need real device behavior (sensors, camera, push, payments) |
Ask an agent to test the onboarding flow in your app: open the app, complete the welcome screens, sign in with a test account, and confirm that the home screen loads. Watch each step live and inspect the results to diagnose failures.
Give Claude Code, Codex, or another coding agent direct control of Android and iOS devices with the mobile-harness skill. Copy paste it into your agent:
Set up https://github.com/droidrun/mobile-harness for me.
Read `install.md` and follow the steps to install `mobile-harness`.
The skill teaches the agent to drive local devices (ADB, Portal, iPhones, iOS Simulator) and Mobilerun Cloud phones.
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.
- Mobile app QA and regression testing
- Guided workflows for non-technical users
- Repetitive task automation on mobile devices
- Event-driven automation from schedules, notifications, or custom triggers
- Data extraction from native mobile apps
- Testing the same flow across many devices and OS versions in parallel
Mobilerun is one piece of a toolkit for driving real phones with AI agents:
- Mobilerun Portal: the Android app that lets you control and automate your phone.
- mobilerun-ios: connects an iPhone over USB, either to this framework (
--local) or to Mobilerun Cloud. - iOS Portal: the iOS app that lets the framework drive the iOS Simulator.
- mobile-harness: an agent skill that lets Claude Code, Codex, and OpenClaw control Android, iOS, and cloud phones. App cards teach the agent how each app works, and shared memory keeps what it learns across tasks. It scores 100% on AndroidWorld and 98.34% on iOSWorld (benchmark results).
- Mobilerun Cloud: cloud phones for AI agents. Hosted Android phones and dedicated iPhones for testing and running your agents on real devices, with phone numbers and inboxes so end to end flows like sign in and verification work in your own apps, devices in multiple regions for localized testing, and scheduled and event triggers. Drive it through the REST API, Python and TypeScript SDKs, or MCP, and watch every step live.
- Framework quickstart
- Mobilerun cloud quickstart
- Device setup
- CLI guide
- SDK reference
- Custom tools
- Agent architecture
- Structured output
- Tracing
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