Home
Why Sandlock
How It Works Use Cases Comparison Security Model
Docs
Documentation Home Getting Started CLI Reference Python SDK Sandbox Reference
Products
Overview Sandbox HTTP API Sandbox Scheduler
GitHub Schedule a Demo

Sandlock Documentation

Everything needed to write, test, and ship a Sandlock policy: a five-minute quickstart, guides for each enforcement surface, one page per interface, and a complete field reference.

Sandlock confines a Linux process using Landlock for filesystem, network, and IPC rules, seccomp-bpf for syscall filtering, and seccomp user notification for the decisions that have to be made while the workload runs. It needs no root, no image build, no container runtime, and no hypervisor.

The shape of every policy
$ sandlock run -w /tmp -r /usr -r /lib -m 512M -- python3 untrusted.py

Start here

Policy guides

Each guide covers one enforcement surface end to end: what the kernel does, what the supervisor does, and how to express the rules from the CLI or an SDK.

Interfaces

One Rust core behind every surface. A policy written for one interface means exactly the same thing in all of them.

Reference

Requirements at a glance

Requirement Version Needed for
Linux6.12+Landlock ABI v6, the strict default posture
Rust1.70+Building from source
Python3.8+The Python SDK and MCP server (optional)
RootNot requiredNothing
cgroupsNot requiredNothing

Older kernels. Sandlock refuses to start by default when a protection it expects is unavailable. Individual protections can be degraded or disabled per policy so a sandbox can run on a kernel below 6.12. See Kernel Protections.

Getting help

Bugs, feature requests, and questions belong in GitHub issues. Suspected sandbox escapes should go privately to contact@multikernel.io first; see the security model for what counts. Teams running sandboxes across a fleet rather than a machine can read about the HTTP API and scheduler.