Autoroid leverages Large Language Models (LLMs) to understand your intent and interact with your Android device through ADB. From navigating apps to automating human actions like taps, swipes, and text input — just tell Autoroid what you want to do.
-
Natural Language Control - Ask to do something in human language:
Open Settings and enable dark mode -
UI Awareness - Parses Android UI hierarchies to intelligently locate buttons, text, and inputs.
-
Universal Android Support - Works with physical devices and emulators as long as ADB is enabled.
-
Configurable LLM Backend - Supports OpenAI, Gemini, Anthropic and Ollama.
ADB must be installed and accessible from your terminal.
-
Download Android SDK Platform Tools https://developer.android.com/studio/releases/platform-tools
-
Extract the archive in a new folder
adb.Example (Windows):
C:\adb\adb.exe -
Add ADB to PATH
- Add
C:\adbto your system environment variables
- Add
-
Connect your device (any one of the below)
- Enable USB Debugging on your Android device and connect via USB
- Start an android emulator
-
Verify installation
adb devices
You should see your device ID listed.
Clone the repository and install dependencies.
git clone https://github.com/qubydev/autoroid.git
cd autoroidpip install -r requirements.txtCreate a .env file in the project root.
cp .env.example .env| Variable | Description | Example |
|---|---|---|
LLM_PROVIDER |
LLM backend provider. Must be compatible with LangChain. | openai | gemini | anthropic |
BASE_URL |
Custom API base URL. (Leave empty for default) | http://localhost:11434/v1 |
API_KEY |
API key for the selected LLM provider. | sk-... |
MODEL |
Model name used by the selected LLM provider. | gpt-4o |
ADB_PATH |
Path to the adb executable if it is not available in your system PATH. |
adb |
SCREEN_DUMP_PATH |
Path on the Android device where the UI hierarchy XML is dumped. | /sdcard/window_dump.xml |
LOCAL_DUMP_PATH |
Local path where the pulled UI dump XML is stored for processing. | window_dump.xml |
RECURSION_LIMIT |
Maximum number of reasoning/action steps per goal to prevent infinite loops. | 50 |
RATE_LIMIT_DELAY |
Delay in seconds between LLM requests to avoid rate-limit issues. | 0.5 |
Make sure your Android device or emulator is connected.
python main.pyYou should see:
🤖 Android Agent Started
Enter Goal:
Example commands:
Open Chrome and search for cute catsLaunch Instagram and scroll for 10 secondsEnable airplane mode
Contributions are welcome ❤️! Please fork the repository and submit a pull request with your changes.
This project is licensed under the MIT License. See the LICENSE file for details.
