Android Cli logo

Android Cli

OrganizationPopular
android
android-cli

Provides instructions for installing and using the `android` CLI. The `android` command-line tool is a critical tool for Android development and helps you create new Android projects, run Android apps on devices, manage and interact with Android virtual devices (including screenshots and UI inspection), manage Android SDK components, look up official Android documentation, and discover and install official Android skills.

Overview

Publisherandroid
Repositoryskills
Skill nameandroid-cli
Stars
7.4K
Forks
484
Bundled files
2
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 2 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by android on GitHub. Read the source before you install it.

Installation

Install the Android Cli AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/android/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/devtools/android-cli .claude/skills/android-cli
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Android Cli in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Android Cli on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Android Cli is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

This skill provides instructions for using the android CLI tool. The tool includes various commands for creating projects, running applications, interacting with devices, and managing the CLI environment.

Installation

If the android tool is not in the path, install it. To install run the following command:

SDK management

To manage the installation of Android SDKs and tools, use the sdk command. For example:

  • android sdk install <package>[@<version>]...: Install specific packages. Multiple packages can be specified, separated by spaces. <version> defaults to latest. For example: android sdk install platforms/android-30@2 platforms/android-34
  • android sdk update [<pkg-name>]: Update a specific package or all packages to the latest version.
  • android sdk remove <pkg-name>: Remove a package from the local SDK.
  • android sdk list --all: List installed and available SDK packages.

Project creation

Create projects from templates using the create command.

For example: android create empty-activity --name="My App" --output=./my-app

Interacting with Android devices

Use the android layout command to inspect the UI layout of an Android application in JSON format. Use the android screen command to visually inspect the UI and obtain bounding coordinates for visual regions.

IMPORTANT: Before using android layout or android screen, you MUST read this reference: interact.md The reference file interact.md contains instructions for properly interacting with Android devices. Follow its instructions exactly.

Running journey tests

Journey tests involve device interaction; use the android layout and android screen commands to evaluate Journeys. The instructions for device interaction apply here as well.

IMPORTANT: Before evaluating a journey, you MUST read this reference: journeys.md The reference file journeys.md contains instructions for correctly evaluating an Android journey. Follow its instructions exactly.

Doc searching

The docs command searches authoritative, high-quality Android developer documentation in the Android Knowledge Base. By providing a few keywords, this tool will return high quality articles that contain examples or guidance on how to use Android APIs or libraries. Use this tool to obtain additional information on how to achieve Android-specific tasks or to know more about Android APIs, surfaces, libraries, or devices.

Always use this tool to get the most up-to-date information about Android concepts. Typical good use cases are:

  • Finding migration guides for APIs.
  • Finding examples for APIs.
  • Finding up-to-date information about Android APIs.
  • Finding best practices for Android concepts.

Running APKs

Use the run command to run Android apps.

Managing emulators

Manage Android Virtual Devices (AVDs) using the android emulator command

Capturing screenshots

Capture an image of the current screen of a connected Android device and output it to a file using the android screen command.

Managing skills

Manage agent skills for Android using the android skills command.

Updating the CLI

Update the Android CLI using the android update command.

android help output

Usage: android [-Vhv] [--sdk=PARAM] [COMMAND]
  -h, --help       Show the help message for this command
      --sdk=PARAM  Path to the Android SDK
  -v, --verbose    Enable verbose output for troubleshooting
  -V, --version    Print version information and exit
