Persistent sandboxes
Persistent Sandboxes
A Linux machine that keeps its files. Each one is its own Firecracker micro-VM with its own disk. It sleeps when idle and wakes in about a second when you run a command or touch a file. Asleep, there is no compute charge; you pay only for its disk, $0.08 per GB-month.
At a glance
- What it is
- A Linux micro-VM that keeps
/datauntil you delete it. It sleeps when idle and wakes in about a second. - Use it for
- A workspace per end user, a coding agent that works on a repo for days, any agent you host.
- Use something else when
- Nothing should outlive the run: Ephemeral Sandbox. A batch: Swarm. A screen: Linux desktop.
- Start it
- New sandbox (
?type=persistent),maritime create NAME --template zeroclaw, oragents.provisionin the SDK. - Lifecycle
- Awake while used, asleep after an idle period (
--idle), woken by any command, file call, message or trigger. Deleted only by you. - Price
- $0.03 per vCPU-hour + $0.01 per GB-hour awake, per second (1 vCPU, 2 GB is $0.05 an hour). Asleep: $0.08 per GB-month of disk.
- Limits
- 2 GB RAM and 5 GB disk by default, up to 8 GB and 100 GB self-serve.
exec60 seconds attached, 3,600 detached. 100 MB per file. - Related
- How Maritime works, SDK: agents, Images.
What runs today
Today a persistent sandbox is a Maritime machine created as an agent: you create it in the dashboard, or with the CLI or SDK, then run commands with exec and move files with the files API.
From the dashboard
Pick Persistent sandbox in New sandbox, choose its memory and disk, and start it. It appears with your other machines in the dashboard.


When to use it
- A workspace per end user that must keep its files, repos and installed tools between visits.
- A coding agent that clones a repo once and works on it over days.
- Anything you would otherwise rebuild from scratch on every request.
For one task that should leave nothing behind, see Ephemeral Sandboxes. For a machine with a screen, see Linux desktops.
Example
maritime create my-box --template zeroclaw
# exec takes the machine's id, not its name
maritime status my-box --json --select id
maritime exec AGENT_ID --body-json '{"command": "git clone https://github.com/acme/app /data/app"}' --json
maritime exec AGENT_ID --body-json '{"command": "ls /data/app"}' --jsonA new machine boots in the background; a returning user's machine is already there. Commands and file calls wake a sleeping machine on their own, so you never wake it by hand. The REST routes, detached commands and cancellation are in REST API: Run a command.
Lifetime
- Everything under
/datais kept until you delete the machine. - After an idle period the machine sleeps. On micro-VM hosts the process is snapshotted and resumed, not restarted. Set the idle time with
--idle(seconds) onmaritime create. - Awake, it is billed per second at $0.03 per vCPU-hour plus $0.01 per GB-hour of memory. Asleep, it is billed only for its provisioned disk, $0.08 per GB-month.
- Waking takes about a second, on any command, file call, message or trigger.
- Deleting the machine deletes its disk.
maritime create my-box --template zeroclaw --idle 600 --disk 20
maritime delete my-box --yesLimits
- 2 GB RAM and 5 GB SSD by default; self-serve up to 8 GB RAM and 100 GB SSD.
exec: 60 seconds attached by default, 3,600 seconds detached; each output stream keeps its last 262,144 characters.- File transfers: 100 MB per file.
- A machine counts toward your plan's awake-at-once limit only while it is awake.
Every number is in Limits & errors; plans and prices are in Billing & plans.