ghr-bin

raw JSON →
0.1.6 verified Sat May 09 auth: no python

Install tools from GitHub releases via CLI. Version 0.1.6 (stable) with 0.2.0-dev.3 pre-release. Active development, published as a Python shim that downloads a native binary.

error ghr: command not found
cause ghr binary not on PATH; uv/pipx install location not in PATH.
fix
Add uv/pipx bin directory to PATH: export PATH="$HOME/.local/bin:$PATH" (Linux/macOS) or add %USERPROFILE%\.local\bin (Windows).
error error: No asset found for platform
cause ghr could not find a GitHub release asset matching the current OS/arch.
fix
Specify a release tag with --tag or use a repository that publishes assets for your platform. Check available assets with ghr list owner/repo.
error AttributeError: module 'ghr' has no attribute '...'
cause Attempting to import ghr as a Python module; ghr-bin has no public API.
fix
Use subprocess to call the ghr CLI: subprocess.run(['ghr', 'install', 'owner/repo']).
gotcha ghr-bin installs as a shim that downloads a native binary; the 'ghr' executable is not the Python script but a binary. Ensure path includes the uv/pipx tool bin directory.
fix After install, run `ghr --help` to verify it works. If not found, add `~/.local/bin` (Linux) or `%USERPROFILE%\.local\bin` (Windows) to PATH.
deprecated Installing via `pip install ghr-bin==0.1.6` may work but is discouraged; the project recommends `uv tool install` or `pipx install`.
fix Use `uv tool install ghr-bin` or `pipx install ghr-bin` instead of `pip install`.
gotcha Version 0.2.0-dev.x are pre-releases with manual installation only (`uv tool install ghr-bin==0.2.0.dev3`). They are not listed on PyPI by default.
fix To try dev versions, specify full version with `==` and allow pre-releases: `uv tool install ghr-bin==0.2.0.dev3`.
breaking PyPI wheels on Windows previously missed shim.exe (v0.1.0). Fixed in v0.1.1.
fix Upgrade to >=0.1.1.
uv tool install ghr-bin==0.1.6
pipx install ghr-bin==0.1.6

Run ghr install from Python via subprocess. The tool is meant for CLI use, not as a library.

import subprocess
subprocess.run(["ghr", "install", "cli/cli"], check=True)