Synopsis
Description
Thedoctor 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 to validate. Choices:
auto, firecracker, qemu.auto: Automatically detect the best backend for your platformfirecracker: Validate Firecracker-specific requirements (Linux only)qemu: Validate QEMU-specific requirements
Emit machine-readable JSON output instead of human-readable format.
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:Validate specific backend
Check Firecracker-specific requirements:JSON output
Get machine-readable output for automation:Strict mode
Fail on warnings:Checks Performed
Firecracker Backend
When validating the Firecracker backend, doctor checks:- KVM:
/dev/kvmavailability (hardware virtualization) - Firecracker binary: Located in
PATHor~/.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_natandsmolvm_filtertables
QEMU Backend
When validating the QEMU backend, doctor checks:- QEMU binary:
qemu-system-aarch64orqemu-system-x86_64 - Hardware acceleration:
- Linux: KVM support
- macOS: Hypervisor.framework (hvf) support
- ssh command: From openssh-client package (VM access)
Check Statuses
| Status | Description |
|---|---|
PASS | Check succeeded |
WARN | Non-critical issue detected (treated as pass unless --strict is used) |
FAIL | Critical requirement missing |
Exit Codes
| Code | Description |
|---|---|
0 | Success - all checks passed (or only warnings without --strict) |
1 | Failure - one or more checks failed (or warnings with --strict) |
Common Issues
Missing KVM
kvm kernel module is loaded.
Firecracker not found
Missing network commands
Related Commands
smolvm cleanup- Clean up resources after diagnosing issues