Agent skill

Android CLI (acli)

by ErikHellman in ErikHellman/cli-for-android

Drives Android devices, emulators, SDK packages and Gradle builds through the acli command, with JSON output and per-device targeting.

MITAuto-check passedMobile

Install Android CLI (acli)

skills CLI
$ npx skills add ErikHellman/cli-for-android --skill acli -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ErikHellman/cli-for-android acli --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ErikHellman/cli-for-android.git skills-src && mkdir -p .claude/skills && cp -r skills-src/assets/skills/acli .claude/skills/acli && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
acli
GitHub stars
119
Token cost
~709 tokens
SKILL.md length
73 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Drives Android devices, emulators, SDK packages and Gradle builds through the acli command, with JSON output and per-device targeting.

  • Installing an APK on a connected device or emulator
  • SKILL.md covers Device & Emulator Management, SDK Management, App Management and Build, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Installing or updating Android SDK packages

What it does

The agent uses a single acli command in place of separate Android tools. Command groups cover devices and emulators, SDK packages, installed apps, builds and an environment check. Examples include listing devices with their serials, reading the model and Android version, installing an APK, listing or installing SDK packages, launching or force-stopping an app, assembling a debug build, running unit tests and cleaning build outputs.

An instrument group can simulate battery level and status, network speed and latency, and GPS location on a device, and acli doctor reports on the health of the whole setup. Adding --json gives output the agent can parse, and errors go to stderr as JSON with a code, message, detail and suggested fix commands. With several devices connected, the target is set with --device or the ACLI_DEVICE variable to avoid ambiguity.

When your agent uses it

  • Installing an APK on a connected device or emulator
  • Installing or updating Android SDK packages
  • Building a debug APK or running unit tests through Gradle
  • Simulating low battery, slow network or a fixed location during testing

Example prompts

  • “List the connected Android devices and show the model and Android version of each.”
  • “Build the debug APK and install it on the emulator.”
  • “Run acli doctor and tell me what is missing from my Android setup.”
  • “Set the emulator to a slow network connection and a battery level of ten percent.”

Requirements

  • The acli command-line tool
  • An Android SDK setup, plus a device or emulator to target
  • Pre-approved tools (allowed-tools): Bash(acli *)

What it can do on your machine

Read from SKILL.md and the folder at commit ea064a5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(acli *)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and json).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Android CLI (acli) loads about 709 tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 73 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~63
When it runs · the whole SKILL.md, loaded when a task matches
~709

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ErikHellman/cli-for-android at commit ea064a5, republished under its MIT licence (© ErikHellman). 73 words, ~709 tokens.

