ghr
A toolkit for GitHub releases.
Install tools from GitHub releases with one cross-platform command. A single
static binary that picks the right asset for your OS and architecture.
Supports verifying with minisign,
sigstore, and checksums. Install it on a
GitHub-hosted runner with pipx install ghr-bin.
Usage
ghr list List installed tools
ghr install [] [ ...] Install one or more tools from GitHub releases
ghr uninstall Remove an installed tool
ghr download [] [ ...] Download one or more release assets
ghr path ensure [--dry-run] Add ghr's bin dir to your user PATH
ghr path [bin|tools|cache] Show ghr directories
ghr version Print version and exit
ghr help Print this help and exit
Each `` is owner/repo[@tag] (auto-pick asset) or
owner/repo/file[@tag] (specific asset). A 56-char RW/RU-prefixed
base64 token immediately after a spec is treated as that spec's
minisign public key. Run ghr help to show help for a
specific command, e.g. ghr download help.
Examples
# Install the latest release of a tool
ghr install burntsushi/ripgrep
# Install a specific version
# https://github.com/bytecodealliance/wasmtime/releases/tag/v44.0.1
ghr install bytecodealliance/wasmtime@v44.0.1
# Install several tools in one invocation (shared HTTP client + auth)
ghr install burntsushi/ripgrep@15.1.0 sharkdp/fd@v10.2.0
# Install minisign itself, verifying the release with the upstream
# minisign public key (inline per-spec key).
# https://jedisct1.github.io/minisign/
ghr install jedisct1/minisign@0.12 \
RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3
Install
pipx install ghr-bin
uv tool install ghr-bin
winget install ghr
brew install cataggar/ghr/ghr
See doc/README.md for download, install, directories,
uninstall, and verification details (including
verifying ghr's own releases).
GitHub Actions
For workflows, install several tools in one cached step:
- uses: cataggar/ghr/actions/install@v0.3.0 # pin to the matching ghr release
with:
tools: |
BurntSushi/ripgrep@14.1.1
sharkdp/fd@v10.2.0