Open-source framework for AI agents that control iOS and Android devices. LLM-agnostic. Multi-agent architecture.
1import asyncio2from mobilerun import MobileAgent, MobileConfig3 4async def main():5 config = MobileConfig()6 agent = MobileAgent(7 goal="Open Twitter and post 'Hello from mobilerun!'",8 config=config,9 )10 result = await agent.run()11 12asyncio.run(main())Swap providers in one line. OpenRouter wired in for the rest.
See mobilerun control real Android devices with natural language.
Reliably and effortlessly. Three archetypes for every workflow.
Automate complex multi-app workflows through natural language.
Write mobile tests in plain English — no Appium, no XPath.
Extract structured data from any mobile app.
State-of-the-art performance on the leading public benchmark for mobile agents. 106 of 116 tasks completed. View benchmark →
106 of 116 AndroidWorld tasks completed.
Six primitives covering the full mobile automation lifecycle.
Swap providers with one line. Gemini, OpenAI, Anthropic, Ollama, DeepSeek, OpenRouter, Qwen and more.
Screenshot-based fallback when the accessibility tree is insufficient. Combine both for maximum accuracy.
Multi-step planning with chain-of-thought. The agent reasons about UI state before acting.
Extract typed data with Pydantic models. Get real objects, not raw strings.
Register your own tools the agent can call. Extend capabilities beyond built-in actions.
Pre-built interaction patterns for popular apps. Skip the boilerplate, start automating.
Same agent framework. Run it on your own device, or on the managed cloud.
| Capability | Legacy automation | Mobilerun framework | Mobilerun cloud |
|---|---|---|---|
| LLM-driven workflows | No | Yes | Yes |
| Device source | Manual | BYO device | Managed fleet |
| Mobile-integrity readiness | No | DIY | Included |
| Fleet scale | No | Self-host | 1 → 10,000 |
| iOS | No | Limited | Full |
| eSIM & SMS | No | No | Yes |
Three commands. One device. Full automation.
$ pip install mobilerun Successfully installed mobilerun-0.5.8 $ mobilerun setup Portal installed and accessible. You're good to go. $ mobilerun run "Open Settings and check battery level" [agent] planning steps… [step 1/2] tap "Settings" [step 2/2] navigate to "Battery" [done] task completed in 3.8s — 2 actions, 0 retries
Build on the framework. Ship on the cloud. Same agent, real-device identity.