r/linuxadmin 7d ago

ghget — download / verify / install any tool from a GitHub release in one command, without looking up the asset name

https://github.com/krisiasty/ghget

Think of it as smart curl or wget for downloading and optionally installing any tool or asset from public github repo but not requiring github authentication, no hitting rate limits, figuring out which asset is right for your platform / os / architecture, manually verifying checksums, etc.

It can be as simple as:

$ ghget astral-sh/uv --auto --install --dir ~/.local/bin

selected uv-x86_64-apple-darwin.tar.gz (darwin, amd64, tar.gz archive)
downloaded uv-x86_64-apple-darwin.tar.gz.sha256
downloaded uv-x86_64-apple-darwin.tar.gz
verified uv-x86_64-apple-darwin.tar.gz
installed ~/.local/bin/uv
installed ~/.local/bin/uvx

But the tool can do much more than that. You can find more usage examples and full docs in the README.md

If you find this useful, spot the repo where auto-detection doesn't work as expected, or have a great idea how to improve it even further - leave a comment or open github issue.

0 Upvotes

3 comments sorted by

5

u/juliebeezkneez 6d ago

I'm tired boss

1

u/StymiedSwyper 3d ago

How is this different/better than ghrel, gh, getghrel, and github-releases-downloader?

0

u/krisiasty 3d ago

I would say ghget is more versatile and smarter than most (if not all) similar tools, and it also supports other repositories beside github (kubernetes, helm, hashicorp... more to come).

Which of the tools you mentioned can do something like that reliably, automatically discovering your platform, os, library (libc / musl, if you're on linux), version, and even repo owner and name:
ghget kubectl --auto --install --dir ~/.bin
or:
ghget terraform --auto --install
or at least:
ghget uv --auto --install
...without requiring any authentication, and not hitting rate-limits imposed by github?

For most popular tools, just specify tool name and optional destination directory and you have ready-to-use binary. You can download any asset too, or select specific version. Or automatically extract all files, or just some of them... and so on. Read the docs if you are interested what else it can do.

I built it mainly for myself because other tools were missing features I needed, or were harder to use.
Whether it's better or more useful for others and their workflow - that's for them to decide after trying.