Forks and Snapshots

A fork creates a new machine from a live, forkable source. The child starts from the source machine’s memory, processes, and disk state, then diverges through copy-on-write.

Forks

Prepare a forkable machine as a golden environment, start the workload, and fork children from that point. Each child continues with the cloned process state. This is useful for parallel agent tasks, test branches, and warm model-serving workers.

Copy-on-write avoids duplicating all memory and disk data at fork time. The source and children remain separate machines after the fork.

Fork support is host and feature dependent. Native Windows does not currently support VM fork.

Forks, packs, and snapshots

These mechanisms preserve different state:

MechanismDiskRAM and processesIndependent artifact
ForkYes, then copy-on-writeYesNo
Pack from VMYesNoYes, .smolmachine
General portable snapshotIntended to include restorable runtime stateIntended to restore laterNot currently available as a user-facing API

A pack from a VM requires the source VM to be stopped. It captures disk state and boots as a new machine later. It does not preserve running processes.

A fork is tied to its running source. It is not an exportable snapshot that can be retained independently or restored across architectures.

Migration boundary

Fork is a same-runtime clone operation. It is not live migration between hosts.