xget: easy pre-built binary installation
[!NOTE]
xget is a forked codebase of zyedidia/eget focusing on some additional features and improvements. The original project does not seem to be actively maintained.
The version of xget is starting at v2.0.0 to avoid confusion with the original project.

xget is the best way to easily get pre-built binaries for your favorite
tools. It downloads and extracts pre-built binaries from releases on GitHub or GitLab. To
use it, provide a repository and xget will search through the assets from the
latest release in an attempt to find a suitable prebuilt binary for your
system. If one is found, the asset will be downloaded and xget will extract the
binary to the current directory. xget should only be used for installing
simple, static prebuilt binaries, where the extracted binary is all that is
needed for installation. For more complex installation, you may use the
--download-only option, and perform extraction manually.

For software maintainers, if you provide prebuilt binaries on GitHub or
GitLab, you can list xget as a one-line method for users to install your
software.
xget has a number of detection mechanisms and should work out-of-the-box with
most software that is distributed via single binaries on GitHub or GitLab
releases. First try using xget on your software, it may already just work.
Otherwise, see the FAQ for a clear set of rules to make your software
compatible with xget.
Documentation
Installation
[!NOTE]
See full documentation for latest installation instructions.
Before you can get anything, you have to get xget. If you already have xget and want to upgrade, use xget self-update.
Windows
Windows install options
Bash (Git Bash / WSL)
curl -fsSL https://raw.githubusercontent.com/camalot/xget/main/install/xget.sh | bash
[!NOTE]
The default install location is $HOME/.local/bin. You can change the install location with the -d or --dir option
curl -fsSL -o xget.sh https://raw.githubusercontent.com/camalot/xget/main/install/xget.sh && bash xget.sh -d /usr/local/bin
PowerShell
[!NOTE]
When run from a downloaded file, the quick-install scripts will download and verify the sha256 checksum of the install script before continuing. When piped directly to bash or iex, script checksum verification is skipped because there is no local script file to hash. Release asset checksums are still verified.
iwr https://raw.githubusercontent.com/camalot/xget/main/install/xget.ps1 | iex
Scoop
scoop bucket add camalot https://github.com/camalot/scoop
scoop install camalot/xget
Archive
| Asset |
Architecture |
xget_<VERSION>_windows_amd64.zip |
x64 |
xget_<VERSION>_windows_arm64.zip |
ARM64 |
Linux
Linux install options
Bash
curl -fsSL https://raw.githubusercontent.com/camalot/xget/main/install/xget.sh | bash
[!NOTE]
The default install location is $HOME/.local/bin. You can change the install location with the -d or --dir option
curl -fsSL -o xget.sh https://raw.githubusercontent.com/camalot/xget/main/install/xget.sh && bash xget.sh -d /usr/local/bin
PowerShell
iwr https://raw.githubusercontent.com/camalot/xget/main/install/xget.ps1 | iex
Debian / Ubuntu (.deb)
curl -fsSLO https://github.com/camalot/xget/releases/download/v<VERSION>/xget_<VERSION>_amd64.deb
sudo dpkg --install xget_<VERSION>_amd64.deb
Also available: xget_<VERSION>_arm64.deb.
Fedora / RHEL / AlmaLinux (.rpm)
curl -fsSLO https://github.com/camalot/xget/releases/download/v<VERSION>/xget-<VERSION>-1.el9.x86_64.rpm
sudo dnf install ./xget-<VERSION>-1.el9.x86_64.rpm
Also available: xget-<VERSION>-1.el9.aarch64.rpm.
Alpine (.apk)
curl -fsSLO https://github.com/camalot/xget/releases/download/v<VERSION>/xget-<VERSION>-r0-x86_64.apk
sudo apk add --allow-untrusted xget-<VERSION>-r0-x86_64.apk
Also available: xget-<VERSION>-r0-aarch64.apk.
Arch Linux (.pkg.tar.zst)
curl -fsSLO https://github.com/camalot/xget/releases/download/v<VERSION>/xget-bin-<VERSION>-1-x86_64.pkg.tar.zst
sudo pacman -U xget-bin-<VERSION>-1-x86_64.pkg.tar.zst
Also available: xget-bin-<VERSION>-1-aarch64.pkg.tar.zst.
Homebrew
brew install camalot/scoop/xget
Archive
| Asset |
Architecture |
xget_<VERSION>_linux_amd64.tar.gz |
x86_64 |
xget_<VERSION>_linux_arm64.tar.gz |
aarch64 |
macOS
macOS install options
Bash
curl -fsSL https://raw.githubusercontent.com/camalot/xget/main/install/xget.sh | bash
[!NOTE]
The default install location is $HOME/.local/bin. You can change the install location with the -d or --dir option
curl -fsSL -o xget.sh https://raw.githubusercontent.com/camalot/xget/main/install/xget.sh && bash xget.sh -d /usr/local/bin
PowerShell
iwr https://raw.githubusercontent.com/camalot/xget/main/install/xget.ps1 | iex
Homebrew
brew install camalot/scoop/xget
Archive
| Asset |
Architecture |
xget_<VERSION>_darwin_amd64.tar.gz |
Intel |
xget_<VERSION>_darwin_arm64.tar.gz |
Apple Silicon |
Android (Termux)
Android install options
Bash
curl -fsSL https://raw.githubusercontent.com/camalot/xget/main/install/xget.sh | bash
[!NOTE]
The default install location is $HOME/.local/bin. You can change the install location with the -d or --dir option
curl -fsSL -o xget.sh https://raw.githubusercontent.com/camalot/xget/main/install/xget.sh && bash xget.sh -d /usr/local/bin
Archive
curl -fsSLO https://github.com/camalot/xget/releases/download/v<VERSION>/xget_<VERSION>_android_arm64.tar.gz
tar -xzf xget_<VERSION>_android_arm64.tar.gz xget
install -Dm755 xget "$PREFIX/bin/xget"
| Asset |
Architecture |
xget_<VERSION>_android_arm64.tar.gz |
ARM64 |
Verify a download
Checksum verification
curl -fsSLO https://github.com/camalot/xget/releases/download/v<VERSION>/checksums.txt
sha256sum --check --ignore-missing checksums.txt
zyedidia/eget
Install with eget
If you already have eget, you can use it to install xget by running:
eget camalot/xget --asset "^.sbom.json"
Already have xget? Upgrade in place with xget self-update.
Full instructions: https://camalot.github.io/xget/installation.html
GitHub Action
For GitHub Actions workflows, use xget-action
to install xget (with binary caching) and run it in a single step:
- name: Install a tool with xget
uses: camalot/xget-action@v1
with:
package: junegunn/fzf
You can also use the action to just install xget on the GitHub Actions runner without installing any packages. You can then use xget in subsequent steps to install other tools as needed.
- uses: camalot/xget-action@v1
- shell: bash
run: |
xget install eza-community/eza --to ~/.local/bin
xget install junegunn/fzf --to ~/.local/bin
xget install bschaatsbergen/cidr --to ~/.local/bin
The xget-action uses the --non-interactive flag by default to ensure that installations do not prompt for user input, which is suitable for automated CI/CD environments.
See the xget-action
for the full list of inputs/outputs and more examples.
Contributing
If you find a bug, have a suggestion, or something else, please open an issue
for discussion. See CONTRIBUTING for more information.
Code of Conduct
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
License
This project is licensed under the MIT License. See the LICENSE file for details.