Skip to main content
Copy an existing Sailbox. The copy gets the original’s disk and its memory, so whatever was running carries on in the copy.

Usage

Take a checkpoint, then start as many Sailboxes from it as you like:
A sleeping or paused Sailbox can be copied without waking it: checkpoint returns its existing checkpoint. Starting several copies from one checkpoint reuses the same checkpoint data, so only the first copy pays for it.

Fan out to many

Set up one Sailbox (install dependencies, warm caches, start servers), checkpoint it, and start every worker from that checkpoint instead of repeating the setup in each one. This is the fast path to a fleet for agent rollouts, parallel test shards, or grading many submissions at once.
Start the copies concurrently, as above, so the restores overlap. Collect results per copy so one failed restore does not cost you the rest, give each a distinct name, and pass a timeout so a stuck restore fails that copy instead of stalling the batch. Each copy is a full Sailbox: it bills like one and runs until it sleeps or you terminate it, so clean up the fleet when the work is done.

What a copy gets

  • The disk and the memory. Processes the original was running carry on. A command started with exec stops in the copy, though its writes up to the checkpoint are kept; one started in the background keeps running. Start anything else the copy needs again.
  • A new identity and new networking. Open TCP connections are reset, and the copy inherits no exposed ports; expose the ones it should serve.

Checkpoints

A checkpoint is a durable snapshot with a name, an id, and an expiry. It lasts seven days unless you set a TTL; set one when a checkpoint is a template you will keep using, so it does not expire underneath you. Starting a copy from an expired checkpoint fails.
Checkpoints also protect the original. Take one after important setup, such as installing packages or fetching data: if the machine under a Sailbox fails, Sail restores it from the most recent completed checkpoint and does not replay commands that ran before it.