Installation
Pre-built binaries come in two flavors: stable releases cut from vX.Y.Z
tags, and a rolling development-snapshot pre-release rebuilt on every push
to development. Each build ships Windows, Linux, and macOS in both amd64
and arm64. See RELEASING.md
for how releases are produced and verified.
Download from the releases page
Assets are named kuberoutectl_<version>_<os>_<arch>.<ext> — .tar.gz for
Linux and macOS, .zip for Windows.
Not sure which architecture you need? Run
uname -m—x86_64→amd64,aarch64/arm64→arm64. On Windows, check Settings → System → About → System type.
Prefer to build it yourself? See Building from source.
Choosing an install method
| Method | Best when | Trade-off |
|---|---|---|
Package manager (Homebrew, Scoop, .deb/.rpm/.apk) |
you want install + upgrade handled for you | Homebrew/Scoop need a published stable release (see Troubleshooting) |
Direct download (.tar.gz / .zip) |
you want a single binary with no package manager, or you’re on a pre-release | you upgrade manually |
Both install the same binaries from the same tagged release. If a package manager command fails, jump to Troubleshooting.
macOS (Homebrew)
The simplest path on macOS — installs and updates via brew, and handles the
unsigned-binary quarantine for you (no manual xattr step):
brew install ymedlop/tap/kuberoutectl
kuberoutectl version
brew upgrade kuberoutectl picks up new releases. Prefer a manual download?
Use the cross-platform instructions below.
Linux (apt — Debian/Ubuntu)
The simplest path on Debian/Ubuntu — a signed Cloudsmith
apt repository, so apt upgrade picks up new releases:
curl -1sLf 'https://dl.cloudsmith.io/public/ymedlop/kuberoutectl/setup.deb.sh' | sudo bash
sudo apt install kuberoutectl
kuberoutectl version
The setup.deb.sh script adds the repo and imports its signing key. Prefer a
manual package or need .rpm/.apk? See below.
Linux (packages)
Each release ships .deb, .rpm, and .apk packages (amd64 + arm64) as release
assets. Download the one for your distro and arch, then:
sudo dpkg -i kuberoutectl_*_amd64.deb # Debian / Ubuntu
sudo rpm -i kuberoutectl_*_amd64.rpm # Fedora / RHEL / openSUSE
sudo apk add --allow-untrusted kuberoutectl_*_amd64.apk # Alpine
kuberoutectl version
The binary lands on your PATH at /usr/bin/kuberoutectl. Packages are unsigned,
so apk needs --allow-untrusted.
Linux and macOS (manual)
Download the asset matching your OS (linux | darwin) and arch
(amd64 | arm64) from the releases page, then, from the folder where it
landed:
tar -xzf kuberoutectl_*_linux_amd64.tar.gz # adjust os/arch to match
chmod +x kuberoutectl
sudo mv kuberoutectl /usr/local/bin/ # or any dir on your PATH
kuberoutectl version
On macOS the binary is unsigned, so Gatekeeper quarantines it on first run. Clear the quarantine flag once after extracting:
xattr -d com.apple.quarantine ./kuberoutectl # or: right-click → Open
Windows (Scoop)
The simplest path on Windows — installs and updates via Scoop:
scoop bucket add ymedlop https://github.com/ymedlop/scoop-bucket
scoop install kuberoutectl
kuberoutectl version
scoop update kuberoutectl picks up new releases. Prefer a manual download? See
below.
Windows (manual)
Download the ..._windows_<arch>.zip asset, extract it, and run from
PowerShell:
Expand-Archive kuberoutectl_*_windows_amd64.zip -DestinationPath kuberoutectl
.\kuberoutectl\kuberoutectl.exe version
Move kuberoutectl.exe somewhere on your PATH to call it from anywhere.
SmartScreen may warn about the unsigned binary — choose More info → Run anyway.
Verify the download (optional)
Each release includes checksums.txt:
sha256sum -c checksums.txt # Linux
shasum -a 256 -c checksums.txt # macOS
Get-FileHash .\kuberoutectl_*.zip -Algorithm SHA256 # Windows (compare to checksums.txt)
Verify the installed version
Confirm you’re running the build you intended — kuberoutectl version prints the
version baked into the binary at release time, matching the release tag (without
its leading v, like the archive names above):
kuberoutectl version
# kuberoutectl 1.2.3 (commit abc1234, built 2026-01-01T00:00:00Z)
If it reports an older version than you installed, an earlier binary is shadowing
it on your PATH — see Troubleshooting.
Troubleshooting
Homebrew, Scoop, and the apt repo come online with the first stable
vX.Y.Zrelease (once it’s published) — they publish to a tap/bucket/repo only on stable releases. Until then, use a direct download or the release-attached Linux packages (both work from any release, including pre-releases).
- Homebrew —
Error: ... tap not foundor no formula - The tap isn’t published yet (see the note above), or it’s stale. If it exists,
run
brew updatefirst, thenbrew install ymedlop/tap/kuberoutectl. - Scoop —
Couldn't find manifest/ empty bucket - Same as above. After
scoop bucket add ymedlop https://github.com/ymedlop/scoop-bucket, runscoop updateso the new manifest is seen, thenscoop install kuberoutectl. - apt —
Unable to locate package kuberoutectlor a GPG/NO_PUBKEYerror - Re-run the Cloudsmith
setup.deb.sh(it adds the repo and imports the signing key), thensudo apt update. If the package isn’t there yet, the apt repo comes online with the first published stable release (see the note above) — use a direct.debmeanwhile. - Linux
.apk—UNTRUSTED signature - The packages are unsigned; add
--allow-untrusted:sudo apk add --allow-untrusted kuberoutectl_*_amd64.apk. - Linux
.rpm— nothing printed afterrpm -i - Success is silent. The packages are unsigned, so there’s no signature prompt —
run
kuberoutectl versionto confirm the install. - macOS (manual) — “kuberoutectl is damaged and can’t be opened”
- Gatekeeper quarantined the unsigned binary — clear it with the
xattrcommand under Linux and macOS (manual). (brew installdoes this for you.) - Windows (manual) — SmartScreen warning
- The binary is unsigned — see the note under Windows (manual).
command not foundafter install- The install directory isn’t on your
PATH. Packages install to/usr/bin/kuberoutectl; for a manual install, move the binary somewhere on yourPATH. kuberoutectl versionshows an old version- An older binary earlier on your
PATHis shadowing the new one. Find them withwhich -a kuberoutectl(Linux/macOS) orwhere kuberoutectl(Windows) and remove the stale one.
Next steps
Once kuberoutectl version works, head to a
provider guide for your cloud, or run the
universal loop:
kuberoutectl doctor # is the provider CLI reachable?
kuberoutectl sync <provider> # discover clusters + credential health
kuberoutectl target list # what can I reach?
kuberoutectl target use <id> # route kubectl at one cluster