---
seo:
  image: /og-brand.png
  title: "Install rolle: Homebrew, DMG, Windows, Linux"
title: Install
description: Install the rolle desktop app with Homebrew, a signed DMG, the Windows installer, or the Linux AppImage, plus the CLI.
---

**macOS**

```sh
brew install --cask nateships/tap/rolle
```

The cask installs the desktop app and puts the `rolle` command on your `PATH`. The command ships inside the app bundle, so app updates carry it along.

Or download `rolle.dmg` from the [releases page](https://github.com/nateships/rolle/releases). The app is signed and notarized. It runs on macOS 12 or newer on Apple silicon and Intel. The `rolle` command ships inside the app; the last onboarding step and **Settings → General** offer **Install command**, which links it into `/usr/local/bin`.

**Windows**

Download `rolle-installer.exe` from the [releases page](https://github.com/nateships/rolle/releases). One installer covers x64 and Arm64. Portable builds ship as `rolle-windows-amd64.zip` and `rolle-windows-arm64.zip`.

The app carries the `rolle` command. The last onboarding step and **Settings → General** offer **Install command**, which writes it to `%LOCALAPPDATA%\rolle\bin` and adds that folder to your user `PATH`. Open a new terminal afterwards. The app keeps the command at its own version after each update.

The Windows build is not code signed. SmartScreen shows a warning on first launch.

**Linux**

Download `rolle-linux-amd64.AppImage` or the `.deb` package from the [releases page](https://github.com/nateships/rolle/releases). The app needs GTK 4 and WebKitGTK 6.0.

The deb installs the `rolle` command in `/usr/local/bin`. The AppImage carries it: **Install command** in the last onboarding step and in **Settings → General** writes it to `~/.local/bin`, and the app keeps it at its own version after each update. The CLI also ships on its own as `rolle_<version>_linux_<arch>.tar.gz` for machines without the app.

## CLI archives

Every release ships `rolle_<version>_<os>_<arch>.tar.gz` (zip on Windows) for `darwin`, `linux`, and `windows` on `amd64` and `arm64`, with a `checksums.txt`. Put the `rolle` binary on your `PATH`.

`checksums.txt` carries a keyless [Sigstore](https://www.sigstore.dev/) signature made by the release workflow. To verify an archive, download `checksums.txt` and `checksums.txt.sigstore.json` next to it and run:

```sh
cosign verify-blob checksums.txt \
  --bundle checksums.txt.sigstore.json \
  --certificate-identity-regexp '^https://github.com/nateships/rolle/' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com
sha256sum --check --ignore-missing checksums.txt
```

`checksums.txt` also lists `rolle.dmg`, the Windows installer, the AppImage, the deb, and `manifest.json`, so the same check covers a desktop download. Every file in it has a [build provenance attestation](/security#build-provenance):

```sh
gh attestation verify rolle.dmg --repo nateships/rolle
```

## Updates

The desktop app checks for a signed update shortly after launch and every six hours. When a newer version is available, an **Update** button appears at the bottom of the sidebar. It opens the release notes and installs when you confirm. Turn this off in **Settings → General → Automatic updates**. With Homebrew, `brew upgrade --greedy rolle` updates the app and the command together. A plain `brew upgrade` skips the app because the app updates itself.