Download SKILL.mdSave it as .claude/skills/acli/SKILL.md (or your agent's skills folder).
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.
allowed-tools
Bash(acli *)
disable-model-invocation
false

You have access to the acli command, which provides a unified interface to all Android development tools.

Device & Emulator Management

bash
acli device list --json                          # list devices/emulators with serials
acli device -d <serial> info                     # model, Android version, API level, ABI
acli device -d <serial> install path/to/app.apk  # install APK
acli device -d <serial> logs --follow --level E  # stream error logs
acli device -d <serial> screenshot screen.png    # capture screen
acli avd list --json                             # list AVDs
acli avd start <name> --headless --wait-boot     # start emulator, wait for boot
acli avd stop <serial>                           # stop a running emulator

SDK Management

bash
acli sdk list --installed --json                 # list installed packages
acli sdk list --updates                          # list packages with updates
acli sdk install "platforms;android-35"          # install a package
acli sdk licenses                                # accept all pending licenses

App Management

bash
acli app list --json                             # list all installed apps
acli app launch <package>                        # launch an app
acli app stop <package>                          # force-stop an app
acli app clear <package>                         # clear app data
acli app deep-link <uri>                         # open a URI deep link

Build

bash
acli build assemble --variant debug              # build debug APK
acli build test --unit                           # run unit tests
acli build clean                                 # clean build outputs

Device Instrumentation

bash
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

bash
acli doctor --json                               # full environment check (parseable)

JSON Output

Always pass --json when you need to parse results programmatically. All errors are written to stderr as:

json
{"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.

© ErikHellman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in assets/skills/acli of ErikHellman/cli-for-android.

Open the folder on GitHubat commit ea064a5

Compare with similar skills

Android CLI (acli) next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Android CLI (acli) compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Android CLI (acli) this skillErikHellman/cli-for-android119—~709Automated safety check: PassMIT
Run Jetpack Android Appwordpress-mobile/WordPress-Android3.2k—~886Automated safety check: PassGPL-2.0
Orca Android Emulator Controlstablyai/orca87k—~558Automated safety check: PassApache-2.0
Warpdroid UI TestWarp-net/warpnet157—~3.5kAutomated safety check: PassCustom licence
Capturing Preview Screenshots In CIskydoves/android-testing-skills333—~4.5kAutomated safety check: NotesApache-2.0
Android Debuggingrcosteira79/android-skills150—~2.6kAutomated safety check: PassMIT

Similar skills

  • Run Jetpack Android App

    wordpress-mobile/WordPress-Android

    Builds the Jetpack debug app with Gradle and installs it on a connected Android device or an emulator started from an available AVD.

    3.2k GitHub stars~886 tokensUpdated today
    MobileAuto-check passed
  • Android device and emulator control from inside Orca over adb, with the live device view in Orca's emulator pane. Use when driving an adb-connected emulator…

    87k GitHub stars~558 tokensUpdated today
    MobileAuto-check passed
  • Warpdroid UI Test

    Warp-net/warpnet

    A skill your agent uses whenever a warpdroid (Android client) change or bug needs to be verified by actually driving the app's visual UI — any task phrased as "test the warpdroid UI", "click through…

    157 GitHub stars~3.5k tokensUpdated today
    MobileAuto-check passed
  • Capturing Preview Screenshots In CI

    skydoves/android-testing-skills

    A skill your agent uses to render every Jetpack Compose @Preview as a screenshot on a real Android device or emulator and publish a browsable HTML catalog from CI.

    333 GitHub stars~4.5k tokensUpdated 4 mo ago
    MobileAuto-check: notes
  • Android Debugging

    rcosteira79/android-skills

    Android and KMP debugging techniques for crashes, ANRs, memory leaks, R8 traces, Gradle failures and Compose recomposition, built on finding the root cause first.

    150 GitHub stars~2.6k tokensUpdated 18 days ago
    MobileAuto-check passed
  • Android Dev

    OpenMinis/MinisSkills

    在 Minis 的 ARM64 Alpine PRoot 中从零诊断、安装并验证 Android 构建环境,以及创建、构建、签名验证、安装和启动原生 Android App;覆盖 Java/Kotlin/Gradle/SDK/AAPT2、APK、ADB/无线调试/Shizuku,以及条件式 JNI/NDK。用户提到 Android…

    440 GitHub stars~1.9k tokensUpdated yesterday
    MobileAuto-check passed

Works with

Categories

Questions about Android CLI (acli)

What does Android CLI (acli) do?

Drives Android devices, emulators, SDK packages and Gradle builds through the acli command, with JSON output and per-device targeting. The agent uses a single acli command in place of separate Android tools. Command groups cover devices and emulators, SDK packages, installed apps, builds and an environment check.

When should I use Android CLI (acli)?

Android CLI (acli) fits situations like: installing an APK on a connected device or emulator; installing or updating Android SDK packages; building a debug APK or running unit tests through Gradle; simulating low battery, slow network or a fixed location during testing.

How do I install Android CLI (acli) in Claude Code?

Run `npx skills add ErikHellman/cli-for-android --skill acli -a claude-code`. Or copy the skill folder (assets/skills/acli in ErikHellman/cli-for-android) into .claude/skills/acli in your project. Claude Code loads it when a task matches its description.

How do I install Android CLI (acli) in Codex?

Run `npx skills add ErikHellman/cli-for-android --skill acli -a codex`. Or copy the skill folder (assets/skills/acli in ErikHellman/cli-for-android) into .agents/skills/acli in your project. Codex loads it when a task matches its description.

Can I use Android CLI (acli) in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ErikHellman/cli-for-android --skill acli -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/acli, .gemini/skills/acli, .github/skills/acli and .opencode/skills/acli in your project.

What does Android CLI (acli) need to run?

SKILL.md names no scripts, command-line tools or credentials: Android CLI (acli) is instructions for the agent only. Our summary lists: The acli command-line tool; An Android SDK setup, plus a device or emulator to target. Its frontmatter pre-approves these tools: Bash(acli *).

Does Android CLI (acli) access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Android CLI (acli) safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Android CLI (acli) use?

Android CLI (acli) is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Android CLI (acli) use?

About 709 tokens (SKILL.md is roughly 2.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Android CLI (acli)?

Skills that share tags, products or a category with Android CLI (acli): Run Jetpack Android App (wordpress-mobile/WordPress-Android, 3.2k stars), Orca Android Emulator Control (stablyai/orca, 87k stars), Warpdroid UI Test (Warp-net/warpnet, 157 stars) and Capturing Preview Screenshots In CI (skydoves/android-testing-skills, 333 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Android CLI (acli)?

ErikHellman (a GitHub user) maintains it in ErikHellman/cli-for-android, which has 119 GitHub stars. The repository was last updated on April 7, 2026.

Source: ErikHellman/cli-for-android on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.