| 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. Use when this capability is needed. |
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.
Source: ErikHellman/cli-for-android — distributed by TomeVault.