Skip to main content
ghr logo

Logo by Talia Blasquez. Licensed under CC BY 4.0.

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, GitHub artifact attestations, and checksums. Install it locally with pipx install ghr-bin, or use the first-party static bootstrap in GitHub Actions.

Usage

ghr list [--ids|--json]                            Report installed units
ghr install <source> ["?<query>"] [<pubkey>] ...   Install or replace tools by stable ID
ghr uninstall <id>                                 Remove exactly one installed ID
ghr download <spec> [<pubkey>] [<spec> ...]        Download one or more release assets
ghr link <id>|[--path] <name>                      Link Windows commands into WSL
ghr unlink <id>|[--path] <name>                    Remove ghr-created WSL links
ghr path add [--dry-run]                           Add ghr's bin dir to your user PATH
ghr path [bin|tools|cache]                         Show ghr directories
ghr minisign sign <file> [<file> ...]              Sign release artifacts with a minisign key
ghr version [--target]                             Print version or build target and exit
ghr -h | --help                                    Print this help and exit

Each install <source> is owner/repo[@tag], owner/repo/file[@tag], a GitHub release-download URL, or a direct URL. GitHub sources derive the stable lowercase ID owner/repo; direct URLs require ?id=<id>. A quoted query token can set id, repeat alias=<source>:<published>, and set minisign. A 56-character RW/RU-prefixed key immediately after a source remains supported. Reinstalling an existing ID replaces it transactionally.

Run ghr <COMMAND> --help for complete syntax and examples.

[!IMPORTANT] Breaking change in v0.8.0: the help command and positional help aliases were removed. Replace ghr help with ghr --help, and replace ghr <COMMAND> help with ghr <COMMAND> --help or ghr <COMMAND> -h.

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

# Keep two releases from one repository under independent IDs and commands
ghr install BurntSushi/ripgrep@14.1.0 "?id=rg-14-1-0&alias=rg:rg-14-1-0"
ghr install BurntSushi/ripgrep@14.1.1 "?id=rg-14-1-1&alias=rg:rg-14-1-1"

# Replace one ID, list exact identities, then remove only that ID
ghr install BurntSushi/ripgrep@14.1.1 "?id=rg-14-1-0&alias=rg:rg-14-1-0"
ghr list --ids
ghr uninstall rg-14-1-0

# Install minisign itself, verifying with its minisign public key
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
curl -fsSL https://raw.githubusercontent.com/cataggar/ghr/main/install.sh | sh
iwr -useb https://raw.githubusercontent.com/cataggar/ghr/main/install.ps1 | iex
ghr install cataggar/ghr RWSbsumpaHb+N3KCEt/EUXQ5y6Kkk8r/zCb5Z4jhEuEX8x2/U5wr5QC0

See the documentation 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.8.0  # pin to the matching ghr release
  with:
    tools: |
      burntsushi/ripgrep@14.1.0 ?id=rg-14-1-0&alias=rg:rg-14-1-0
      burntsushi/ripgrep@14.1.1 ?id=rg-14-1-1&alias=rg:rg-14-1-1
      sharkdp/fd@v10.2.0

The action shares git tags with the ghr CLI — pinning @v0.8.0 pins both the action body and the verified static binary. The bootstrap uses the runner's maintained Node action runtime, so it also works inside bare Ubuntu and Debian job containers without Python or pipx. Pick the latest tag from the releases page.

See actions/install, actions/download, actions/setup, and Caching in GitHub Actions for details.

Signing releases

ghr minisign sign produces a minisign .minisig sidecar without an external minisign binary, a key file on disk, or an expect script. The secret key and password come from the environment, so a release job is a single step:

- run: ghr minisign sign hello.wasm -t "tag:${{ github.ref_name }} commit:${GITHUB_SHA}"
  env:
    MINISIGN_SECRET_KEY: ${{ secrets.MINISIGN_SECRET_KEY }}
    MINISIGN_PASSWORD:   ${{ secrets.MINISIGN_PASSWORD }}

Input files are bare positional arguments (each <file> is signed to <file>.minisig). A trusted comment may be given with -t (applied to every input); when omitted it defaults, like minisign, to timestamp:<unix>\tfile:<name>\thashed per file. The secret key must come from MINISIGN_SECRET_KEY and an encrypted key's password from MINISIGN_PASSWORD — there is no key-file flag, and the password is never read from a tty or stdin. Signatures use the prehashed (ED) format and are byte-for-byte identical to minisign -S output. Run ghr minisign sign --help for all options.

License

MIT

Release files for ghr-bin 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for ghr-bin 0.8.0
File
ghr_bin-0.8.0-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
ghr_bin-0.8.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
ghr_bin-0.8.0-py3-none-musllinux_1_1_x86_64.whl Python 3 none Linux musl 1.1+ x86-64 Details
ghr_bin-0.8.0-py3-none-musllinux_1_1_aarch64.whl Python 3 none Linux musl 1.1+ ARM64 Details
ghr_bin-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
ghr_bin-0.8.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
ghr_bin-0.8.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
ghr_bin-0.8.0-py3-none-macosx_10_9_x86_64.whl Python 3 none macOS 10.9+ x86-64 Details

