Multipass Run

VS Code extension for managing Multipass virtual machine instances from the sidebar.
- Manage Ubuntu, Fedora, Debian, and Ubuntu Core instances from the sidebar.
- Create instances with default, custom, or cloud-init configurations.
- Take, list, restore, and delete snapshots on supported backends (take/restore require a stopped VM).
- Mount and unmount host folders per instance.
- Connect with Remote-SSH using a generated ed25519 key.
Install
Prerequisites
- Visual Studio Code 1.105.0 or later.
- Multipass installed and on
PATH. Verify with multipass version.
For Multipass prerequisites and OS-specific installation steps, use the upstream guide:
Install the extension
From the Marketplace:
- Open the Extensions view (
Cmd+Shift+X on macOS, Ctrl+Shift+X on Linux and Windows).
- Search for
Multipass Run.
- Select Install.
From a VSIX file:
code --install-extension multipass-run-0.1.0.vsix
How-to guides
For Multipass lifecycle, mounts, snapshots, and cloud-init workflows, use the upstream docs:
How to launch with cloud-init
- Save your cloud-init YAML. The file must start with
#cloud-config.
- Right-click the file in the Explorer and select Launch VM with this cloud-init, or click + in the sidebar and select Open cloud-init YAML.
- Enter an instance name when prompted.
How to connect with Remote-SSH
The extension generates an ed25519 key pair on first use and writes a wrapped block into ~/.ssh/config. To connect, click SSH in the instance detail panel.
Native virtualization backends
Multipass supplies the virtualization backend; the extension reads local.driver
and uses Multipass commands to manage its VMs.
- Windows HCS (
hcs) is the native Host Compute System backend introduced
in Multipass 1.17. New installations use it by default. Existing installations
keep their selected driver until changed; follow the
Hyper-V to HCS migration guide
to migrate stopped Hyper-V VMs. Hyper-V and VirtualBox are deprecated in 1.17.
- Apple Virtualization (
applevz) is an opt-in preview backend on macOS in
Multipass 1.17. QEMU remains the default. See
driver setup
for configuration and driver-specific VM scopes.
Run Multipass Run: Show Environment in the Command Palette to inspect the
client version, daemon version, and configured driver. The extension does not
switch drivers or migrate VMs. Driver changes can change which VMs are visible.
Limitations
- AppleVZ in Multipass 1.17 has no snapshots, suspend, or native mounts. The
extension disables suspend controls and replaces snapshot actions with an
explanation on AppleVZ. It also rechecks the backend before snapshot and
suspend operations, so stale sidebar state cannot bypass those checks.
- Unknown backend support: if driver or daemon detection fails, snapshot and
suspend actions stay unavailable. Run Show Environment to inspect the
error and retry detection.
- Mounts: the extension uses classic mounts. It does not offer a native-mount
selector. Classic mounts remain available on AppleVZ, subject to Multipass's
guest and host requirements.
- Backend verification is incomplete. Driver detection and capability
rules do not establish integration-test coverage. The rules follow the
Multipass 1.17 driver matrix;
older or future daemon versions may differ.
| Backend / host |
Extension verification |
| QEMU / macOS |
VM listing, launch, distro selection, and zone enable/disable exercised locally. Snapshot/suspend checks remain to be verified locally. |
| QEMU / Linux |
No complete backend integration run recorded for this change. |
| HCS / Windows |
Capability rules covered by unit tests; native integration not exercised. |
| AppleVZ / macOS |
Unsupported-action rules covered by unit and UI tests; native integration not exercised. |
| Hyper-V / VirtualBox |
Deprecated by Multipass 1.17; integration not exercised for this change. |
Reference
Commands
| Title |
ID |
| Refresh instance list |
multipass-run.refresh |
| Create instance menu |
multipass-run.createInstanceMenu |
| Show environment |
multipass-run.showEnvironment |
| Prune orphaned SSH entries |
Multipass: Prune Orphaned SSH Entries |
Instance states
| State |
Meaning |
| Running |
Active. |
| Stopped |
Powered off. |
| Suspended |
Paused and saved to disk. |
| Creating |
Being provisioned. |
| Starting |
Booting. |
| Stopping |
Shutting down. |
| Deleting |
Moving to deleted state. |
| Recovering |
Restoring from deleted state. |
| Deleted |
In trash. Recoverable until purged. |
Security
| Area |
Behaviour |
| SSH key |
ed25519 by default. Existing multipass_id_rsa is kept for backward compatibility. Last-VM purge offers to remove the key pair. |
| Config block |
Wrapped in # >>> multipass-run: <name> / # <<< markers. Legacy entries are auto-migrated. |
| Host keys |
StrictHostKeyChecking accept-new with the standard known_hosts. Purge runs ssh-keygen -R. |
| Guest key install |
multipass transfer plus idempotent append. No shell interpolation of the public key. |
| Hygiene |
Orphaned config blocks for missing VMs are auto-pruned at activation and via the Prune Orphaned SSH Entries command. |
Contributing
Open issues and pull requests at the GitHub repository.
License
MIT. See LICENSE.
See also