Synopsis
Description
Thelist command shows you which VMs are currently running on your system. By default it displays only running VMs in a formatted table. You can also filter by status or get machine-readable JSON output for use in scripts.
Options
Include all VMs regardless of status (running, stopped, created, and error states).
Filter VMs by a specific status. Choices:
created, running, stopped, error. Cannot be used together with --all.Print VM data as JSON instead of a formatted table. Useful for scripting and automation.
The
--all and --status flags are mutually exclusive. Use one or the other, not both.Examples
List running VMs
Show all currently running VMs in a table:List all VMs
Include VMs in any state — running, stopped, created, or error:Filter by status
Show only stopped VMs:JSON output
Get machine-readable output for scripting:Use with other tools
Combine JSON output with tools likejq for automation:
Table columns
The default table output shows the following columns:| Column | Description |
|---|---|
| Name | The VM identifier |
| Status | Current VM state (created, running, stopped, error) |
| PID | Process ID of the VM process, or - if not running |
ip_address (guest IP) and ssh_port (SSH host port).
Exit codes
| Code | Description |
|---|---|
0 | Success |
1 | Error listing VMs |
Related commands
smolvm create- Create a new VMsmolvm ssh- SSH into an existing VMsmolvm cleanup- Clean up stale VMs