Installation
Download and install the sealr recorder and the sealr-verify offline verifier on macOS, Linux, Windows, in a container, or from source.
Every release archive contains two binaries:
sealr— the recorder. Proxies, hooks, the CLI wrapper, export.sealr-verify— the offline verifier for.sealbundles. No network, no trust in us.
They are self-contained. There is no installer, no daemon, no background service.
Pick the archive matching your platform, or use a package manager below.
| Platform | Architecture | Archive |
|---|---|---|
| macOS | Apple Silicon (M1–M4) | sealr-0.1.0-aarch64-apple-darwin.tar.gz |
| macOS | Intel | sealr-0.1.0-x86_64-apple-darwin.tar.gz |
| Linux | x86_64 | sealr-0.1.0-x86_64-unknown-linux-gnu.tar.gz |
| Windows | x86_64 | sealr-0.1.0-x86_64-pc-windows-msvc.zip |
Each release also publishes SHA256SUMS and a build-provenance attestation — see verifying a download.
The binaries are not code-signed on macOS or Windows, and not notarised by Apple. Gatekeeper and SmartScreen will say so, and the steps below tell you how to get past it. What each release does carry is a SHA256SUMS file and a SLSA build-provenance attestation — check them before you run anything: verifying a download.
Install
Archives are named sealr-<version>-<target>.tar.gz (.zip on Windows) and unpack into a
directory of the same name holding the two binaries. Replace 0.1.0 with the version you
downloaded.
Pick aarch64-apple-darwin for Apple Silicon, x86_64-apple-darwin for Intel. If you are
not sure, run uname -m — arm64 means Apple Silicon.
VERSION=0.1.0
TARGET=aarch64-apple-darwin
curl -fsSLO "https://github.com/sealr-labs/sealr/releases/download/v${VERSION}/sealr-${VERSION}-${TARGET}.tar.gz"
tar xzf "sealr-${VERSION}-${TARGET}.tar.gz"
sudo install -m 0755 "sealr-${VERSION}-${TARGET}/sealr" /usr/local/bin/sealr
sudo install -m 0755 "sealr-${VERSION}-${TARGET}/sealr-verify" /usr/local/bin/sealr-verify
sealr --version/usr/local/bin is on the default macOS PATH. If you would rather not use sudo, install
into ~/.local/bin and add it to your shell profile:
mkdir -p ~/.local/bin
install -m 0755 "sealr-${VERSION}-${TARGET}/sealr" "sealr-${VERSION}-${TARGET}/sealr-verify" ~/.local/bin/
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrcGatekeeper quarantine
The binaries are not signed with an Apple Developer ID and not notarised. If you download
the archive with a browser, macOS attaches com.apple.quarantine to it and to
everything extracted from it, and the first run fails with "cannot be opened because the
developer cannot be verified".
Strip the attribute from the extracted directory:
xattr -d -r com.apple.quarantine "sealr-${VERSION}-${TARGET}"Then install as above. Downloading with curl does not set the quarantine attribute, so
the curl sequence above needs no xattr step.
Removing the quarantine flag means you are vouching for the file yourself, because the OS will not. Do the checksum and provenance checks first, not after.
Confirm it works
sealr --version
sealr-verify --versionsealr version additionally prints how updates work. Neither command touches the network
or creates any state.
The next command, sealr init, is where the recorder writes its home directory and a local
identity. That is covered in the quickstart — five minutes to a
recorded, blocked operation, no account.
Platform limits
Stated plainly, because finding out at deploy time is worse:
- Linux ARM has no published build. The release matrix covers x86_64 Linux, both macOS
architectures and x86_64 Windows. On
aarch64Linux — Graviton, ARM CI runners, a Pi — build from source. - The Linux binary is glibc-linked, not static. It is built on GitHub's
ubuntu-latestrunner, so it will not run on a distribution with an older glibc (Debian 12, RHEL/UBI 8, Amazon Linux 2) or on musl (Alpine). Build from source there, or run on a newer base. A missing or too-old glibc shows up asversion 'GLIBC_2.xx' not foundon first run. - 32-bit is not supported on any platform.
Upgrading
There is no sealr self-update, and there will not be one. To upgrade, download the new
archive, verify it, and overwrite the binaries — the same steps as
a first install.
VERSION=0.2.0
TARGET=x86_64-unknown-linux-gnu
curl -fsSLO "https://github.com/sealr-labs/sealr/releases/download/v${VERSION}/sealr-${VERSION}-${TARGET}.tar.gz"
tar xzf "sealr-${VERSION}-${TARGET}.tar.gz"
sudo install -m 0755 "sealr-${VERSION}-${TARGET}/sealr" /usr/local/bin/sealr
sudo install -m 0755 "sealr-${VERSION}-${TARGET}/sealr-verify" /usr/local/bin/sealr-verifyWhy no self-update. A self-updater is a permanent remote code execution channel into every host that runs the recorder, triggered by a server we control. Sealr's whole claim is that it records what your agents actually did; a binary that can silently replace itself is exactly the component an attacker would target to break that claim, and you would have no opportunity to check what arrived. Manual replacement keeps the checksum and provenance check in your hands, on your schedule, once per version.
Practical notes:
- Replacing the binary does not touch the recorder home. Config, identity key and spooled records stay where they are.
- Long-running processes keep the old binary. Restart any
sealr proxy mcpprocess — in practice, restart the agent — for the new version to take effect. - To find out whether there is a newer release: watch the
releases page, or run
gh release list -R sealr-labs/sealr -L 5.
Uninstall
Remove the interception configuration first. Take the sealr proxy mcp wrapper out of
your MCP client config and the sealr hook entries out of .claude/settings.json. Agents
fall back to connecting directly. Doing this first avoids a window where an agent's tool
launch fails because the binary is gone.
Delete the binaries.
sudo rm -f /usr/local/bin/sealr /usr/local/bin/sealr-verifyRemove-Item -Recurse -Force "$env:LOCALAPPDATA\Programs\sealr"On Windows, also remove that directory from your user PATH.
Delete the recorder home. sealr status prints its path — read it before you remove the
binary, or use the defaults: $SEALR_HOME if set, otherwise $XDG_DATA_HOME/sealr
(~/.local/share/sealr) on Linux and macOS, %LOCALAPPDATA%\sealr on Windows.
rm -rf ~/.local/share/sealrThis deletes the config, the identity key, the local trust chain and any records still spooled but not yet exported or synced. That is not recoverable.
Exported bundles stay valid. A .seal bundle carries its own certificate chain and
trust root, so every bundle you exported before uninstalling still verifies — after the
recorder home is gone, after the binary is gone, on a different machine, years later. All
you need is sealr-verify, which you can download or build again at any time. Uninstalling
destroys the ability to record, never the evidence already recorded.
Next
Verify your download
What SHA256SUMS proves, what the SLSA attestation proves, and what neither proves.
Agent surfaces
MCP proxy, Claude Code hooks, the CLI wrapper — where the recorder sits.
CI
Installing and pinning the recorder inside a pipeline.
Quickstart
First recorded operation, offline, no account.
Quickstart
Record a real operation, watch a guardrail block one, and verify the evidence offline — in five minutes, with no account and no network.
Verifying a download
Check a Sealr release archive with SHA256SUMS and its SLSA build-provenance attestation, and understand exactly what each check proves.