xget

module
v0.0.0-...-0fa58e5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 27, 2026 License: MIT

README

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.

Release MIT License Codecov GitHub Build Release Issues

xget logo

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.

xget Demo

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.

Directories

Path Synopsis
cmd
xget command
Package main is the xget command entry point.
Package main is the xget command entry point.
internal
cli
Package cli implements the xget cobra commands.
Package cli implements the xget cobra commands.
config
Package config loads and resolves xget configuration files.
Package config loads and resolves xget configuration files.
engine
Package engine implements asset discovery, download, verification, and extraction.
Package engine implements asset discovery, download, verification, and extraction.
home
Package home resolves and expands the user's home directory.
Package home resolves and expands the user's home directory.
installed
Package installed tracks packages installed by xget.
Package installed tracks packages installed by xget.
lib/constants
Package constants defines shared string constants.
Package constants defines shared string constants.
options
Package options defines the resolved install options.
Package options defines the resolved install options.
semver
Package semver provides the minimal semantic version comparison xget needs to decide whether a release tag is newer than an installed one.
Package semver provides the minimal semantic version comparison xget needs to decide whether a release tag is newer than an installed one.
Package main runs xget end-to-end smoke tests.
Package main runs xget end-to-end smoke tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL