@registry-tags tool lists the tags published for a container image across public and private OCI registries — Docker Hub, GCR, GHCR, Quay, ACR, Harbor and Artifactory. It is keyless for public images and reads ~/.docker/config.json for private ones. No image is pulled — only the registry’s read-only tags API is queried, so it is fast and side-effect free.
Usage
@registry-tags automatically when it needs to validate or discover tags.
Arguments
| Argument | Description | Default |
|---|---|---|
image | Image reference (required). E.g. redis, library/nginx, ghcr.io/cli/cli, myreg.example.com/team/app | (required) |
registry | Override the registry base URL (e.g. https://harbor.example.com) | (inferred from image) |
username | Registry username (private images) | (optional) |
password | Password/token paired with username | (optional) |
token | Pre-issued Bearer token (GHCR PAT, GCR OAuth, Harbor robot token) | (optional) |
limit | Maximum number of tags returned | 200 (cap 1000) |
Credentials
Credentials are optional. When omitted, the resolution order is:~/.docker/config.json
The
auths entry (base64) or identitytoken for the matching registry — exactly how docker and crane read it. (The credsStore/credHelpers helpers are not invoked.)Registries that gate anonymous reads
GHCR, Quay and GCR require a token even to read public tags.@registry-tags performs the OCI Bearer-token negotiation automatically (it reads the WWW-Authenticate challenge, fetches the token from the realm and retries the call), so those images return tags with no setup on your side.
Output
One tag per line, with an image/host/count header. When the number of tags exceedslimit, the output is truncated and the truncation is flagged:
Notes
- It is read-only and concurrency-safe — the orchestrator can run several
@registry-tagsin parallel. - It follows pagination (Docker Hub
next, OCILink) up tolimit, instead of silently truncating at the first page. - It uses the shared web-tools HTTP client: it honors the corporate proxy (
HTTPS_PROXY) and the global TLS trust (CHATCLI_CA_BUNDLE). - Internal registries (
registry.company.com,localhost:5000) work — only cloud metadata endpoints are blocked (SSRF protection).