Skip to main content
Qlty publishes cryptographic attestations for all CLI releases, allowing you to verify that the binary you downloaded was built by Qlty and hasn’t been tampered with. These attestations are powered by Sigstore and published as GitHub artifact attestations.

How it works

When we release a new version of the Qlty CLI, our GitHub Actions workflow:
  1. Builds the CLI binaries for each supported platform
  2. Generates a cryptographic attestation for each build artifact
  3. Publishes the attestations to GitHub’s attestation store
These attestations cryptographically prove that the binary was built from our official repository using our CI/CD pipeline.

Verifying the CLI

You can verify any Qlty CLI release with the GitHub CLI (gh) before you install it. The check doesn’t depend on your machine’s certificate store, so it holds even when that store is out of date.
Use gh 2.67.0 or later, signed in with gh auth login, even for public repositories. Older versions can report success for an archive that has no attestation. Install gh from a source that checks its own packages, such as Homebrew, winget, or a signed package repository.
Example (macOS Apple Silicon):
If you installed to ~/.qlty/bin for the first time, add it to your PATH. For other platforms, set TARGET to x86_64-apple-darwin, x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu, x86_64-unknown-linux-musl or aarch64-unknown-linux-musl. See all archives on GitHub releases. Example (Windows, PowerShell):
If you installed to ~\.qlty\bin for the first time, the script adds it to PATH for the current session only. Add it to your user PATH to keep it.

Checking an installed binary

To check a qlty you already have, download and verify the archive for the version you installed, then compare the binaries. Set VERSION yourself rather than running qlty --version: if the binary was replaced, running it could expose your tokens.
If the two checksums differ, reinstall with the steps above, and rotate any Qlty tokens that machine could read. A VERSION that doesn’t match the installed release also makes them differ, so check it first.

Verifying upgrades

qlty upgrade --verify-attestations downloads each release’s archive and checks its attestation before installing it, on macOS and Linux. It needs gh 2.67.0 or later, signed in. From v0.662.0, the upgrade stops if the attestation can’t be verified, and on Windows the command refuses and points to this page. Without the flag, qlty upgrade runs the installer script, which does not check attestations. See upgrade.

Verifying the Docker image

Each platform image in ghcr.io/qltysh/qlty has its own attestation. The multi-platform tag does not, so verify a platform digest:

Successful verification

A successful verification will display output similar to:
This confirms the binary was signed by GitHub Actions and built from the official Qlty repository.

Learn more