skills
Otherandroid/skills
AI-optimized agent skills teaching LLMs Android development best practices.
Overview
A repository of modular, AI-optimized instruction files (SKILL.md) that ground LLM agents in Android development best practices from developer.android.com. It targets workflows where evaluations show LLMs underperform, and can be installed via Android CLI or as plugins for agents like Claude Code and Codex.
README Preview
## Android skills\n\n**Android skills** are a dedicated repository of **AI-optimized, modular instructions** and\nresources, to help agents better understand and execute specific patterns that follow the best\npractices and guidance on Android development\nfrom [developer.android.com](https://developer.android.com).\n\nAndroid skills follow the [open-standard agent skills](https://agentskills.io/home) - markdown\nfiles (SKILL.md) that provide a technical specification of a task, and **ground LLMs** with\ninformation on specialized domains and workflows.\n\nOur Android skill development focuses on **use cases and workflows where evaluations show LLMs\nunderperform**.\nWe aren't prioritizing well-established areas where LLMs are already proficient, such\nas basic Jetpack Compose best practices.\n\nTo learn more, read the official documentation:\n\n- [Android skills](https://developer.android.com/tools/agents/android-skills)\n- [Android CLI](https://developer.android.com/tools/agents/android-cli)\n- [Android Studio](https://developer.android.com/studio/gemini/skills)\n\n### Install Android skills\n\nUse Android CLI to install a specific skill into the current directory:\n\n```\nandroid skills add r8-analyzer --project=.\n```\n\nUse Android CLI to install all Android skills to directories for all detected agents:\n\n```\nandroid skills add --all\n```\n\nIf you don't have any existing agent directories and don't specify particular agents, the skills\nwill be installed for Gemini and Antigravity at `~/.gemini/antigravity/skills`.\n\n**Options:**\n\n- `--all` - Add all Android skills. If omitted, only the `android-cli` skill will be installed.\n- `--agent` - A comma-separated list of agents to install the skill for. If omitted, the skill will be installed for all detected agents.\n- `--project` - Path to a project root in which to install the skills.\n\n\nTo update all skills or specific ones, run:\n\n```\nandroid skills update --all\nandroid skills update wear-compose-m3\
FAQ (3)
TroubleshootingWhy does the Codex marketplace plugin install successfully but show zero skills?
This is a known bug in plugin version 1.0.15: .codex-plugin/plugin.json declared skills as an array of objects ({ "source": { "path": "..." } }), but Codex CLI 0.163.0 only accepts path strings or arrays of strings, so it silently ignored all 30 skill entries. The fix (PR #247) converts every entry to a plain path string, e.g. "skills": ["./devtools/android-cli"]. Update the plugin to the fixed release and restart your Codex session. As a workaround on affected versions, bypass the marketplace and install the skills directly: android skills add --agent codex — this makes all 30 Android skills discoverable. To verify discovery without a model request, run codex debug prompt-input "Reply with exactly OK." and inspect the generated skill catalog.
TroubleshootingHow to fix 'Unresolved reference: TvLazyColumn' error in Compose for TV?
TvLazyColumn was renamed when Compose for TV migrated from alpha to stable (1.0.0). Replace TvLazyColumn with the standard LazyColumn and import it from androidx.compose.foundation.lazy.LazyColumn instead of the TV-specific package. The same applies to TvLazyRow → LazyRow. See the official migration guide: https://medium.com/androiddevelopers/migrating-compose-for-tv-from-alpha-to-stable-b0074d6fd350
TroubleshootingWhy does the JSON example in the android-cli journeys.md 'Summarizing' section fail to parse?
Older versions of the devtools/android-cli skill shipped a malformed example in references/journeys.md: it contained inline // comments, trailing commas, an unterminated string ("action": "Click the blue button,), and a malformed "journey:", key, so it could not be parsed as JSON. Fix: update to the latest version of the android-cli skill, where the example is now fenced as ``json with valid syntax (closed strings, no trailing commas, no comments) and the field explanations (status, commands, comment, valid status values) moved to a separate 'Field reference' list below the example. If you are stuck on an old copy, manually strip the //` comments and trailing commas and close all strings before parsing or reusing the example.