Jetpack Library Utilities
SkillDev toolsLooks up AndroidX and Jetpack library facts that change between releases: current artifact versions (ALPHA, BETA, RC, STABLE, SNAPSHOT, build IDs), Maven coordinates for classes/packages, direct dependencies, and published source code. Use when looking up AndroidX/Jetpack library versions, finding Maven coordinates, downloading source JARs, inspecting class implementations, or resolving library dependencies. Do not use for general Android tutorials or APIs where no lookup is required.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Jetpack Library Utilities skill
What this skill tells your AI
The instructions your AI receives, as published by ithinkihaveacat/dotfiles in skills/jetpack/SKILL.md and read by ahel’s review.
Using the Jetpack Script vs. Raw Maven Queries
Use scripts/jetpack as the primary interface for resolving AndroidX and
Jetpack library coordinates, versions, and source locations. References to
scripts/... in this skill are relative to this skill directory. The script
handles complex resolution logic that manual queries miss:
- Package-to-coordinate resolution with a comprehensive exceptions table
- Code search integration for finding artifacts by class name
- Version type filtering (ALPHA, BETA, STABLE, SNAPSHOT)
- Kotlin Multiplatform platform-specific source detection
- Build ID resolution for pinned snapshots
The cache is the script's storage, not an interface. curl and xmllint
against dl.google.com are the obvious way to bypass the script, but reaching
into $JETPACK_CACHE_DIR with jq, unzip, jar, find, or grep bypasses
it just as completely — and offline, where the script is answering from that
same cache, it looks like the shortest path. It is not: the index and the cached
responses are raw upstream data, so reading them by hand skips the version-type
filtering, the exceptions table, and the platform-source detection listed above,
and returns something plausible with no sign that those steps were missed. Ask
the script the question, offline or not; browse the cache only to diagnose the
script itself.
When to read the script source: If the script doesn't do exactly what you need, or fails due to missing dependencies, read the script source. It encodes Maven repository URL patterns, version filtering logic, and package naming heuristics—use it as reference when building similar functionality.
If the script fails, say so. A nonzero exit means the answer has not been verified against live Maven data. Do not silently fall back to a remembered version number or coordinate and present it as current — Jetpack versions change often enough that a memorized answer can be confidently wrong. Report the failure (missing dependency, network error, unresolved package) to the user, including the script's own error message, and consult references/troubleshooting.md before retrying.
If you have no network, say that too. In a sandbox that denies egress, run
scripts/jetpack doctor first: it reports whether the cache can answer at all.
Then set AGENT_OFFLINE=1 so the script serves cached answers instead of
spending timeouts on calls it cannot make. Every cached answer arrives with its
age on stderr ((cached 3 days ago)) — pass that age on rather than presenting
a stale version as current. A cache miss is an error quoting the command to
re-run where there is network; it is never a reason to answer from memory.
Quick Start
Requirements: curl, xmllint (libxml2-utils), jar (JDK), jq, perl.
Highest-Value Commands
- Inspect a class (most common):
scripts/jetpack inspect androidx.wear.tiles.TileService - Search for a library:
scripts/jetpack search androidx.wear.compose - Check stable version:
scripts/jetpack version androidx.wear.tiles:tiles STABLE - Resolve package to Maven coordinate:
scripts/jetpack resolve androidx.lifecycle.ViewModel - Download bleeding-edge source:
scripts/jetpack source androidx.compose.ui:ui SNAPSHOT - Download reference sample code:
scripts/jetpack-samples androidx.compose.remote:remote-creation-compose
Subcommand Overview
version
Purpose: Get specific version type (ALPHA, BETA, SNAPSHOT, etc.) for a
package. Usage: scripts/jetpack version PACKAGE [TYPE] [REPO] Options:
ALPHA, BETA, RC, STABLE, LATEST, SNAPSHOT.
list versions
Purpose: List all versions for a package. Usage:
scripts/jetpack list versions PACKAGE [REPO]
resolve
Purpose: Convert Android package/class name to Maven coordinate. Usage:
scripts/jetpack resolve PACKAGE_OR_CLASS Note: Uses heuristic rules and an
exceptions table.
search
Purpose: Search for artifacts by package, artifact, or class name.
Usage: scripts/jetpack search [OPTIONS] QUERY Options: --force
(rebuild cache).
source
Purpose: Download and extract source JARs. Usage:
scripts/jetpack source PACKAGE... [VERSION] Options: --output DIR to
specify destination, --find PATTERN to locate specific files.
inspect
Purpose: Convenience wrapper combining search/resolve + source.
Usage: scripts/jetpack inspect CLASS_NAME [VERSION] Note: Best for
quickly checking implementation details; uses code search if direct resolution
fails.
list dependencies
Purpose: List direct Maven dependencies for an artifact. Usage:
scripts/jetpack list dependencies ARTIFACT [VERSION]
doctor
Purpose: Report dependencies, offline mode, and cache state. Usage:
scripts/jetpack doctor Note: Read-only; exits non-zero if anything needs
attention.
resolve-exceptions
Purpose: Find missing exceptions for the resolve command. Usage:
scripts/jetpack resolve-exceptions COORDINATE [VERSION]
Standalone Scripts
scripts/jetpack-samples
Purpose: Download non-published reference samples and integration tests.
Usage: scripts/jetpack-samples ARTIFACT [--output DIR] Details:
Locates files from the AOSP source structure and aggregates into readable
components locally.
Version Types
Symbolic (Floating)
Resolves to the latest matching version at runtime.
- ALPHA: Latest alpha (e.g.,
1.2.0-alpha05) - BETA: Latest beta (e.g.,
1.2.0-beta02) - RC: Latest release candidate (e.g.,
1.2.0-rc01) - STABLE: Latest stable release (e.g.,
1.1.0) - LATEST: Latest version of any kind.
- SNAPSHOT: Latest build from
androidx.dev.
Pinned (Immutable)
Always resolve to the exact same code.
- Version String: Specific version (e.g.,
1.6.0-alpha01). - Build ID: Specific snapshot build (e.g.,
14710011fromandroidx.dev/snapshots/builds).
Common Workflows
Inspecting a Class Implementation
cd "$(scripts/jetpack inspect androidx.wear.tiles.TileService)"
# Browse source files...
Finding a Library
# Find libraries related to 'wear.compose'
scripts/jetpack search androidx.wear.compose
# Find which artifact contains 'RemoteImage'
scripts/jetpack search RemoteImage
Checking Available Versions
# List all versions
scripts/jetpack list versions androidx.wear.tiles:tiles
# Check specific version types
scripts/jetpack version androidx.wear.tiles:tiles ALPHA
scripts/jetpack version androidx.wear.tiles:tiles SNAPSHOT
Working with Bleeding-Edge Code
scripts/jetpack source androidx.compose.remote:remote-creation-compose SNAPSHOT
Finding Maven Coordinate
scripts/jetpack resolve androidx.core.splashscreen.SplashScreen
# Output: androidx.core:core-splashscreen
Working Without Network (CI, Sandboxed Agents)
Every online run writes what it fetched into
${JETPACK_CACHE_DIR:-${XDG_CACHE_HOME:-$HOME/.cache}/jetpack}, so preparing
for an offline run means nothing more than asking the same question once where
there is network:
# Where there is network: ask, and the answers are cached as a side effect
scripts/jetpack version androidx.wear.tiles:tiles
scripts/jetpack inspect androidx.wear.tiles.TileService
# Where there is not: the same commands answer from the cache
AGENT_OFFLINE=1 scripts/jetpack doctor # is the cache good enough?
AGENT_OFFLINE=1 scripts/jetpack version androidx.wear.tiles:tiles
AGENT_OFFLINE=1 scripts/jetpack inspect androidx.wear.tiles.TileService
A miss quotes the command to re-run, so the fix is always the invocation that just failed.
The sandbox that denies egress usually denies writes too, so the lookups read
straight from the cache and need no writable filesystem at all: version,
list versions, list dependencies, resolve, and search all answer with
nowhere to write. source and inspect are the exception — they extract a JAR,
so they need somewhere to put it; pass --output DIR naming a writable
directory when the default temp location is not one.
See local HTTP caching guidelines (storing response artifacts locally under
$XDG_CACHE_HOME) for the repo-wide convention.
Safety Notes
- Network Access: Requires access to
dl.google.com,androidx.dev, andcs.android.com— or a cache warmed by an earlier online run, plusAGENT_OFFLINE=1. - Cached answers are dated, not current: offline answers carry their age on stderr. Report that age; do not present a stale version as the latest.
- SNAPSHOTs: Change frequently; use pinned versions or Build IDs for reproducibility.
- Kotlin Multiplatform:
sourceandinspectautomatically download platform-specific sources (e.g.,-android,-desktop) if detected in the POM.
Reference Material
- Command Reference: Detailed usage, arguments, and raw commands for all subcommands. See references/command-index.md.
- Troubleshooting: Solutions for network errors, missing dependencies, and search failures. See references/troubleshooting.md.
Signals
- GitHub stars
- 48
- Forks
- 10
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
jetpack- Source
- github.com/ithinkihaveacat/dotfiles