Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6,011 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Meta Package Manager

Last release Python versions Downloads Unittests status Documentation status DOI

What is Meta Package Manager?

  • snapshots every package on your machine to one file, and restores it on a new one
  • provides the mpm CLI, a wrapper around all package managers
  • mpm is like yt-dlp, but for package managers instead of videos
  • mpm solves XKCD #1654 - Universal Install Script

Quick start

Thanks to uv, you can run mpm on any platform in one command, without installation or venv:

$ uvx meta-package-manager

Take everything installed on this machine, whichever package manager put it there, and write it to a single file:

$ mpm dump packages.toml

On the next machine, put it all back:

$ mpm restore packages.toml

Features

Supported package managers

One CLI to rule them all. Every manager below links to its own documentation page, and mpm runs them concurrently bar the few that queue on a shared backend.

Package manager Version Cooldown Platforms installed outdated orphans search install upgrade upgrade_all remove sync cleanup doctor
am >= 10.4 ๐Ÿง โœ“ โœ“ โœ“ โœ“ โœ“
antidote >= 2.2 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“
antigen >= 2 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“
apk >= 2.10 ๐Ÿง โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
apm โš ๏ธ >= 1 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
apt >= 1 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
apt-cyg โš ๏ธ โœ“ โœ“ โœ“ โœ“ โœ“
apt-mint >= 1 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
asdf >= 0.16 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
basalt >= 0.10 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“
bin >= 0.27 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“
bpkg ๐Ÿง ๐ŸŽ โœ“
brew >= 6 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
bun >= 1.2 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
cargo >= 1 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“
cask >= 6 ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
cave โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
choco >= 2 ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
chromebrew โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
clib ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“
composer >= 1.4 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
conda >= 4.6 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
cpan >= 1.64 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“
deb-get ๐Ÿง โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
dkp-pacman >= 6 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
dnf >= 4 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
dnf5 >= 5 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
dotnet >= 8.0.400 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
emerge >= 3 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
eopkg >= 3.2 ๐Ÿง โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
fink ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
fisher >= 4 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“
flatpak >= 1.2 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
fwupd >= 1.9.5 ๐Ÿง โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
gcloud >= 170 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“
gem >= 2.5 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
gext >= 0.11 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
gh-ext >= 2 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
ghcup >= 0.2.1 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
guix ๐Ÿง โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
haxelib >= 4 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
jpm ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“
juliaup >= 1.21 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
krew >= 0.4 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
lazy >= 11 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“
luarocks >= 3.9.1 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
macports >= 2 ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
mamba >= 2 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
mas >= 7 ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
mason >= 2 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“
micro >= 2 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
micromamba >= 2 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
miktex >= 22.3 ๐Ÿง ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
mise >= 2025.5.10 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
nala >= 0.12.2 ๐Ÿง โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
nimble >= 0.22 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“
nix >= 2 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
npm >= 11.10 โœ“ ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
oh-my-fish >= 6 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“
ollama >= 0.5 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“
opam >= 2 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
opkg >= 0.2 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pacaur โš ๏ธ >= 4 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pacman >= 5 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pacstall >= 6 ๐Ÿง โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pamac >= 11 ๐Ÿง โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
paru >= 1.9.3 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pikaur >= 1 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pip >= 26.1 โœ“ ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pipx >= 1 โœ“ ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pixi >= 0.65 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pkcon >= 0.7 ๐Ÿง โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pkg >= 1.11 โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pkg-tools โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pkgin โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pnpm >= 11 โœ“ ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
ports โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pwsh-gallery >= 7.4 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
pyenv >= 2.3.13 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“ โœ“
rustup >= 1.28 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
scoop >= 0.2.4 ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
sdkman >= 5 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
sfsu >= 1.16 ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
sheldon >= 0.6 ๐Ÿง ๐ŸŽ โœ“ โœ“
slapt-get โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
snap >= 2 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
soar >= 0.12 ๐Ÿง โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
sorcery โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
steamcmd ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“
stew >= 0.3 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“
sun-tools โœ“ โœ“
swupd โš ๏ธ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
tazpkg โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
tlmgr >= 2018 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
topgrade >= 17 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“
trizen >= 1 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
urpmi โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
uv >= 0.5 โœ“ ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
uvx >= 0.10.10 โœ“ ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
vagrant >= 2.4 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
vcpkg ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
vim-pack >= 0.12 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“
volta โš ๏ธ >= 1.0.2 ๐Ÿง ๐ŸŽ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“
vscode >= 1.60 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“
vscodium >= 1.60 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“
winget >= 1.28.190 ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
xbps >= 0.59 ๐Ÿง โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
xcodes >= 1 ๐ŸŽ โœ“ โœ“ โœ“
yarn >= 1.20, < 2 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
yarn-berry >= 2 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“
yay >= 11 โœ“ ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
yazi >= 25.2.7 ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“
yum >= 4 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
zef ๐Ÿ…ฑ๏ธ ๐Ÿง ๐ŸŽ โจ‚ ๐ŸชŸ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
zerobrew >= 0.3 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“
zim >= 1 ๐Ÿง ๐ŸŽ โœ“ โœ“
zinit >= 3.10 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“ โœ“ โœ“
zplug >= 2 ๐Ÿง ๐ŸŽ โœ“ โœ“ โœ“
zypper >= 1.14 ๐Ÿ…ฑ๏ธ ๐Ÿง โจ‚ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“ โœ“