Commands:
  completion  Installs shell autocomplete configuration for the Android CLI in
              the current user profile
  create      Create a new Android project from available templates. Allows
              specifying project name, output directory, minSdk, and dry-run
              execution
  describe    Analyzes an Android project to generate descriptive metadata. This
              command identifies and outputs the paths to JSON files that detail
              the project's structure, including build targets and their
              corresponding output artifact locations (e.g., APKs). This
              information enables other tools and commands to locate build
              artifacts efficiently
  docs        Android documentation commands for searching and fetching
              developer documentation from the official knowledge base
  emulator    Manage Android Virtual Devices (AVDs). Includes commands to start,
              stop, list, and view details about emulators
  help        Shows the help of all commands
  info        Print environment information including SDK location, connected
              devices, and configuration variables. Use specific fields to
              narrow the output
  init        Initializes the environment for the Android CLI. Sets up required
              configurations, directories, and default skills
  install     Install an Android Application (one or more APKs) to a connected
              device or emulator without activating any components using
              incremental optimizations for faster deployment than adb
  layout      Returns the layout tree of an application
  run         Build, deploy, and launch an Android application on a connected
              device or emulator
  screen      Commands to view the device
  sdk         Manage the Android SDK installation. Includes commands to install,
              update, remove, and list available and installed SDK packages
  skills      Manage Android CLI skills. Includes commands to install, remove,
              list, and search for skills by keyword
  studio      Android Studio commands
  update      Update the Android CLI to the latest version

completion
          Usage: android completion [-h] [<shell>]
          Installs shell autocomplete configuration for the Android CLI in the
          current user profile
          
          Options:
            -h, --help       Show the help message for this command
          
          android options:
                --sdk=PARAM  Path to the Android SDK
            -v, --verbose    Enable verbose output for troubleshooting
            -V, --version    Print version information and exit
          
          Positional Parameters:
            <shell>  If provided, print the given shell completion without
                     installing. Supported: bash, zsh

