Skip to main content

Synopsis

Description

The doctor command runs comprehensive diagnostics on your system to verify that all prerequisites for running SmolVM are met. It checks for required binaries, permissions, KVM availability, and network configuration.

Options

--backend
string
default:"auto"
Backend to validate. Choices: auto, firecracker, qemu.
  • auto: Automatically detect the best backend for your platform
  • firecracker: Validate Firecracker-specific requirements (Linux only)
  • qemu: Validate QEMU-specific requirements
--json
flag
default:"false"
Emit machine-readable JSON output instead of human-readable format.
--strict
flag
default:"false"
Treat warnings as failures. When enabled, the command exits with code 1 if any warnings are present.

Examples

Basic diagnostics

Run diagnostics with auto-detected backend:
Example output:

Validate specific backend

Check Firecracker-specific requirements:
Check QEMU-specific requirements:
Example output (macOS):

JSON output

Get machine-readable output for automation:
Example output:

Strict mode

Fail on warnings:
Example output:

Checks Performed

Firecracker Backend

When validating the Firecracker backend, doctor checks:
  • KVM: /dev/kvm availability (hardware virtualization)
  • Firecracker binary: Located in PATH or ~/.smolvm/bin
  • ip command: From iproute2 package (network management)
  • nft command: From nftables package (firewall rules)
  • ssh command: From openssh-client package (VM access)
  • Network permissions: Sudo access for network operations
  • nftables tables: Checks for existing smolvm_nat and smolvm_filter tables

QEMU Backend

When validating the QEMU backend, doctor checks:
  • QEMU binary: qemu-system-aarch64 or qemu-system-x86_64
  • Hardware acceleration:
    • Linux: KVM support
    • macOS: Hypervisor.framework (hvf) support
  • ssh command: From openssh-client package (VM access)

Check Statuses

Exit Codes

Common Issues

Missing KVM

Solution: Ensure KVM is enabled in your system’s BIOS/UEFI and that the kvm kernel module is loaded.

Firecracker not found

Solution: Run the setup command or manually install Firecracker:

Missing network commands

Solution: Install the required package:
Last modified on June 24, 2026