Platforms: ๐Ÿ…ฑ๏ธ BSD1ย ยท ๐Ÿง Linux2ย ยท ๐ŸŽ macOSย ยท โจ‚ Unix3ย ยท ๐ŸชŸ Windows

Note

If your favorite manager is missing or does not support an operation, you can influence its implementation: open a ticket to document its output or read the contribution guide and submit a pull request.

You can help if you purchase business support ๐Ÿค or sponsor the project ๐Ÿซถ.

Installation

All installation methods are available in the documentation. Below are the most popular ones:

macOS

mpm is part of the official Homebrew default tap, so you can install it with:

$ brew install meta-package-manager

It is also available on MacPorts:

$ sudo port install meta-package-manager

Windows

mpm is available in the main repository of Scoop, so you just need to:

> scoop install main/meta-package-manager

Executables

Standalone binaries of mpm latest version are available as direct downloads for several platforms and architectures:

Platform arm64 x86_64
Linux Download meta-package-manager-linux-arm64.bin Download meta-package-manager-linux-x64.bin
macOS Download meta-package-manager-macos-arm64.bin Download meta-package-manager-macos-x64.bin
Windows Download meta-package-manager-windows-arm64.exe Download meta-package-manager-windows-x64.exe

No need to install Python or uv. Useful for CI/CD pipelines running on minimal images, or old platforms where dependency management is painful.

Quickstart

List installed packages

List all packages installed on current system:

$ mpm installed
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Package ID                                   โ”‚ Name    โ”‚ Manager  โ”‚ Installed version                        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ curl                                         โ”‚         โ”‚ brew     โ”‚ 8.21.0                                   โ”‚
โ”‚ git                                          โ”‚         โ”‚ brew     โ”‚ 2.55.0                                   โ”‚
โ”‚ aerial                                       โ”‚         โ”‚ cask     โ”‚ 3.6.3                                    โ”‚
โ”‚ amethyst                                     โ”‚         โ”‚ cask     โ”‚ 0.24.3                                   โ”‚
โ”‚ bigdecimal                                   โ”‚         โ”‚ gem      โ”‚ 3.1.4                                    โ”‚
โ”‚ bundler                                      โ”‚         โ”‚ gem      โ”‚ 2.4.22                                   โ”‚
โ”‚ 361285480                                    โ”‚ Keynote โ”‚ mas      โ”‚ 15.3.1                                   โ”‚
โ”‚ 408981434                                    โ”‚ iMovie  โ”‚ mas      โ”‚ 10.4.4                                   โ”‚
โ”‚ @mermaid-js/mermaid-cli                      โ”‚         โ”‚ npm      โ”‚ 11.12.0                                  โ”‚
โ”‚ npm                                          โ”‚         โ”‚ npm      โ”‚ 11.19.0                                  โ”‚
โ”‚ cyclonedx-python-lib                         โ”‚         โ”‚ uv       โ”‚ 11.11.0                                  โ”‚
โ”‚ packageurl-python                            โ”‚         โ”‚ uv       โ”‚ 0.17.6                                   โ”‚
โ”‚ https://github.com/nvim-lualine/lualine.nvim โ”‚         โ”‚ vim-pack โ”‚ 221ce6b2d999187044529f49da6554a92f740a96 โ”‚
โ”‚ charliermarsh.ruff                           โ”‚         โ”‚ vscode   โ”‚ 2026.70.0                                โ”‚
โ”‚ ms-python.python                             โ”‚         โ”‚ vscode   โ”‚ 2026.4.0                                 โ”‚
โ”‚ zsh-users/zsh-autosuggestions                โ”‚         โ”‚ zinit    โ”‚ ?                                        โ”‚
โ”‚ zsh-users/zsh-completions                    โ”‚         โ”‚ zinit    โ”‚ ?                                        โ”‚
โ”‚ (...)                                        โ”‚         โ”‚          โ”‚                                          โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
483 packages total (brew: 246, uv: 75, gem: 62, cask: 52, vscode: 16, vim-pack: 9, zinit: 9, mas: 7, npm: 6, cargo: 1, gh-ext: 0, pnpm: 0, uvx: 0, yarn: 0).

Narrow the listing to packages whose ID or name matches a query by passing it as an argument. The match is fuzzy by default (case-insensitive and tokenized); add --exact to require a verbatim match on the package ID or name:

$ mpm installed sphinx
$ mpm installed --exact Sphinx

List outdated packages

List all packages installed for which an upgrade is available:

$ mpm outdated
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Package name โ”‚ ID          โ”‚ Manager โ”‚ Installed version โ”‚ Latest version โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ curl         โ”‚ curl        โ”‚ brew    โ”‚ 7.79.1            โ”‚ 7.79.1_1       โ”‚
โ”‚ git          โ”‚ git         โ”‚ brew    โ”‚ 2.33.0            โ”‚ 2.33.0_1       โ”‚
โ”‚ openssl@1.1  โ”‚ openssl@1.1 โ”‚ brew    โ”‚ 1.1.1l            โ”‚ 1.1.1l_1       โ”‚
โ”‚ rake         โ”‚ rake        โ”‚ gem     โ”‚ 13.0.3            โ”‚ 13.0.6         โ”‚
โ”‚ Telegram     โ”‚ 747648890   โ”‚ mas     โ”‚ 8.1               โ”‚ 8.1.3          โ”‚
โ”‚ npm          โ”‚ npm@8.0.0   โ”‚ npm     โ”‚ 7.24.0            โ”‚ 8.0.0          โ”‚
โ”‚ pip          โ”‚ pip         โ”‚ pip     โ”‚ 21.2.4            โ”‚ 21.3           โ”‚
โ”‚ regex        โ”‚ regex       โ”‚ pip     โ”‚ 2021.9.30         โ”‚ 2021.10.8      โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
8 packages total (brew: 3, pip: 2, gem: 1, mas: 1, npm: 1, apm: 0, cask: 0, composer: 0).

The same query argument restricts the listing to outdated packages whose ID or name matches, again fuzzy by default and exact with --exact:

$ mpm outdated git

Upgrade outdated packages

A recent study shows that 70% of vulnerabilities lie in outdated libraries, so keeping every piece of software up to date is one of the key habits of security professionals. mpm upgrades all packages from all managers with a one-liner:

$ mpm upgrade --all
Updating all outdated packages from brew...
==> Upgrading 4 outdated packages:
gnu-getopt 2.35.1 -> 2.35.2
rclone 1.51.0 -> 1.52.0
fd 8.1.0 -> 8.1.1
youtube-dl 2020.05.08 -> 2020.05.29
(...)
Updating all outdated packages from cask...
==> Upgrading 4 outdated packages:
balenaetcher 1.5.89 -> 1.5.94, libreoffice 6.4.3 -> 6.4.4
(...)
Updating all outdated packages from gem...
Updating openssl
(...)
Updating all outdated packages from npm...
+ npm@6.14.5
(...)
Updating all outdated packages from pip...
Successfully installed dephell-argparse-0.1.3
Successfully installed dephell-pythons-0.1.15

This is the primary use case of mpm, and the main reason I built it.

Upgrade with a supply-chain cooldown

There is a counter-argument to the advice above. Chasing the newest release the moment it ships is exactly how supply-chain attacks reach you: a compromised version is usually detected and pulled within days of publication, but an immediate upgrade installs it before that happens. Blindly staying on the bleeding edge trades one risk (outdated, vulnerable libraries) for another (freshly poisoned releases).

mpm reconciles the two with a release-age cooldown, refusing any version published more recently than a threshold:

$ mpm --cooldown "7 days" upgrade --all

You still pick up older security fixes promptly, while sitting out the risky first days of a brand-new release. See the cooldown guide for the full mechanism and which managers enforce it natively.

List managers

mpm reports the package managers it detected on your system, and the version each one self-reports:

$ mpm managers
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Manager ID โ”‚ Name                  โ”‚ CLI                                                                    โ”‚ Version              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ brew       โ”‚ Homebrew Formulae     โ”‚ โœ“ /opt/homebrew/bin/brew                                               โ”‚ โœ“ 6.0.17-69-g38ee325 โ”‚
โ”‚ cargo      โ”‚ Rust cargo            โ”‚ โœ“ /opt/homebrew/bin/cargo                                              โ”‚ โœ“ 1.97.1             โ”‚
โ”‚ cask       โ”‚ Homebrew Cask         โ”‚ โœ“ /opt/homebrew/bin/brew                                               โ”‚ โœ“ 6.0.17-69-g38ee325 โ”‚
โ”‚ cpan       โ”‚ Perl CPAN             โ”‚ โœ“ /usr/bin/cpan                                                        โ”‚ โœ“ 2.28               โ”‚
โ”‚ gem        โ”‚ RubyGems              โ”‚ โœ“ /usr/bin/gem                                                         โ”‚ โœ“ 3.4.5              โ”‚
โ”‚ gh-ext     โ”‚ GitHub CLI extensions โ”‚ โœ“ /opt/homebrew/bin/gh                                                 โ”‚ โœ“ 2.97.0             โ”‚
โ”‚ mas        โ”‚ Mac App Store         โ”‚ โœ“ /opt/homebrew/bin/mas                                                โ”‚ โœ“ 7.0.0              โ”‚
โ”‚ npm        โ”‚ Node npm              โ”‚ โœ“ /opt/homebrew/bin/npm                                                โ”‚ โœ“ 11.19.0            โ”‚
โ”‚ pnpm       โ”‚ Node pnpm             โ”‚ โœ“ /opt/homebrew/bin/pnpm                                               โ”‚ โœ“ 11.20.0            โ”‚
โ”‚ topgrade   โ”‚ Topgrade              โ”‚ โœ“ /opt/homebrew/bin/topgrade                                           โ”‚ โœ“ 17.9.0             โ”‚
โ”‚ uv         โ”‚ Python uv             โ”‚ โœ“ /opt/homebrew/bin/uv                                                 โ”‚ โœ“ 0.12.3             โ”‚
โ”‚ uvx        โ”‚ Python uvx            โ”‚ โœ“ /opt/homebrew/bin/uv                                                 โ”‚ โœ“ 0.12.3             โ”‚
โ”‚ vim-pack   โ”‚ Neovim vim-pack       โ”‚ โœ“ /opt/homebrew/bin/nvim                                               โ”‚ โœ“ 0.12.4             โ”‚
โ”‚ vscode     โ”‚ Visual Studio Code    โ”‚ โœ“ /Applications/Visual Studio Code.app/Contents/Resources/app/bin/code โ”‚ โœ“ 1.133.0            โ”‚
โ”‚ yarn       โ”‚ Yarn Classic          โ”‚ โœ“ /opt/homebrew/bin/yarn                                               โ”‚ โœ“ 1.22.22            โ”‚
โ”‚ zinit      โ”‚ Zinit                 โ”‚ โœ“ /opt/homebrew/bin/zsh                                                โ”‚ โœ“ 3.15.0             โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

