State & time travel

Live fork

Copy a running VM, memory, disk and processes, into new VMs in 36 ms.

What it is

Copy a running VM, memory, disk and processes, into new VMs in 36 ms.

Live fork branches a running FlashVM into any number of copies. Each starts exactly where the original is: set up, built, mid-task.

Why it matters

An agent with three ideas sets up once and explores all three. Set up once, fork, and try every idea in parallel from the same starting line.

  • Set up once. Every copy inherits the finished environment.
  • Parallel attempts. Each idea runs at the same time in its own VM.
  • Keep the winner. Diff it, copy out the fix, remove the rest.

Runs on

  • Linux x86_64
  • Linux arm64
  • macOS
  • Windows x64
  • Windows arm64

How it works

Fork a running VM by name, or branch from any of its checkpoints.

CLI

flash fork agent-1 --id try-1
flash fork agent-1 --count 3
flash exec try-1 -- sh -c 'cd /work/project && sh apply-fix.sh A && sh run-tests.sh'

MCP

flash_cli(args: ["fork", "agent-1", "--count", "3"])

API

POST /v1/host/flashvms {"from": {"flashvm": "agent-1", "checkpoint": 3}, "count": 3}

The result

Three copies of a set-up VM in 36 ms, instead of three more setups.

All three fixes ran at once, one passed, and the machine was clean again afterwards.

How it works

Related

See it live: flash demo run 20