A little space of its own
Give your agent
room to work.
Decide what it can touch.
A portable microVM with one static core, Wasm-isolated devices, and only the access you choose.
Linux · macOS on Apple Silicon · Windows
A terrarium for agents.
Give a long-lived agent a box of its own. Its storage persists across restarts, and it reaches only the files and destinations you grant. Or lock its root read-only, with a disk-backed overlay that resets every boot.
Set one upA dev VM for your harness.
Run Claude Code, Codex, or your own tooling against your project in a confined VM instead of on your host.
Start with the quickstartRoom for more.
Anything that needs a clear boundary: untrusted builds, unfamiliar installers, one-off recipe runs, or a service published on host loopback.
Read the usage guideOne static core.
The kernel, Alpine base, and device components ship in one binary. Every box takes the same narrow path, with no OCI images or registries: fewer moving parts to trust. Recipes and hooks extend it.
Wasm-isolated devices.
Software fault isolation (SFI) gives the VMM and every device instance a separate WebAssembly sandbox, with scoped access to a thin host API.
Access is a choice.
Host files and network access start closed. Your recipe names the directories, destinations, and capabilities you grant.
Bring your environment.
Linux and Windows (x86_64 / ARM64), and macOS on Apple Silicon. Native hypervisors underneath; the same recipes and CLI wherever you work.
Isolation at every layer
Your workload in a VM.
Its machinery in Wasm.
From a recipe to a running box
Make a little room.
Current release v0.4.0-beta
Start with a dev VM: install Terra and save this recipe as dev.yaml. Then set up and enter your box.
Linux & macOS on Apple Silicon · Terminal
curl -fsSL https://raw.githubusercontent.com/terrarium-sh/terrarium/main/install.sh | sh Windows · PowerShell
irm https://raw.githubusercontent.com/terrarium-sh/terrarium/main/install.ps1 | iex After installing on Windows, open a new terminal so terra is on your PATH.
Set up your box
terra ./dev.yaml setup
terra hw:
cpus: 2
mem_mib: 1024
network:
mode: unrestricted-public
workload:
entrypoint: /bin/sh terra
Public network access is opt-in.
Host files stay private until you share them.
More recipes: terrarium_examples
Keep exploring
A reference within reach.
Command reference
Find a command, flag, or example. Generated directly from the CLI.
Write a recipe
Configure resources, mounts, network access, and lifecycle hooks.
Understand the boundary
What Terra isolates, what it trusts, and how its devices are sandboxed.
Agent skill
Let your coding agent write, check, and smoke-test a box. Save as .claude/skills/terra-box/SKILL.md.