If you wonder why one of your package managers is not in that list, name it: a manager you select explicitly is always reported, and the extra columns spell out what mpm could not resolve.

$ mpm --composer --volta --choco --yarn-berry managers
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Manager ID โ”‚ Name         โ”‚ Supported        โ”‚ CLI                      โ”‚ Executable โ”‚ Version           โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ choco      โ”‚ Chocolatey   โ”‚ โœ˜ Windows        โ”‚ โœ˜ choco not found        โ”‚            โ”‚                   โ”‚
โ”‚ composer   โ”‚ PHP Composer โ”‚ โœ“                โ”‚ โœ˜ composer not found     โ”‚            โ”‚                   โ”‚
โ”‚ volta      โ”‚ Volta        โ”‚ โœ“ (unmaintained) โ”‚ โœ˜ volta not found        โ”‚            โ”‚                   โ”‚
โ”‚ yarn-berry โ”‚ Yarn Berry   โ”‚ โœ“                โ”‚ โœ“ /opt/homebrew/bin/yarn โ”‚ โœ“          โ”‚ โœ˜ 1.22.22 >=2.0.0 โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Four different reasons, one per row. choco only runs on Windows. composer is supported here but its CLI is nowhere on the PATH. volta is missing too, and is flagged unmaintained upstream, which is also why selecting it prints a deprecation notice on stderr. And yarn-berry is the interesting one: its CLI was found and is executable, but the yarn on this machine is a 1.x that does not satisfy the >=2.0.0 its wrapper requires, so mpm will not drive it.

To browse the whole catalog instead, widen the view: mpm managers --view supported lists every manager your platform can run, found or not, and mpm managers --view all adds those mpm implements for other platforms and the unmaintained ones. The global --all-managers flag is a synonym for the widest of the three.

If your favorite manager is not supported yet, you can help! See the contribution guide. A handful of tools are deliberately left out, each with its rationale: they are catalogued in unsupported managers.

Used in

Check these projects to get real-life examples of mpm usage:

  • GitHub stars Dotfiles - macOS dotfiles for Python developers, using mpm to manage system packages.

Feel free to send a PR to add your project in this list if you are relying on mpm in any way.

Usage

Other subcommands and options are documented in:

Footnotes

  1. BSD: DragonFly BSD, FreeBSD, MidnightBSD, NetBSD, OpenBSD, SunOS. โ†ฉ

  2. Linux: AlmaLinux, Alpine Linux, ALT Linux, Amazon Linux, Android, Arch Linux, Buildroot, CachyOS, CentOS, ChromeOS, Clear Linux OS, CloudLinux OS, Debian, EndeavourOS, Exherbo Linux, Fedora, Generic Linux, Gentoo Linux, Guix System, IBM PowerKVM, Kali Linux, KVM for IBM z Systems, Linux Mint, Mageia, Mandriva Linux, Manjaro Linux, NixOS, Nobara, openSUSE, OpenWrt, Oracle Linux, Parallels, Pidora, PikaOS, Raspbian, RedHat Enterprise Linux, Rocky Linux, Scientific Linux, Slackware, SliTaz GNU/Linux, Source Mage GNU/Linux, SUSE Linux Enterprise Server, Tuxedo OS, Ubuntu, Ultramarine, Void Linux, Windows Subsystem for Linux v1, Windows Subsystem for Linux v2, XenServer. โ†ฉ

  3. Unix: Cygwin, GNU/Hurd, Haiku, IBM AIX, IBM i, illumos, Solaris. โ†ฉ

About

๐ŸŽ snapshot every package on your machine to one file, restore it on a new one

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

609 stars

Watchers

10 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages