Features / Forks and templates

Fork a VM in under a second.

Set up one sandbox: clone the repo, install the dependencies, fill the caches. Then fork it once per task, or save it as a template and start every new sandbox from it. Copying takes well under a second, however full the disk is.

curl -fsSL https://pols.so/install.sh | sh
Fork a running sandbox
0.64 s
Save it as a template
0.79 s
From fork to SSH login
9.2 s

Medians of 7 runs on our sandbox host in Germany, 1 October 2026.

Prepare once, fork per task

Each fork is an independent sandbox with its own ID, machine ID and SSH host keys. The source keeps running, so an agent can try two fixes side by side and you delete the one that failed.

pols CLI
# prepare one sandbox
$ pols new --name base
$ pols exec base -- git clone https://github.com/you/app
$ pols exec base -- bash -lc 'cd app && npm ci'
# one fork per task
$ pols fork base --name fix-login
$ pols fork base --name fix-search
# keep the prepared disk as a template
$ pols template save base app-ready
# new sandboxes start from it, gone after two hours
$ pols new --template app-ready --name pr-142 --ttl 2h

How a fork works

  1. Snapshot

    pols snapshots the source's ZFS disk. The source can be running or stopped and is left as it was.

  2. Clone

    The snapshot is cloned copy-on-write. Both disks share every block until one of them writes to it, so nothing is copied up front.

  3. Boot

    The fork boots from the copied disk with a new machine ID and new SSH host keys. Memory is not copied: processes that ran in the source do not run in the fork.

Fork, template or stop?

ForkTemplateStop and resume
You getA second running sandboxA saved disk to start new sandboxes fromThe same sandbox, later
Environment and vault secretsKept; add more with --secretNot keptKept
Time (median)0.64 s, then 9.2 s to SSH0.79 sStop 0.76 s, resume 8.7 s to SSH

More of pols

Start with one machine.

Install the CLI, sign up, and give your agent somewhere to work.

curl -fsSL https://pols.so/install.sh | sh