Skip to main content
smolvm boots a hardware-isolated microVM with its own guest kernel on Hypervisor.framework (macOS), KVM (Linux), or WHP (Windows). Mirage connects to a machine you created; it never starts or deletes one. See the Sandbox overview for the shared image and workspace-mount setup.

Start the machine

Host directories reach the guest only if you pass them at boot with --volume; the guest otherwise sees nothing from the host filesystem.

Connect from Python

The smolvm CLI is the transport, so there is no SDK dependency or Mirage extra. The first captured line checks machine status and accepts only running. A stopped or created machine needs machine start; unreachable means its guest agent is not answering; frozen is a fork base, so point Mirage at a clone instead.
One machine is one guest. Concurrent lines sent to the same machine share its filesystem and process table. Give each tenant its own machine when workload-to-workload isolation matters.
Mirage timeouts stop waiting for the command; they do not kill the process inside the microVM. See Resource limits.