- choose readable files
- choose writable locations
- allow only needed services
Portable security policy
MaelysSandbox Policy
portable security policy · v0.3.0 · 2026-08-25 · release →
Define the boundary once.
Carry it everywhere.
Describe which files, network destinations and process privileges a workload may use. Sandbox Policy turns that intent into one portable decision that Warden can enforce consistently on macOS, Linux and in containers.
- macOS and Linux
- local tools and containers
- independent of sandbox technology
- reject incomplete rules
- stop when guarantees are unavailable
- never invent missing permissions
- human-readable JSON
- C library for applications
- works with Datalog and Warden


From intent to enforcement
Turn security intent into a decision you can trust
Write policy people can review
Use clear JSON, build the policy in C, or produce it from another decision engine such as Maelys Datalog.
read /workspace · deny /workspace/.envRemove ambiguity
Equivalent rules become the same portable decision, making changes easy to compare and verify.
same rules → same identityKeep sensitive files out of reach
Grant only the reads and writes a workload needs, while explicitly protecting secrets and private paths.
workspace in · secrets outControl where workloads connect
Name the exact services a task may contact and keep every unlisted destination outside the boundary.
github.com:443 allowedKeep enforcement replaceable
Describe the result you require instead of hard-coding commands for one operating system or sandbox.
one policy · many environmentsApply it with Warden
Warden receives the decision, chooses an environment able to honor it and refuses weaker execution.
policy → Warden → protected workloadHow it works
One policy, enforced wherever work runs
Your intentfiles, network and process limits
Sandbox Policychecks and removes ambiguity
Portable decisionstable and verifiable
Wardenselects and supervises
Protected workloadlocal tool or container
- Your intent → Sandbox Policy
- Sandbox Policy → Portable decision
- Portable decision → Warden
- Warden → Protected workload
You decide what is allowed. Sandbox Policy preserves that decision. Warden applies it to the real workload without silently widening the boundary.
Quick start
Try it in minutes
Apple Silicon, macOS 15+
brew install maelys-dev/tap/maelys-sandbox-policy
maelys-policy compile policy.json -o policy.mir
maelys-policy inspect policy.mir