Welcome to DroidRun

DroidRun is a powerful framework that enables you to control Android devices through LLM agents. It provides a simple and intuitive way to automate Android and iOS device interactions using natural language commands.

Benchmark

We have published our latest benchmark results at droidrun.ai/benchmark. Explore detailed performance metrics and review execution trajectories for every task. See how DroidRun delivers real, measurable results — no hype, just proven capabilities.

Features

Natural Language Control

Control your Android device using natural language commands

Multiple LLM Support

Support for OpenAI, Anthropic, Gemini, Ollama, and Deepseek

Advanced Planning

Optional planning and reasoning capabilities

Self Reflection

Built-in reflection capabilities for self correction

Simple CLI

Rich terminal UI with live updates

Python SDK

Comprehensive SDK for custom automation tasks

Quick Example

# Simple CLI usage
droidrun "Open the settings app"

# With specific provider and model
droidrun "Open calculator app" --provider Gemini --model models/gemini-2.5-pro

# With reflection and planning capabilities
droidrun "Open Calculator and take a screenshot" --reflection --reasoning

Or with Python:

import asyncio
from droidrun import DroidAgent, load_llm, AdbTools

async def main():
    # Load tools and LLM
    tools = AdbTools()
    llm = load_llm(
        provider_name="Gemini",  # OpenAI, ollama, Anthropic, Gemini, DeepSeek
        model="models/gemini-2.5-pro",
        temperature=0.2
    )
    
    # Create and run the agent
    agent = DroidAgent(
        goal="Open the Settings app",
        llm=llm,
        tools=tools,
        reflection=True,      # Enable reflection capabilities
        reasoning=True,   # Enable planning mode
        enable_tracing=True  # Enable execution tracing
    )
    
    result = await agent.run()
    print(f"Success: {result['success']}")
    if result.get('output'):
        print(f"Output: {result['output']}")

if __name__ == "__main__":
    asyncio.run(main())

Prerequisites

  • API key for at least one LLM provider

for Android

  • Android device connected via USB or ADB over TCP/IP
  • ADB (Android Debug Bridge) installed
  • DroidRun Portal app installed and accessibility service enabled

for iOS

  • Droidrun iOS Portal up and running

Getting Started

Core Concepts