# Install Klustr on macOS, Linux and Windows

> Every release is built by CI from a tagged commit and published on GitHub Releases; the current version is v0.88.1. Pick your platform, then point Klustr at a kubeconfig context.

## macOS

Apple Silicon. Signed with a Developer ID certificate and notarized by Apple.

### Homebrew

```sh
brew tap sametkum/klustr
brew install klustr
```

After the initial tap, `brew search klustr` and `brew info klustr` find it like any other formula.

### Manual

Download the darwin-arm64 tarball from the [latest release](https://github.com/SametKUM/klustr/releases/latest), then:

```sh
tar -xzf klustr-*-darwin-arm64.tar.gz
mv klustr.app /Applications/
open /Applications/klustr.app
```

Gatekeeper opens the notarized bundle directly, even offline.

## Arch, CachyOS, Manjaro

AUR package klustr-bin, bumped automatically on every release.

```sh
paru -S klustr-bin
# or
yay -S klustr-bin
```

The PKGBUILD uses the prebuilt release tarball, so the install completes in seconds.

## Debian, Ubuntu

amd64 .deb attached to every release.

```sh
V=$(curl -fsSL https://api.github.com/repos/SametKUM/klustr/releases/latest \
    | grep -oP '"tag_name":\s*"\K[^"]+')
curl -LO https://github.com/SametKUM/klustr/releases/download/$V/klustr_${V#v}_amd64.deb
sudo apt install ./klustr_${V#v}_amd64.deb
```

The package pulls in webkit2gtk-4.1 and gtk-3 automatically and registers a desktop entry. Run the three commands one at a time; the first one resolves the latest tag.

## Linux tarball

amd64, for any distribution that ships the runtime libraries.

Download the linux-amd64 tarball from the [latest release](https://github.com/SametKUM/klustr/releases/latest), then:

```sh
tar -xzf klustr-*-linux-amd64.tar.gz
install -Dm755 klustr ~/.local/bin/klustr
```

## Windows

amd64 zip, tested on Windows 11. Not code-signed yet.

```powershell
$V = (Invoke-RestMethod https://api.github.com/repos/SametKUM/klustr/releases/latest).tag_name
Invoke-WebRequest "https://github.com/SametKUM/klustr/releases/download/$V/klustr-$V-windows-amd64.zip" -OutFile klustr.zip
Expand-Archive klustr.zip "$env:LOCALAPPDATA\Programs\Klustr" -Force
& "$env:LOCALAPPDATA\Programs\Klustr\klustr.exe"
```

Run the commands one at a time in PowerShell; the first one resolves the latest tag. Klustr renders through the WebView2 runtime that ships with Windows 11.

Downloaded with a browser instead, the unsigned `klustr.exe` gets a SmartScreen warning on first launch: choose More info, then Run anyway. With Smart App Control on, Windows blocks unsigned apps outright.

## Build from source

mise pins Go, Node and the Wails CLI; one command installs all three.

```sh
mise install
wails build -trimpath -clean
```

## Updating

Klustr checks GitHub Releases for a newer version and tells you when one exists; it never replaces itself.

Homebrew:

```sh
brew upgrade klustr
```

AUR:

```sh
paru -Syu
```

The .deb, the tarballs and the Windows zip are replaced by downloading the new release.

## Verify a download

Every release ships a SHA256SUMS file, and each asset carries build provenance that ties it to the commit and workflow run that produced it. Swap the asset name for the one you downloaded. On Windows, `Get-FileHash` prints the SHA-256 to compare with the zip's line in SHA256SUMS.

```sh
V=$(curl -fsSL https://api.github.com/repos/SametKUM/klustr/releases/latest \
    | grep -oP '"tag_name":\s*"\K[^"]+')
curl -LO https://github.com/SametKUM/klustr/releases/download/$V/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS   # macOS: shasum -a 256 -c --ignore-missing SHA256SUMS
gh attestation verify klustr-$V-linux-amd64.tar.gz --repo SametKUM/klustr
```

## Requirements

- A kubeconfig. Klustr reads `~/.kube/config` and honors `KUBECONFIG`; if kubectl works, Klustr works.
- macOS on Apple Silicon.
- Linux amd64 with `webkit2gtk-4.1` and `gtk-3`. Ubuntu 24.04+, Fedora 39+ and Arch ship them; Ubuntu 22.04 needs `libwebkit2gtk-4.1-0 libgtk-3-0` first.
- Windows 11 on amd64, which ships the WebView2 runtime.
- Nothing in the cluster. Klustr installs no agent, operator or CRD.

All assets, including older versions, are on [GitHub Releases](https://github.com/SametKUM/klustr/releases).
