Manage Virtual Machines from the CLI: list, get, create, update, delete (incl. bulk-delete), power, reboot, hard-reboot, reinstall, factory-reset, rename, reset-password, resize, resize-disk, save-image, plus IP, firewall, VPC, tags, notes, SSH keys and networks subcommands.
Updated November 5, 2026The raff vm command group covers every Virtual Machine operation in the public API. Each subcommand also supports --output json for scripting.
raff vm list [--project-id <uuid>] [--output table|json]
List every VM in the current project. Output columns: ID, NAME, STATUS, IP ADDRESS, CPU, RAM, STORAGE, REGION, CREATED.
# Default tableraff vm list# JSON for scriptingraff vm list --output json | jq '.[] | {id, name, status}'# In a non-default projectraff vm list --project-id <other-project-id>
Create a new VM. Required: --name, --template-id, --pricing-id, --region. Get template IDs via List Templates and pricing IDs via List VM Pricing or the Pricing page. With --auto-generate-password, Raff makes the root or Administrator password and emails it to the account once the server is created; it is never shown or stored by the CLI.
Delete the VM. By default, attached volumes detach (preserved) and VPCs are kept — pass --volume-action delete to also remove volumes and --delete-vpc to remove VPCs (shared VPCs are auto-preserved if other VMs still use them). Pass --force to skip the confirmation prompt — required in scripts. The dashboard exposes the same options as a two-step confirmation dialog; see Delete a VM for the full rules.
Delete multiple VMs in one call. Required: --ids. By default, attached volumes detach (preserved) and VPCs are kept; pass --volume-action delete to also remove volumes, and --delete-vpc to remove VPCs no longer in use. Shared VPCs are auto-preserved if other VMs still use them — see Delete a VM.
raff vm start <vm-id> # Boot upraff vm stop <vm-id> # Graceful shutdownraff vm reboot <vm-id> # Graceful rebootraff vm hard-reboot <vm-id> # Force reboot — no graceful shutdown, data may be lost
Use hard-reboot only when graceful reboot is hung. The API behavior matches the dashboard — see Manage power.
Sets a new root (Linux) or Administrator (Windows) password and emails it to the account owner. A running server gets it at once, without a restart; a server Raff cannot reach that way gets it through its settings (a running Linux server restarts to apply it). See Reset password.
Attach a Firewall Group to the VM’s public IP. It replaces the group the IP had and applies in about 20 seconds, with no reboot. See Attach a Firewall Group to a VM.
The keys in root’s authorized_keys, read from the running server itself. Output columns: FINGERPRINT, TYPE, COMMENT, SAVED KEY, OPTIONS. Linux servers only.
raff vm ssh-keys add <vm-id> --key <saved-key-id | public-key> [--save-as <name>]raff vm ssh-keys add <vm-id> --key-file ~/.ssh/id_ed25519.pub [--save-as <name>]
Add a key to root on a running Linux server, at once and without a restart. --save-as also saves a new key to your account. A key the server already has changes nothing. The account owner gets an email. See Add or remove SSH keys.
raff vm ssh-keys remove <vm-id> --fingerprint <SHA256:...> [--confirm-last] [--force]
Remove a key from root, and from the server’s settings so it does not come back at the next restart. Root’s last key goes only with --confirm-last. Asks before removing unless --force.