Verify your download
Every Nimbus release ships with a GPG-signed manifest (SHA256SUMS.asc).
Verifying your download takes under a minute and guarantees the bytes you
received are the bytes the maintainer signed.
Why verify
Section titled “Why verify”Supply-chain integrity. When you download a binary from GitHub, you are trusting the release pipeline that built it and the GitHub infrastructure that stored it. GPG verification adds an out-of-band guarantee: the maintainer signed the SHA-256 hash of each artefact with a private key that has never left their workstation. If anyone — a compromised CI runner, a GitHub account takeover, or a network attacker — modified the binary after it was signed, the signature check fails.
Detection. To produce a valid SHA256SUMS.asc over a tampered binary, an
attacker would need the Nimbus release private key. Without it, they cannot
forge the signature. The check is therefore not a speed bump — it is a hard
cryptographic boundary.
The Nimbus signing fingerprint
Section titled “The Nimbus signing fingerprint”The project uses a single Ed25519 key for all v0.1.0+ releases. The full fingerprint in spaced 4-char groups (for visual cross-checking):
5A20 457C CD8B 53FF AA94 5240 886A DA6B 487C AB6EUnspaced (for use in commands):
5A20457CCD8B53FFAA945240886ADA6B487CAB6EOne-shot verification using the bundled helper
Section titled “One-shot verification using the bundled helper”The release tarball includes scripts/release/nimbus-verify.sh
(nimbus-verify.ps1 on Windows). Pass --version to download and verify a
specific release, or pass the path to a local artefact.
Linux / macOS:
# Download the helper (it is also bundled in the release tarball)curl -fsSL https://github.com/nimbus-agent/Nimbus/releases/latest/download/nimbus-verify.sh \ -o nimbus-verify.shchmod +x nimbus-verify.sh
# Verify the latest release artefacts./nimbus-verify.sh --version 0.1.0Windows (PowerShell):
Invoke-WebRequest ` -Uri "https://github.com/nimbus-agent/Nimbus/releases/latest/download/nimbus-verify.ps1" ` -OutFile "nimbus-verify.ps1"
.\nimbus-verify.ps1 -Version 0.1.0The helper script:
- Imports the key from
keys.openpgp.org(printing the fingerprint it received — compare this against the value above before proceeding). - Downloads
SHA256SUMSandSHA256SUMS.ascfrom the GitHub release. - Runs
gpg --verify SHA256SUMS.asc SHA256SUMS. - Runs
sha256sum --check --ignore-missing SHA256SUMSagainst the artefacts in the current directory (or the ones matching--version).
If all checks pass, the script exits 0 and prints a green summary. Any failure causes a non-zero exit and an error message — do not install until you understand and resolve the failure.
Manual verification
Section titled “Manual verification”If you prefer not to run the helper script, the same steps can be performed manually.
Step 1: Download the manifest and signature
Section titled “Step 1: Download the manifest and signature”curl -L \ https://github.com/nimbus-agent/Nimbus/releases/latest/download/SHA256SUMS \ -o SHA256SUMScurl -L \ https://github.com/nimbus-agent/Nimbus/releases/latest/download/SHA256SUMS.asc \ -o SHA256SUMS.ascStep 2: Import the signing key
Section titled “Step 2: Import the signing key”gpg --keyserver keys.openpgp.org \ --recv-keys 5A20457CCD8B53FFAA945240886ADA6B487CAB6EVisually confirm the fingerprint printed by gpg matches 5A20 457C CD8B 53FF AA94 5240 886A DA6B 487C AB6E.
Step 3: Verify the manifest signature
Section titled “Step 3: Verify the manifest signature”gpg --verify SHA256SUMS.asc SHA256SUMSA successful run produces output in this shape (line order may vary):
gpg: Signature made Mon 05 May 2026 00:00:00 UTCgpg: using EDDSA key 5A20457CCD8B53FFAA945240886ADA6B487CAB6Egpg: Good signature from "Nimbus Agent Release Signing <release@nimbus-agent.dev>" [unknown]gpg: WARNING: This key is not certified with a trusted signature!gpg: There is no indication that the signature belongs to the owner.Primary key fingerprint: 5A20 457C CD8B 53FF AA94 5240 886A DA6B 487C AB6EThe WARNING about trusted signature is expected — it means the key is not
in your personal trust web (which is fine for a project key). What matters is:
Good signature— the signature is cryptographically valid.- The fingerprint on the last line matches the value you cross-checked above.
If you see BAD signature or a different fingerprint, stop and do not
install. Open a private security report instead (see the project
SECURITY.md).
Step 4: Verify artefact hashes
Section titled “Step 4: Verify artefact hashes”# Download the artefact(s) you plan to install into the same directory, then:sha256sum --check --ignore-missing SHA256SUMSThe --ignore-missing flag skips lines in the manifest that refer to
artefacts you did not download (e.g., other platform packages). Expected
output for each checked file:
nimbus_amd64.deb: OKAny FAILED line means the file content does not match the signed hash —
do not install.
Linux per-artefact signatures
Section titled “Linux per-artefact signatures”In addition to the manifest, each Linux artefact ships with an individual GPG
.asc sidecar. This lets you verify a single file without downloading
SHA256SUMS:
curl -L \ https://github.com/nimbus-agent/Nimbus/releases/latest/download/nimbus_amd64.deb \ -o nimbus.debcurl -L \ https://github.com/nimbus-agent/Nimbus/releases/latest/download/nimbus_amd64.deb.asc \ -o nimbus.deb.ascgpg --verify nimbus.deb.asc nimbus.deb
# AppImagecurl -L \ https://github.com/nimbus-agent/Nimbus/releases/latest/download/Nimbus-x86_64.AppImage \ -o Nimbus.AppImagecurl -L \ https://github.com/nimbus-agent/Nimbus/releases/latest/download/Nimbus-x86_64.AppImage.asc \ -o Nimbus.AppImage.ascgpg --verify Nimbus.AppImage.asc Nimbus.AppImagemacOS and Windows note
Section titled “macOS and Windows note”v0.1.0 ships without platform-native code-signing (no notarised macOS
.pkg, no Authenticode-signed Windows installer). This is an explicit project
decision deferred to a later point release — see docs/SECURITY.md in the
repository for the full rationale.
The GPG-signed SHA256SUMS.asc manifest is the cross-platform integrity
proof for all platforms. When you first run the Nimbus binary on macOS,
Gatekeeper will show an “unverified developer” dialog. On Windows, SmartScreen
may show an “unrecognised app” warning. Both are expected and are documented
in the first-run setup guide.
What to do if verification fails
Section titled “What to do if verification fails”- Do not install the binary.
- Confirm you downloaded the latest release from github.com/nimbus-agent/Nimbus/releases.
- Re-download the artefact — transient network errors can corrupt a download.
- Cross-check the fingerprint against the four sources listed above.
- If the fingerprint itself differs across sources, open a private security
report via the project’s security disclosure process (see
SECURITY.mdin the GitHub repository). Do not open a public issue.