Download siltide

One static binary per platform, or a package for the manager you already use. The quickest way is the install script: it works out which build this machine needs, checks it against the published checksums, and puts it on your PATH.

curl -fsSLO https://raw.githubusercontent.com/mesutoezdil/siltide/main/packaging/install/install.sh
sh install.sh

The rest of this page is the manual alternative.

PlatformWhat to takeUpdates
Linux x86-64 / arm64siltide-linux-amd64, siltide-linux-arm64the install script, or by hand
macOS arm64 / x86-64siltide-darwin-arm64, siltide-darwin-amd64Homebrew, or the install script
Debian, Ubuntusiltide_*_amd64.debapt, once installed
Fedora, RHEL, SUSEsiltide-*.x86_64.rpmdnf or zypper
Alpinesiltide_*.apkapk, with an OpenRC service included
Archsiltide_*.pkg.tar.zstpacman
Containerghcr.io/mesutoezdil/siltidepull the tag again
Nixgithub:mesutoezdil/siltidenix run, nothing installed

All release assets ↗

By hand, every step

The install script does all of this. To do it manually, paste the whole block into an empty directory: it downloads the build for this machine, checks it against the published checksums, checks where it was built, and installs it.

os=$(uname -s | tr '[:upper:]' '[:lower:]')                 # linux or darwin
arch=$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')  # amd64 or arm64
tag=$(curl -fsSL https://api.github.com/repos/mesutoezdil/siltide/releases | grep -m1 '"tag_name"' | cut -d '"' -f4)
base=https://github.com/mesutoezdil/siltide/releases/download/$tag

curl -fsSLO "$base/siltide-$os-$arch"
curl -fsSLO "$base/checksums.txt"

command -v sha256sum >/dev/null && sha=sha256sum || sha="shasum -a 256"
$sha -c checksums.txt --ignore-missing
gh attestation verify "siltide-$os-$arch" --repo mesutoezdil/siltide

chmod +x "siltide-$os-$arch"
sudo install "siltide-$os-$arch" /usr/local/bin/siltide

The attestation says which workflow, at which commit, produced that exact file, and gh attestation verify is the command that reads it. A binary downloaded through a browser rather than curl is quarantined by macOS until the builds are signed: xattr -d com.apple.quarantine /usr/local/bin/siltide.

Each release also ships an SBOM listing what went into every artifact.

Then

siltide --demo     # explore every view without hardware
siltide            # probe what is actually in this machine
siltide --diagnose # what it found, what it did not, and why
siltide --update   # move to the newest release, checksum verified

--update checks the download against the published checksums before anything is written, and replaces the binary with a rename rather than a copy, so an interrupted update cannot leave half a file on your PATH. If a package manager installed it, --update says so and stops.