---
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 and updates with the app.

Or download `rolle.dmg` from the [releases page](https://github.com/nateships/rolle/releases). The app is signed and notarized. It needs macOS 12 or later, on Apple silicon or Intel. **Install command**, in the last onboarding step and in **Settings → General**, links the `rolle` command into `/usr/local/bin`. When `rolle` is already on your PATH, from Homebrew for example, the app says so and leaves it alone.

**Windows**

Download `rolle-installer.exe` from the [releases page](https://github.com/nateships/rolle/releases). One installer covers x64 and Arm64. It installs for the current user under `%LOCALAPPDATA%\Programs\rolle`. Installation and updates need no administrator.

**Install command**, in the last onboarding step and in **Settings → General**, writes the `rolle` command to `%LOCALAPPDATA%\rolle\bin` and adds that folder to your user `PATH`. Open a new terminal afterwards. Each app update updates the command.

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`. With the AppImage, **Install command** in the last onboarding step and in **Settings → General** writes it to `~/.local/bin`, unless a `rolle` from the deb is already on your PATH. Each app update updates the command. For machines without the app, the CLI ships as `rolle-cli_<version>_linux_<arch>.tar.gz`.

## CLI archives

Every release ships `rolle-cli_<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`. The `rolle-update-*` zips are for the desktop app's self-update, not for download.

`checksums.txt` carries a keyless [Sigstore](https://www.sigstore.dev/) signature from the release workflow. To verify a download, put `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`. Every file in it has a [build provenance attestation](/security#build-provenance):

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

## Updates

The [changelog](/changelog) has the release notes and an [RSS feed](/changelog/rss.xml).

The desktop app checks for a signed update after launch and every six hours. When one exists, an **Update** button appears at the bottom of the sidebar. It opens the release notes and installs when you confirm. **Settings → General → Automatic updates** turns the check off. With Homebrew, `brew upgrade --greedy rolle` updates the app and the command. A plain `brew upgrade` skips the app.
