- +Seatbelt on Apple Silicon
- +Bubblewrap on Linux
- +no permissive fallback
Policy-enforced process runtime
MaelysWarden
policy-enforced execution · v0.14.0 · 2026-08-24 · release →
I do not merely launch.
I define what the process can reach.
Run local agents, developer tools and MCP providers under an explicit filesystem, process and network policy. Warden selects Seatbelt on Apple Silicon or Bubblewrap on Linux, fails closed, and returns a versioned execution receipt.
- +strict JSON or C builder
- +canonical MIR digest
- +portable filesystem rules
- +fd 4 for aware clients
- +Netd for standard tools
- +destination allowlists
- +backend and capabilities
- +decision and plan digests
- +terminal outcome
Runtime
What Warden owns
Canonical input
Compile a built-in profile, strict JSON source or canonical MIR into one sealed mechanical plan.
maelys-warden --policy-json policy.json -- commandPortable access rules
READ, WRITE and explicit DENY semantics are lowered only when the selected backend can prove them.
read / workspace · write /workspace/buildTwo mediated frontends
Maelys-aware programs use fd 4; unmodified HTTP and SOCKS clients use Netd without receiving ambient network.
--network-frontend proxyBounded supervision
Prepare, spawn, wait and stop are explicit. Failure before backend readiness prevents workload execution.
prepare → artifact → spawn → receiptAttributable execution
Immutable receipts bind the decision digest, mechanical plan, backend capabilities, timestamps and outcome.
--receipt execution.jsonCLI, C and SDKs
Use the standalone command, libmaelys-warden, or the dependency-free Node.js and Python facades.
spawn({ profile: "untrusted", argv })One policy, native enforcement
The policy frontend decides. Warden enforces the already-resolved decision and records what happened.
Install and run
Apple Silicon, macOS 15+
Homebrew installs the CLI, C libraries and relay helper.
brew install maelys-dev/tap/maelys-warden
maelys-warden --profile untrusted -- codexEvidence, not a promise
{
"schema": "maelys.execution-receipt/v1",
"invocationId": "build-2026-08-24-001",
"decisionDigest": "94d14d6aece6e3a0cdf1409d9a92695b8591fe7016ae56ebad221fcd49ba8bc3",
"planDigest": "cf14f5b4eff7f425b140948c9c1d53f905c73e7ad6504aaa1d3e04490f812535",
"mediator": "maelys-netd/proxy-v1",
"backend": {
"name": "bubblewrap",
"version": "0.9.0"
},
"network": {
"mode": "mediated",
"frontend": "netd-proxy"
},
"completed": true,
"outcome": {
"exitCode": 0,
"termSignal": 0
}
}