Skip to main content

Platform Support

Belay targets Linux first, ships released binaries for Linux and macOS, and supports Windows in-tree. This page states honestly what runs where in v0.1.0.

When to use this

Check here before you deploy on a given operating system, so you know which released binary to grab, which enforcement layers are active, and which degrade cleanly.

v0.1.0 released binaries

The installer (curl -fsSL https://dl.belay.secblok.io/install.sh | bash) downloads the right one automatically.

TargetReleased in v0.1.0Notes
Linux x86_64YesFully-static musl build — runs on any Linux libc (glibc or musl).
macOS x86_64 (Intel)Yes
macOS aarch64 (Apple Silicon)Yesuname -m reports arm64; the installer maps it correctly.
Linux aarch64Coming soonNot in v0.1.0 yet.
Windows x86_64In-treeNamed-pipe transport, SCM service, and Tauri desktop are supported, but the signed installer is pending a code-signing certificate.

Support matrix

CapabilityLinuxmacOSWindows
Released static binary (v0.1.0)Yes (x86_64 musl)Yes (x86_64 + Apple Silicon)In-tree (signed installer pending)
Build the unified binaryYes (primary)Yes (cargo build works out of the box)Yes (in-tree)
Static musl buildYes
Agent detect / protect / unprotectYesYesIn-tree
Hook & gate tool-call gatingYesYesIn-tree
MCP proxy gatingYesYesIn-tree
Hash-chained audit logYesYesIn-tree
Local backend (serve) + desktop appYesYesYes (named-pipe transport, Tauri desktop)
Static scanner (scan, SARIF)YesYesIn-tree
Native Rust firewall (rustables, no shell-out)YesCompiled inert (degrades cleanly)Not applicable
Inline egressYesCompiled inertNot applicable
eBPF sensor (opt-in, privileged)Yes (CAP_BPF/root)Not applicableNot applicable
Boot-start servicesystemdlaunchdSCM (elevated)

Linux — primary target

Linux is where Belay does the most. In addition to the portable agent-defense core (scanner, hook gating, audit, daemon IPC over a Unix socket), Linux gets the full host-control layer: a native Rust firewall (via rustables, with no shell-out to nft/iptables), inline egress interception, and an optional, privileged eBPF sensor for detect-and-kill self-protection.

  • The v0.1.0 Linux binary is a fully static musl build, so a single file runs on any Linux libc — glibc or musl — with no libc dependency. Drop it onto a minimal or headless VPS as-is.
  • Linux aarch64 is not in v0.1.0 yet; it is coming soon. In the meantime you can build it from source.
  • The eBPF sensor is opt-in and needs CAP_BPF/root. It degrades cleanly when unavailable — daemon startup is never blocked by its absence.

macOS — first-class, both architectures

macOS ships released binaries for both x86_64 (Intel) and aarch64 (Apple Silicon) in v0.1.0. It also builds out of the box: a plain cargo build works, and the entire agent-defense core is portable — scanning, hook gating, the hash-chained audit log, and daemon IPC over a Unix socket all run normally.

The Linux-only enforcement layers (the native firewall, inline egress, and the eBPF sensor) are compiled inert on macOS and degrade cleanly: for example, the firewall views simply report an empty ruleset instead of failing. The boot-start service is installed as a launchd service.

note

"Degrades cleanly" means the feature is safely absent, not silently broken — Belay still enforces at the tool-call boundary on macOS; it just doesn't add the Linux kernel-level host controls.

Windows — supported in-tree, signed installer pending

Windows is supported in the codebase and several pieces are complete:

  • The cross-platform IPC transport (named pipes) with peer authentication.
  • The SCM service: install-service registers a LocalSystem auto-start service through the Service Control Manager.
  • The Tauri desktop app.

What is not yet available is a signed Windows installer — it is waiting on a code-signing certificate. Until then, Windows is best treated as build- and in-tree-supported rather than a one-command install.

warning

When you run install-service on Windows, use an elevated (Run as Administrator) shell rather than sudo.

Data locations

PlatformData directory
Linux / macOS~/.belay (socket belayd.sock, audit.ndjson, ai.json, ai_key 0600, channels.json, state.db, …)
Windows%ProgramData%\Belay
  • Installation — install script, build, and service setup per platform.
  • Quickstart — the fastest path to a protected agent.
  • How it works — the enforcement model that is portable across platforms.