Skip to main content
SnapshotInfo tells you what SmolVM saved for a snapshot and how it can be restored. You receive it from vm.snapshot(...) and from snapshot list operations.

Fields

snapshot_id
string
required
Unique snapshot identifier. If you do not provide one, SmolVM generates it.
vm_id
string
required
Source VM identifier.
backend
Literal["firecracker", "qemu", "libkrun"]
required
Backend used by the source VM. Public docs focus on Firecracker and QEMU.
artifacts
SnapshotArtifacts
required
Files SmolVM wrote for the snapshot.
vm_config
VMConfig
required
VM configuration captured at snapshot time. SmolVM uses it during restore.
network_config
NetworkConfig
required
Network configuration captured at snapshot time. SmolVM uses it to restore the VM’s network identity.
created_at
datetime
required
UTC timestamp for when the snapshot was created.
snapshot_type
SnapshotType
default:"SnapshotType.FULL"
What was saved: FULL, DIFF, or DISK. DISK is disk-only on QEMU and restores with a cold boot. On Firecracker, SmolVM still captures memory and VM state for every snapshot type.
restored
bool
default:"false"
Whether this snapshot has been restored at least once.
restored_vm_id
string | None
default:"None"
VM ID of the most recently restored instance, if any.

Usage

Creating a snapshot

from smolvm import SmolVM

vm = SmolVM()
vm.start()

snapshot = vm.snapshot(snapshot_id="my-checkpoint")
print(snapshot.snapshot_id)
print(snapshot.backend)
print(snapshot.artifacts.disk_path)

vm.close()

Listing snapshots

from smolvm import SmolVMManager

with SmolVMManager() as sdk:
    snapshots = sdk.list_snapshots()
    for snap in snapshots:
        status = "restored" if snap.restored else "available"
        print(f"{snap.snapshot_id} ({status}) from {snap.vm_id}")

Restoring from a snapshot

from smolvm import SmolVM

vm = SmolVM.from_snapshot("my-checkpoint", resume_vm=True)
print(vm.vm_id)
print(vm.status)

vm.close()
Last modified on June 6, 2026