droid

📁 thilinatlm/agent-skills 📅 Today
3
总安装量
1
周安装量
#61189
全站排名
安装命令
npx skills add https://github.com/thilinatlm/agent-skills --skill droid

Agent 安装分布

amp 1
cline 1
opencode 1
cursor 1
kimi-cli 1
codex 1

Skill 文档

Droid

Unified Android testing tool with JSON output for LLM-friendly automation.

CLI Discovery

The CLI is located at ./scripts/droid-cli/ relative to this SKILL.md file.

Platform Script
Unix/Linux/macOS droid
Windows droid.ps1

Claude Code: Use ${CLAUDE_PLUGIN_ROOT}/skills/droid/scripts/droid-cli/droid (or droid.ps1 on Windows).

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

# Check device connection
droid info

# Screenshot + UI elements (most useful command)
droid screenshot

# Tap by text (no coordinates needed!)
droid tap -t "Book Now"

# Fill a form field in one command
droid fill "Email" "user@example.com"

# Wait for element to appear
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      # Only clickable elements
droid screenshot --no-ui          # Fast, no element dump

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"           # By text
droid tap -t "State" --prefer-input  # Prefer input fields over labels
droid tap -t "Submit" --clickable    # Only clickable elements
droid tap 540 960                 # By coordinates

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
# Returns: {"ok":true,"found":true,"element":{...}} or {"ok":true,"found":false,"timeout":true}

Form Workflow Commands

clear / type / hide-keyboard

droid clear                       # Clear focused field
droid type "hello@example.com"    # Type into focused field
droid hide-keyboard               # Dismiss keyboard (use instead of 'key back')

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

# 1. Screenshot to see current state
droid screenshot

# 2. Read the screenshot image with Claude's Read tool
# 3. Tap by text when possible
droid tap -t "Book Now" -w 1000

# 4. Verify the action worked
droid wait-for -t "Booking Confirmed" -s 5

Form Filling Pattern

# Use fill command for efficiency
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"
# {"ok":false,"error":"No element found matching 'NonexistentButton'"}