About glab-packages
glab-packages is a glab command-line skill for managing package registry entries in GitLab projects. It lists packages, uploads and downloads generic package files, and deletes entries by ID or name and version.
Key features
- 01List and filter project packages
- 02Upload generic package files
- 03Download generic package files
- 04Delete packages by ID or name and version
- 05Use pagination and JSON filtering
Use cases
- 01Find packages by name or type
- 02Publish a generic package file to a project
- 03Download a package file with checksum verification
- 04Remove a verified package registry entry
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ vince-winkintel/ gitlab-cli-skills --skill glab-packagesAfter installing, type/glab-packagesin Claude Code to confirm it loaded.
Bundled filesreferences/commands.md
Details
From the project READMEglab packages
List packages in a GitLab project's package registry, upload/download generic package files, and delete package registry entries by numeric ID or by --name/--version.
glab packages list / ls lists project package registries. The current command surface also includes upload / ul for generic package uploads, download / dl for generic package downloads, and delete / rm for package deletion by numeric ID or by --name/--version.
Delete by name and version
glab packages delete --name example-generic --version 1.0.0 resolves the package in the selected project; --package-type defaults to generic. Supply the type explicitly for another ecosystem. --name and --version are required together. A positional numeric ID, --id, and --name are alternative selectors; do not combine them. The rm alias accepts the same options.
Preview the exact project, package name, version, type, and resolved ID before approving deletion. Deletion is permanent and prompts interactively; non-interactive use requires --yes, which must only follow explicit approval.
Quick start
# List all packages in the current project
glab packages list
# Alias
glab packages ls
# List packages from another project
glab packages list -R owner/repo
# Upload a file as a generic package version
glab packages upload ./build/app.zip --name my-package --version 1.0.0
# Download a generic package file
glab packages download --name my-package --version 1.0.0 --filename app.zip
# Delete a package by numeric ID after listing packages
glab packages delete 12345 --yes
Filtering
# Filter by package name substring
glab packages list --name my-package
# Filter by package type
glab packages list --package-type npm
glab packages list --package-type maven
glab packages list --package-type generic
Supported package types from glab help:
composer, conan, debian, generic, golang, helm, maven, npm, nuget, pypi, terraform_module
Pagination and automation
# Select a page and page size
glab packages list --page 2 --per-page 10
# JSON output filtering is available through the global --jq support on this command
glab packages list --jq '.[].name'
Use -R/--repo when running outside the target project's Git checkout. Prefer structured output/--jq for scripts rather than parsing text tables.
Upload generic package files
# Upload a local file under its original filename
glab packages upload ./build/app.zip --name my-package --version 1.0.0
# Store the uploaded file under a different package filename
glab packages upload ./build/app.zip --name my-package --version 1.0.0 --filename release.zip
# Alias and explicit target project
glab packages ul ./build/app.zip -n my-package --version 1.0.0 -R owner/repo
Upload stores the file as a generic package in the target project's package registry. --name and --version are required; --filename defaults to the local file basename. Use -R/--repo for uploads outside the target project checkout.
Download generic package files
# Download a package file to the current directory
glab packages download --name my-package --version 1.0.0 --filename app.zip
# Download into a directory, keeping the original file name
glab packages download -n my-package --version 1.0.0 --filename app.zip --path ./downloads/
# Download to an exact path, renaming the file
glab packages download -n my-package --version 1.0.0 --filename app.zip --path ./downloads/renamed.zip
# Download to an absolute path (missing parent directories are created)
glab packages download -n my-package --version 1.0.0 --filename app.zip --path /tmp/downloads/app.zip
# Skip checksum verification only when you intentionally accept the integrity risk
glab packages download -n my-package --version 1.0.0 --filename app.zip --no-verify
# Alias, overwrite an existing target, and explicit project targeting
glab packages dl -n my-package --version 1.0.0 --filename app.zip --force -R owner/repo
Download is limited to generic package files and requires --name, --version, and --filename. By default glab verifies the downloaded file against registry checksum metadata and fails if the destination already exists. Use --path for a relative or absolute directory/exact output filename; glab creates missing parent directories. Use --force to overwrite and --no-verify only when checksum verification is intentionally bypassed.
For downloads with duplicate filenames, checksum verification uses the newest matching package file (the highest file ID).
Delete packages
# Find the package ID first
glab packages list --name my-package
# Delete by numeric package ID; prompts for confirmation
glab packages delete 12345
# Skip confirmation for automation after independently confirming the ID
glab packages delete 12345 --yes
# Alias
glab packages rm 12345
Delete accepts a numeric ID or the --name/--version pair described above. Use glab packages list (preferably with JSON/--jq in scripts) to identify the ID, then pass --yes only when the target package has been verified.
Reference
See references/commands.md for command synopsis and flags.