| name | acli |
| description | Control the Android development environment: manage SDK packages, start/stop emulators, install APKs, stream device logs, take screenshots, and run Gradle builds. Use when the user wants to do anything with Android devices, emulators, or SDK tools. |
You have access to the acli command, which provides a unified interface to all Android development tools.
Device & Emulator Management
acli device list --json
acli device -d <serial> info
acli device -d <serial> install path/to/app.apk
acli device -d <serial> logs --follow --level E
acli device -d <serial> screenshot screen.png
acli avd list --json
acli avd start <name> --headless --wait-boot
acli avd stop <serial>
SDK Management
acli sdk list --installed --json
acli sdk list --updates
acli sdk install "platforms;android-35"
acli sdk licenses
App Management
acli app list --json
acli app launch <package>
acli app stop <package>
acli app clear <package>
acli app deep-link <uri>
Build
acli build assemble --variant debug
acli build test --unit
acli build clean
Device Instrumentation
acli instrument battery --level 10 --status discharging
acli instrument network --speed edge --latency gprs
acli instrument location --lat 37.7749 --lng -122.4194
acli instrument input text "Hello World"
acli instrument input tap 540 960
Environment Health
acli doctor --json
JSON Output
Always pass --json when you need to parse results programmatically.
All errors are written to stderr as:
{"error": {"code": "...", "message": "...", "detail": "...", "fix": ["cmd1", "cmd2"]}}
Device Targeting
Use --device <serial> or set ACLI_DEVICE=<serial> to target a specific device.
When multiple devices are connected, always specify a target to avoid ambiguity.