If you’re tired of typing multipass list just to remember what you called that Ubuntu instance, this script’s for you. It adds proper tab completion to your shell so you can just type multipass shell <TAB> and see all your VMs pop up like magic.
What it does
- Smart command completion: Type
multipass <TAB>to see all available commands. - Instance name completion: For commands like
shell,exec,start,stop, etc., it’ll show you all your actual VM instances. - Works with most Multipass commands: Covers all the usual suspects you’d want to tab-complete.
Prerequisities
- ZSH.
- Multipass installed and working.
- A basic grasp of how to edit text files.
Installation
Dead simple:
Create a
completionsdir if you don’t have one already:mkdir -p ~/.config/zsh/completionsDownload the completion file into that dir:
wget -O ~/.config/zsh/completions/_multipass https://johnnymatthews.dev/blog/2025-05-22-multipass-zsh-completion/multipass-zsh-completion/_multipassIf that link isn’t working, or you’ve not got Wget installed, use the GitHub mirror and Curl like a pleb:
curl -o ~/.config/zsh/completions/_multipass https://raw.githubusercontent.com/johnnymatthews/multipass-zsh-autocomplete/refs/heads/yolo/_multipassAdd these lines to your
~/.zshrc:fpath=(~/.config/zsh/completions $fpath) autoload -Uz compinit && compinitI don’t think it matters where you put these lines, but it might. I dunno. Find someone who knows stuff.
Reload ZSH:
source ~/.zshrcDone.
Usage
Now you can do lovely things like:
multipass shell <TAB>to show all your running instances.multipass stop <TAB>show instances you can stop.multipass <TAB>to show all available commands.
Troubleshooting
Not working? Make sure:
- The script is executable and in the right place.
- You’ve reloaded your shell after editing
.zshrc. - Multipass is actually installed and
multipass listworks from the command line. . Still not working? Try runningcompinitmanually to reinitialise completions.
Still, still not working? Drop an issue in this repo.