explaingit

canonical/multipass

9,077C++Audience · developerComplexity · 2/5LicenseSetup · easy

TLDR

A command-line tool that launches and manages Ubuntu virtual machines on Linux, macOS, or Windows with a single command, handling all the virtualization details automatically.

Mindmap

mindmap
  root((Multipass))
    What it does
      Launch Ubuntu VMs
      Manage instances
      Blueprint environments
    Platforms
      Linux KVM
      macOS QEMU
      Windows Hyper-V
    Features
      cloud-init support
      Snapshots
      File transfer
    Blueprints
      Docker
      Minikube Kubernetes
      Jellyfin media
    Audience
      Developers
      DevOps engineers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Spin up a fresh Ubuntu VM in seconds to test a deployment script or server config without touching your main operating system.

USE CASE 2

Use cloud-init to script the full setup of a VM instance and test it locally before applying the same config to a real cloud server.

USE CASE 3

Launch a preconfigured Docker, Minikube, or Jellyfin environment from a blueprint without manually installing any software.

Tech stack

C++UbuntuKVMQEMUHyper-V

Getting it running

Difficulty · easy Time to first run · 5min
Released under GNU GPL v3, free to use and modify, but distributed versions must also be open source under the same license.

In plain English

Multipass is a tool that lets you start and stop Ubuntu virtual machines on your laptop or desktop with a single command. A virtual machine is a self-contained operating system running inside your main operating system, isolated from everything else. Multipass manages the technical details of creating and running those machines so you do not have to configure virtualization software manually. It works on Linux, macOS, and Windows. On each platform it uses the virtualization technology built into that operating system: KVM on Linux, Hyper-V on Windows, and QEMU on macOS. VirtualBox is also supported as an alternative on Windows and macOS. Multipass downloads Ubuntu images automatically and keeps them up to date, so you always have a current version ready to launch. The basic workflow is straightforward. You run a command to launch a new instance and it starts in seconds. Each instance gets a name, an IP address, its own disk and memory allocation, and a full Ubuntu environment. You can open a shell inside it, run commands against it from outside without entering the shell, copy files in and out, take snapshots to save state at a point in time, and delete instances when you are done. Multiple instances can run simultaneously. Multipass also supports cloud-init, a standard format for describing how a cloud server should be configured when it first starts. This lets you script the setup of an instance, which is useful for testing deployment configurations on your local machine before sending them to a real cloud provider. Beyond plain Ubuntu, Multipass can launch preconfigured environments called blueprints that come with specific software already installed. The available list includes environments set up for Docker, Minikube (a local Kubernetes environment), Jellyfin media server, and ROS robotics development. The project is maintained by Canonical, the company behind Ubuntu, and is released under the GNU General Public License v3.

Copy-paste prompts

Prompt 1
Using Multipass, launch a new Ubuntu VM, SSH into it, install Nginx, and then delete the VM when done. Show each command.
Prompt 2
With Multipass and a cloud-init YAML file, provision a VM that automatically installs Docker and starts a container on first boot.
Prompt 3
How do I use Multipass blueprints to start a local Minikube Kubernetes environment on my Mac without installing Minikube separately?
Open on GitHub → Explain another repo

← canonical on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.