Total release size: 10.4 MB

Release files / ghr_bin-0.8.0-py3-none-win_arm64.whl

Download URL ghr_bin-0.8.0-py3-none-win_arm64.whl
Size 1.3 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
a52b685bed7f1afe8624a5ad026aa9758bfe90584754a3b2664dc12ec2ca5133
BLAKE2b-256 checksum
How to use checksums
e0d75c612d58189c99fd90b0771559f134aba3e1f85f5011108d8cd7196ee972
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Release files / ghr_bin-0.8.0-py3-none-win_amd64.whl

Download URL ghr_bin-0.8.0-py3-none-win_amd64.whl
Size 1.4 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
14e4b7ef2803bcfaec03fc7aa5d57e5e1e86bbfcb2944429446a5b96c9d89161
BLAKE2b-256 checksum
How to use checksums
14f7933e12c9b39aea7e31a4af073e8501f0ffce366c87717968758ed396f7d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Release files / ghr_bin-0.8.0-py3-none-musllinux_1_1_x86_64.whl

Download URL ghr_bin-0.8.0-py3-none-musllinux_1_1_x86_64.whl
Size 1.3 MB
Tags Linux musl 1.1+ x86-64 Python 3
SHA-256 checksum
How to use checksums
fc233505545412e79c7c7693c9285f32352b36149b26efe1d1c0febf21fbe381
BLAKE2b-256 checksum
How to use checksums
32c24ae8f0a7052a9956ff1526a057f5064678d030ce61ebfc53df28fc328821
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Release files / ghr_bin-0.8.0-py3-none-musllinux_1_1_aarch64.whl

Download URL ghr_bin-0.8.0-py3-none-musllinux_1_1_aarch64.whl
Size 1.3 MB
Tags Linux musl 1.1+ ARM64 Python 3
SHA-256 checksum
How to use checksums
f5cb2a99b7e3ca6dd840d7da3b9acf78bdb974e211e88807ee1274a6c23a3653
BLAKE2b-256 checksum
How to use checksums
66ccb6fe1b1492e9c7f04d3d0611defef752a40dbbaef5d8a64bfbf5559bb186
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Release files / ghr_bin-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL ghr_bin-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.3 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
5b98f283e4345c840e69a9fb2010ffd2abd3150570bd31d39d79361e5feb6f2d
BLAKE2b-256 checksum
How to use checksums
0b1fdfadb69942d41c9cc603910e8041878737871347b209addd2d00821210ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Release files / ghr_bin-0.8.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL ghr_bin-0.8.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.3 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
4103a3fff8a59cf093cea728a8465db51aaa90c0834ab561d3a04e7af9040e34
BLAKE2b-256 checksum
How to use checksums
2480da6444f973952616a38cb9c393a906ad257353283429c6bc7066ffd97f1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Release files / ghr_bin-0.8.0-py3-none-macosx_11_0_arm64.whl

Download URL ghr_bin-0.8.0-py3-none-macosx_11_0_arm64.whl
Size 1.2 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7c46d1d5d5858b8cb70fa3c1115f105952338f301d2c58bf90e09862667ece78
BLAKE2b-256 checksum
How to use checksums
3b8e0cfeb1cf676fd732a2a28bdb74c8c7d5726e3a3bf5c8334915cf366f6954
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Release files / ghr_bin-0.8.0-py3-none-macosx_10_9_x86_64.whl

Download URL ghr_bin-0.8.0-py3-none-macosx_10_9_x86_64.whl
Size 1.3 MB
Tags Python 3 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
ecd89c43113a70164f13d5c00b3753a4e1c849e90dab426c976e7a8d0a5f6954
BLAKE2b-256 checksum
How to use checksums
ae8110164a4db5a852e5d53065b42fb1ec9ea459176d1c0c78e3799b7fe1bb28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 5, 2026.

Transparency log

Release history Release notifications | RSS feed

0.8.1

8 release files

This release

0.8.0 This release

8 release files

0.7.1

8 release files

0.7.0

8 release files

0.6.9

8 release files

0.6.8

8 release files

0.6.7

8 release files

0.6.6

8 release files

0.6.5

8 release files

0.6.4

8 release files

0.6.3

8 release files

0.6.2

8 release files

0.6.1

8 release files

0.6.0

8 release files

0.5.2

8 release files

0.5.0

8 release files

0.4.1

8 release files

0.4.0

8 release files

0.3.2

8 release files

0.3.1

8 release files

0.3.0

8 release files

0.2.1

8 release files

0.2.0

8 release files

0.1.6

8 release files

0.1.5

8 release files

0.1.4

8 release files

0.1.2

8 release files

0.1.1

8 release files

0.1.0

8 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page