Run a Throwaway VM

cubic run --rm creates a VM instance, opens a shell in it and deletes the whole VM instance when you leave the shell. It is the quick way to try a command in a clean guest without anything left on your host afterwards.

Start One

$ cubic run --rm scratch --image ubuntu
alice@scratch:~$ python3 --version
Python 3.13.7
alice@scratch:~$ exit
logout

The VM instance is gone once the shell closes. cubic instances no longer lists it:

$ cubic instances
Name    Arch    CPUs    Memory   Disk Used   Disk Total   Running

Cubic deletes the VM instance whenever the session ends, so a dropped connection or a crash of the guest cleans up as well.

Fast and Small

The disk of a throwaway VM instance is a thin overlay on the cached image rather than a full copy, so it is created at once and stores only what the guest writes. This makes --rm cheap to run again and again.

The overlay refers back to the image in the cache, so a throwaway VM instance is not self-contained. cubic prune clears the whole image cache, so avoid it while a throwaway VM instance still runs, or the overlay loses the base image it reads from. A VM instance created without --rm holds a full copy and is not affected.

Combine with Isolation

--isolate keeps the guest off the network, which pairs well with a throwaway VM instance for code you do not trust. It runs in a clean guest, reaches nothing, and leaves nothing behind:

$ cubic run --rm --isolate scratch --image ubuntu

See Isolate a VM Instance for what isolation covers.

Only cubic run

--rm belongs to cubic run, which owns the shell session from start to finish. cubic create, cubic start and cubic ssh have no --rm, because they do not know when you are done with the VM instance. Delete a VM instance you started that way with cubic delete.