hypervise documentation

hypervise runs virtual machines that are deterministic: given the same inputs, a machine executes exactly the same instructions and ends in exactly the same state, every time. hypervise records the inputs, so any run can be replayed bit for bit: memory, registers, the path of execution.

The first product built on it is CI for GitHub Actions. Every job is recorded from its first step. When one fails, its recording is kept. It reproduces the failure exactly, the "flaky" ones included. You can replay it and rewind to any moment of the run, to inspect the machine as it was.

When you want speed, steps can run unrecorded on several cores, and test suites can split into recorded shards. Both are optional.

Beyond CI

Determinism is not specific to CI. The same machine underlies three other products we plan:

  • replayable serverless functions: every invocation can be replayed after the fact;
  • seeded fault injection: a distributed system runs through thousands of seeded crashes and network failures, and every failing universe comes back replayable;
  • time-travel debugging of recorded runs, for people and for agents.

These use the same recordings, hosts and control plane as CI.