Mod
Browse the docs · VMs
docs / isolation

VMs

A session can run in its own small VM, on your Mac or in the cloud. The VM boots from an environment file in the project, joins the session's log as a worker, and the agent works inside it. Everyone attached to the session sees its work live. soon

Mod decides

  • One VM per session. Parallel sessions never share a machine, a disk or a process.
  • The environment is a file in the project, so it is versioned, branched and reviewed like code.
  • The same environment builds the same image. A built image is cached by what went into it, so a cold start fetches and boots instead of building.
  • The VM holds no state of its own. It reads the session from the log, writes back to the log, and can be thrown away at any time.
  • The same image boots on a Mac or a cloud host. Moving a session between them changes placement, not the session.

You decide

  • What is in the environment: languages, tools, services.
  • Whether a session runs on your machine, in a local VM or in the cloud.
  • What the VM can reach on the network.

Why it is fixed. An agent that can run commands needs a machine it cannot break for anyone else. Keeping the state on the log is what lets that machine be disposable.