Manage Packages
This guide covers the common package lifecycle. Use --non-interactive when
you want plain output and no transient terminal UI. Add --json on supported
read-only or result-oriented commands when a script should parse the result.
Add and Refresh Repositories
Add a repository to the local index:
ghd repo add owner/repo
Refresh one indexed repository:
ghd repo refresh owner/repo
Refresh every indexed repository:
ghd repo refresh --all
List indexed repositories:
ghd repo list
Remove a repository from the index:
ghd repo remove owner/repo
repo remove only updates the local index. It does not uninstall packages that
were already installed from that repository.
Discover Packages
List packages from the local index:
ghd list
List packages directly from one repository without adding it to the index:
ghd list owner/repo
Show package details:
ghd info package
ghd info owner/repo
ghd info owner/repo/package
ghd info owner/repo auto-selects the package only when the repository declares
exactly one package.
Install Packages
Install an indexed package by name:
ghd --yes --non-interactive install package
Install a specific version:
ghd --yes --non-interactive install package@1.2.3
Install directly from a repository without relying on the local index:
ghd --yes --non-interactive install owner/repo/package
ghd --yes --non-interactive install owner/repo/package@1.2.3
If @version is omitted, ghd resolves the latest eligible stable release for
the package on the current platform. Prereleases require an explicit version.
Check, Update, and Verify
Check one package for updates:
ghd check package
Check all installed packages:
ghd check --all
Update one package:
ghd --yes --non-interactive update package
Update all installed packages:
ghd --yes --non-interactive update --all
Re-verify one installed package:
ghd verify package
Re-verify all installed packages:
ghd verify --all
Updates use the same verification path as installs. If an update would change
the trusted signer workflow, ordinary --yes --non-interactive is not enough;
review it interactively or approve the signer change explicitly:
ghd --yes --approve-signer-change --non-interactive update package
Inspect Local State
List installed packages:
ghd installed
Check environment readiness:
ghd doctor
doctor checks the local index, store, state, binary directory, GitHub API
connectivity, and whether the managed binary directory is on PATH.
Uninstall Packages
Uninstall by package name:
ghd uninstall package
Uninstall by fully qualified target:
ghd uninstall owner/repo/package
Uninstall removes the active managed package state, store contents, and exposed binary links for that package.