| name | droid |
| description | This skill should be used when the user asks to "test Android app", "automate Android emulator", "tap button on Android", "take Android screenshot", "interact with Android UI", "ADB automation", "fill Android form", "swipe on emulator", "validate Android UI flow", or needs to control an Android device/emulator via ADB. Provides a unified CLI with JSON output optimized for LLM consumption. |
Droid
Unified Android testing tool with JSON output for LLM-friendly automation.
CLI Discovery
The CLI is located at ./droid-cli/ relative to this SKILL.md file.
| Platform | Script |
|---|
| Unix/Linux/macOS | droid |
| Windows | droid.cmd (droid.ps1 also available) |
Prerequisites
- Bun runtime (https://bun.sh)
- ADB (Android Debug Bridge) in PATH
- Connected Android device or running emulator
- USB debugging enabled on device
Quick Start
droid info
droid screenshot
droid tap -t "Book Now"
droid fill "Email" "user@example.com"
droid wait-for -t "Success" -s 5
Core Commands
screenshot
Capture screenshot AND UI elements. Returns element coordinates for tapping.
droid screenshot
droid screenshot --clickable
droid screenshot --no-ui
Response: {"ok":true,"screenshot":"/tmp/screenshot.png","elements":[{"text":"Book","class":"Button","clickable":true,"x":540,"y":350,"bounds":[400,300,680,400]}]}
tap
Tap by text or coordinates.
droid tap -t "Book Now"
droid tap -t "State" --prefer-input
droid tap -t "Submit" --clickable
droid tap 540 960
fill
Fill text field in one command (tap + clear + type + hide-keyboard).
droid fill "Enter your email" "user@example.com"
wait-for
Wait for element to appear (with timeout).
droid wait-for -t "Welcome" -s 10
Form Workflow Commands
clear / type / hide-keyboard
droid clear
droid type "hello@example.com"
droid hide-keyboard
key
Send key events.
| Key | Purpose |
|---|
back | Navigate back |
enter | Submit/confirm |
move_home | Cursor to start of text |
move_end | Cursor to end of text |
delete | Backspace |
app_home | Android home screen |
droid key back
droid key move_home
Other Commands
| Command | Purpose | Example |
|---|
swipe | Scroll | droid swipe up |
longpress | Long press | droid longpress -t "Item" |
launch | Launch app | droid launch com.example.app |
current | Current activity | droid current |
info | Device info | droid info |
wait | Wait ms | droid wait 1000 |
select-all | Select text | droid select-all |
See references/commands.md for full documentation.
Testing Workflow
Recommended Pattern
droid screenshot
droid tap -t "Book Now" -w 1000
droid wait-for -t "Booking Confirmed" -s 5
Form Filling Pattern
droid fill "Email" "user@example.com"
droid fill "Password" "secret123"
droid tap -t "Sign In" --clickable
droid wait-for -t "Welcome" -s 10
Tips
- Use
--prefer-input when tapping form fields to avoid hitting labels
- Use
--clickable when tapping buttons to ensure element is interactive
- Use
hide-keyboard not key back to dismiss keyboard
- Use
wait-for instead of blind wait for reliable verification
Error Handling
All errors return JSON with "ok":false:
droid tap -t "NonexistentButton"