create
          Usage: android create [-h] [--applicationId=PARAM] [--list] [--minSdk=PARAM]
                                [--name=PARAM] [--namespace=PARAM] [--output=PARAM]
                                [<template-name>]
          Create a new Android project from available templates. Allows
          specifying project name, output directory, minSdk, and dry-run
          execution
          
          Options:
                --applicationId=PARAM  The application ID for the application
                                       (e.g. 'com.example.myapp')
            -h, --help                 Show the help message for this command
                --list                 List all available templates
                --minSdk=PARAM         The 'minSdk' supported by the application
                                       (default is defined in the template)
                --name=PARAM           The name of the application (e.g. 'My
                                       Application')
                --namespace=PARAM      The namespace for resources and package
                                       name for Kotlin source files
            -o, --output=PARAM         The destination project directory path
                                       (default is '.')
          
          android options:
                --sdk=PARAM            Path to the Android SDK
            -v, --verbose              Enable verbose output for troubleshooting
            -V, --version              Print version information and exit
          
          Positional Parameters:
            <template-name>  The template name

describe
          Usage: android describe [-h] [--project_dir=PARAM]
          Analyzes an Android project to generate descriptive metadata. This
          command identifies and outputs the paths to JSON files that detail the
          project's structure, including build targets and their corresponding
          output artifact locations (e.g., APKs). This information enables other
          tools and commands to locate build artifacts efficiently
          
          Options:
            -h, --help               Show the help message for this command
                --project_dir=PARAM  The project directory to describe
          
          android options:
                --sdk=PARAM          Path to the Android SDK
            -v, --verbose            Enable verbose output for troubleshooting
            -V, --version            Print version information and exit

docs
          Usage: android docs [-h] [COMMAND]
          Android documentation commands for searching and fetching developer
          documentation from the official knowledge base
          
          Options:
            -h, --help       Show the help message for this command
          
          android options:
                --sdk=PARAM  Path to the Android SDK
            -v, --verbose    Enable verbose output for troubleshooting
            -V, --version    Print version information and exit
          Commands:
            search  Search Android documentation. Enclose keywords in quotes
            fetch   Fetch an Android documentation article from a URL (kb://...)

emulator
          Usage: android emulator [-h] [COMMAND]
          Manage Android Virtual Devices (AVDs). Includes commands to start,
          stop, list, and view details about emulators
          
          Options:
            -h, --help       Show the help message for this command
          
          android options:
                --sdk=PARAM  Path to the Android SDK
            -v, --verbose    Enable verbose output for troubleshooting
            -V, --version    Print version information and exit
          Commands:
            create  Creates a virtual device
            start   Launches the specified virtual device. This command will
                    return when the emulator is fully started and ready to use
            stop    Stops the specified virtual device
            list    Lists available virtual devices
            remove  Delete a virtual device

help
          Usage: android help [-h] [COMMAND]
          Shows the help of all commands
          
          Options:
            -h, --help       Show the help message for this command
          
          android options:
                --sdk=PARAM  Path to the Android SDK
            -v, --verbose    Enable verbose output for troubleshooting
            -V, --version    Print version information and exit
          
          Positional Parameters:
            COMMAND  The command to show help for

info
          Usage: android info [-h] [<field>]
          Print environment information including SDK location, connected
          devices, and configuration variables. Use specific fields to narrow
          the output
          
          Options:
            -h, --help       Show the help message for this command
          
          android options:
                --sdk=PARAM  Path to the Android SDK
            -v, --verbose    Enable verbose output for troubleshooting
            -V, --version    Print version information and exit
          
          Positional Parameters:
            <field>  The specific field to print the value of. If omitted print
                     all

init
          Usage: android init [-h]
          Initializes the environment for the Android CLI. Sets up required
          configurations, directories, and default skills
          
          Options:
            -h, --help       Show the help message for this command
          
          android options:
                --sdk=PARAM  Path to the Android SDK
            -v, --verbose    Enable verbose output for troubleshooting
            -V, --version    Print version information and exit

install
          Usage: android install [-h] [--apks=PARAM] [--device=PARAM] [--install-options=PARAM]
                                 [--use-delta-install]
          Install an Android Application (one or more APKs) to a connected
          device or emulator without activating any components using incremental
          optimizations for faster deployment than adb
          
          Options:
                --apks=PARAM             The paths to the APKs, comma separated
                --device=PARAM           The device serial number
            -h, --help                   Show the help message for this command
                --install-options=PARAM  Additional options/flags to pass to
                                         package manager install (e.g. -g,-d)
                --use-delta-install      Use fast delta install (speeds up
                                         incremental updates by transferring
                                         only modified code and resources;
                                         default: true)
          
          android options:
                --sdk=PARAM              Path to the Android SDK
            -v, --verbose                Enable verbose output for
                                         troubleshooting
            -V, --version                Print version information and exit

layout
          Usage: android layout [-dhp] [--device=PARAM] [--flat] [--full] [--no-idle]
                                [--output=PARAM]
          Returns the layout tree of an application
          
          Options:
                --device=PARAM  The device serial number
            -d, --diff          Deprecated; no-op flag. Will be removed in a
                                future release
                --flat          Returns a flat list instead of a tree
                --full          Return the full tree, including non-interactive
                                and hidden elements
            -h, --help          Show the help message for this command
                --no-idle       Don't wait for layout idle state when fetching
                                layout
            -o, --output=PARAM  Writes the layout to the specified file or
                                directory. If omitted, prints to standard output
            -p, --pretty        Pretty-prints the returned JSON
          
          android options:
                --sdk=PARAM     Path to the Android SDK
            -v, --verbose       Enable verbose output for troubleshooting
            -V, --version       Print version information and exit

run
          Usage: android run [-h] [--activity=PARAM] [--apks=PARAM] [--debug] [--device=PARAM]
                             [--install-options=PARAM] [--type=PARAM] [--use-delta-install]
          Build, deploy, and launch an Android application on a connected device
          or emulator
          
          Options:
                --activity=PARAM         The activity name
                --apks=PARAM             The paths to the APKs, comma separated
                --debug                  Run in debug mode
                --device=PARAM           The device serial number
            -h, --help                   Show the help message for this command
                --install-options=PARAM  Additional options/flags to pass to
                                         package manager install (e.g. -g,-d)
                --type=PARAM             The component type (ACTIVITY,
                                         WATCH_FACE, TILE, COMPLICATION,
                                         DECLARATIVE_WATCH_FACE, WEAR_WIDGET)
                --use-delta-install      Use fast delta install (speeds up
                                         incremental updates by transferring
                                         only modified code and resources;
                                         default: true)
          
          android options:
                --sdk=PARAM              Path to the Android SDK
            -v, --verbose                Enable verbose output for
                                         troubleshooting
            -V, --version                Print version information and exit

screen
          Usage: android screen [-h] [COMMAND]
          Commands to view the device
          
          Options:
            -h, --help       Show the help message for this command
          
          android options:
                --sdk=PARAM  Path to the Android SDK
            -v, --verbose    Enable verbose output for troubleshooting
            -V, --version    Print version information and exit
          Commands:
            capture  Outputs the device screen to a PNG
            resolve  Target UI elements visually. Substitutes bounding box
                     coordinates from a annotated screenshot into a string.
                     Replaces all instances of '#N' with the center coordinates
                     of the bounding box labeled 'N'

sdk
          Usage: android sdk [-h] [--platform=PARAM] [COMMAND]
          Manage the Android SDK installation. Includes commands to install,
          update, remove, and list available and installed SDK packages
          
          Options:
            -h, --help            Show the help message for this command
                --platform=PARAM  Target platform <os>_<arch> (e.g.
                                  linux_x86_64, mac_arm64, windows_x86),
                                  defaults to current host
          
          android options:
                --sdk=PARAM       Path to the Android SDK
            -v, --verbose         Enable verbose output for troubleshooting
            -V, --version         Print version information and exit
          Commands:
            install  Install SDK packages
            update   Update one or all packages to the latest version
            remove   Remove packages from the SDK
            list     List installed and available SDK packages

skills
          Usage: android skills [-h] [COMMAND]
          Manage Android CLI skills. Includes commands to install, remove, list,
          and search for skills by keyword
          
          Options:
            -h, --help       Show the help message for this command
          
          android options:
                --sdk=PARAM  Path to the Android SDK
            -v, --verbose    Enable verbose output for troubleshooting
            -V, --version    Print version information and exit
          Commands:
            add     Install a specific skill by its ID to your environment
            remove  Remove an installed skill by its ID
            list    List installed and available skills
            find    Search for available skills in the repository matching a
                    keyword
            update  Update installed skills

studio
          Usage: android studio [-h] [COMMAND]
          Android Studio commands
          
          Options:
            -h, --help       Show the help message for this command
          
          android options:
                --sdk=PARAM  Path to the Android SDK
            -v, --verbose    Enable verbose output for troubleshooting
            -V, --version    Print version information and exit
          Commands:
            find-declaration        Find declaration of a symbol
            find-usages             Find usages of a symbol
            open-file               Open a file in Android Studio
            check                   Check the status of running Studio instances
            analyze-file            Analyze a file in Android Studio
            render-compose-preview  Render a Compose preview in Android Studio
            version-lookup          Looks up the latest available versions on
                                    the internet of maven artifacts, Android
                                    versions, and more

update
          Usage: android update [-h] [--url=PARAM]
          Update the Android CLI to the latest version
          
          Options:
            -h, --help       Show the help message for this command
                --url=PARAM  The URL to download the update from
          
          android options:
                --sdk=PARAM  Path to the Android SDK
            -v, --verbose    Enable verbose output for troubleshooting
            -V, --version    Print version information and exit

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Android Cli AI skill do?

Provides instructions for installing and using the `android` CLI. The `android` command-line tool is a critical tool for Android development and helps you create new Android projects, run Android apps on devices, manage and interact with Android virtual devices (including screenshots and UI inspection), manage Android SDK components, look up official Android documentation, and discover and install official Android skills.

Why use Android Cli on TypingMind?

Because you install it once and use it with any model. Android Cli is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Android Cli in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/android/skills/tree/main/devtools/android-cli. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Android Cli?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Android Cli?

As many as you like. As long as a model supports skills, you can use Android Cli with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Android Cli AI skill free?

Yes. It is published on GitHub by android under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