
Run untrusted code,
without the risk.
Your LLM writes the code. We run it inside fully isolated, ephemeral containers — no network, hard resource limits, instant cleanup — behind one clean API.
How it works
Three steps from prompt to safe output
A clean request in, a structured result out — with an airtight isolation boundary in between.
Submit
Your agent POSTs code and a language to the orchestrator. It authenticates, rate-limits, validates, and clamps every resource limit server-side.
Isolate
The runner spins up a throwaway container with no network, a read-only rootfs, dropped capabilities, and hard cgroup limits on memory, CPU, and processes.
Reap
Output and telemetry are captured, the container is force-removed, and a reaper guarantees nothing leaks — every single run, no exceptions.
Defense in depth
Six layers between untrusted
code and your host
Security isn't one switch. Every job is wrapped in independent, overlapping controls.
Network boundary
Only the orchestrator is public. The runner is private; every container runs with network = none.
Kernel isolation
Linux namespaces isolate PID, mount, IPC, and network. cgroups bound every resource per job.
Capability reduction
CapDrop ALL, no-new-privileges, a non-root user, and a read-only root filesystem.
Resource bounding
Server-side hard caps on memory, CPU, pids, and wall-clock time clamp every request.
Access control
API-key auth, per-client rate limiting, restricted CORS, and strict payload size limits.
No persistence
A tmpfs-only workspace. The container and all of its state are force-removed after each run.
Developer experience
One request. Full execution telemetry.
No SDK lock-in. Send code, get stdout, stderr, exit code, duration, and peak memory back.
def fib(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
return a
print([fib(i) for i in range(10)]){ "stdout": "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]", "exit_code": 0, "status": "completed", "duration_ms": 213, "timed_out": false }
Give your agent a safe place to run.
Spin up the playground, or wire the API into your pipeline in a single request.