Installation
Sift ships as a single self-contained binary with no runtime dependencies. Choose the path that fits your platform.
Requirements
- Runtime: any supported operating system below. The prebuilt binaries need nothing else installed.
- To build from source: Go 1.26 or newer.
- Signature compression (
--mode signatures) is included in the prebuilt release binaries. Building from source enables it when cgo is available.
macOS and Linux (curl)
curl -fsSL https://bethropolis.github.io/sift/install.sh | sh
The installer places sift in ~/.local/bin. Set SIFT_INSTALL_DIR to choose
a different destination:
SIFT_INSTALL_DIR="$HOME/bin" curl -fsSL https://bethropolis.github.io/sift/install.sh | sh
If ~/.local/bin is not already on your PATH, add it to your shell profile:
export PATH="$HOME/.local/bin:$PATH"
Homebrew
brew install bethropolis/tap/sift
Windows (Scoop)
scoop bucket add bethropolis https://github.com/bethropolis/scoop-bucket
scoop install sift
FreeBSD and other release archives
Download a prebuilt archive for your operating system and architecture from
the latest GitHub release.
Archives are produced for Linux, Windows, macOS, and FreeBSD on amd64,
arm64, 386, and armv7 where supported by Go.
Build from source
Clone the repository and run the local installer, which builds the checkout you
are in and installs to ~/.local/bin (override with SIFT_INSTALL_DIR):
git clone https://github.com/bethropolis/sift.git
cd sift
./scripts/install.sh
Or build manually:
go build -o "$HOME/.local/bin/sift" ./cmd/sift
During development the justfile provides just build (writes
bin/sift), just test, just vet, and just fmt.
Verify the installation
sift version
# e.g. sift version 1.0.4
Confirm it can render by scanning a small project to standard output:
sift dump . --output -
Shell completions
sift can generate completion scripts for Bash, Zsh, Fish, and PowerShell:
sift completion bash # or: zsh, fish, powershell
Both installers write Bash, Zsh, and Fish completions into your user-local
directories automatically when those shells are present (failures are
non-fatal warnings). Zsh additionally needs the site-functions directory on
your fpath; the installer prints the exact line to add. To load completions
without reinstalling, source the output directly:
source <(sift completion bash)
Upgrading
Re-run the same install command you used originally — the installer overwrites the existing binary — or download the newest release archive. State and preferences written during use live under your application configuration directory and are preserved across upgrades.
Uninstalling
Remove the installed binary, and optionally the config/state directory:
rm -f ~/.local/bin/sift # curl / local installer path
brew uninstall bethropolis/tap/sift # Homebrew
scoop uninstall sift # Scoop
rm -rf ~/.config/sift # optional: config, state, and preferences