What is Meta Package Manager?
provides the
mpmCLI, a wrapper around all package managersmpmis likeyt-dlp, but for package managers instead of videosmpmsolves 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
Featuresยถ
Inventory and list all package managers available on the system.
Supports macOS, Linux and Windows.
Standalone executables for Linux, macOS and Windows.
Mitigate supply-chain attacks with a release-age cooldown that refuses too-recent versions:
mpm --cooldown "7 days" upgrade --all.Snapshot installed packages to a TOML manifest or a Brewfile.
Restore/install list of packages from TOML files.
Software Bill of Materials: export installed packages to SPDX and CycloneDX SBOM files.
Pin-point commands to a subset of package managers (include/exclude selectors).
Support plain, versioned and purl package specifiers.
Export output to JSON or user-friendly tables.
Shell auto-completion for Bash, Zsh and Fish.
Provides a Xbar/SwiftBar plugin for friendly macOS integration.
Because
mpmtry to wrap all other package managers, it became another pathological case of XKCD #927: Standards
Supported package managersยถ
One CLI to rule them all:
---
config:
sankey:
height: 400
showValues: false
width: 800
---
sankey-beta
Meta Package Manager,apk,1
Meta Package Manager,apm,1
Meta Package Manager,apt,1
Meta Package Manager,apt-mint,1
Meta Package Manager,asdf,1
Meta Package Manager,brew,1
Meta Package Manager,cargo,1
Meta Package Manager,cask,1
Meta Package Manager,choco,1
Meta Package Manager,composer,1
Meta Package Manager,cpan,1
Meta Package Manager,deb-get,1
Meta Package Manager,dnf,1
Meta Package Manager,dnf5,1
Meta Package Manager,emerge,1
Meta Package Manager,eopkg,1
Meta Package Manager,flatpak,1
Meta Package Manager,fwupd,1
Meta Package Manager,gem,1
Meta Package Manager,guix,1
Meta Package Manager,macports,1
Meta Package Manager,mas,1
Meta Package Manager,mise,1
Meta Package Manager,nix,1
Meta Package Manager,npm,1
Meta Package Manager,opkg,1
Meta Package Manager,pacaur,1
Meta Package Manager,pacman,1
Meta Package Manager,pacstall,1
Meta Package Manager,paru,1
Meta Package Manager,pip,1
Meta Package Manager,pipx,1
Meta Package Manager,pkg,1
Meta Package Manager,pnpm,1
Meta Package Manager,ports,1
Meta Package Manager,pwsh-gallery,1
Meta Package Manager,scoop,1
Meta Package Manager,sdkman,1
Meta Package Manager,sfsu,1
Meta Package Manager,snap,1
Meta Package Manager,steamcmd,1
Meta Package Manager,stew,1
Meta Package Manager,topgrade,1
Meta Package Manager,uv,1
Meta Package Manager,uvx,1
Meta Package Manager,vscode,1
Meta Package Manager,vscodium,1
Meta Package Manager,winget,1
Meta Package Manager,xbps,1
Meta Package Manager,yarn,1
Meta Package Manager,yarn-berry,1
Meta Package Manager,yay,1
Meta Package Manager,yum,1
Meta Package Manager,zerobrew,1
Meta Package Manager,zypper,1
Metadata and operationsยถ
Package manager |
Version |
Cooldown |
BSD[1] |
Linux[2] |
macOS |
Unix[3] |
Windows |
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
>=2.10.0 |
๐ง |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||
>=1.0.0 |
๐ ฑ๏ธ |
๐ง |
๐ |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=1.0.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=1.0.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=0.16.0 |
๐ง |
๐ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||
>=6.0.0 |
๐ง |
๐ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||||
>=1.0.0 |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
โ |
|||||||
>=6.0.0 |
๐ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||
>=2.0.0 |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||||
>=1.4.0 |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||
>=1.64 |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
โ |
โ |
||||||
๐ง |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||||||
>=4.0.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=5.0.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=3.0.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=3.2.0 |
๐ง |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||
>=1.2.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||||
>=1.9.5 |
๐ง |
โ |
โ |
โ |
โ |
โ |
โ |
|||||||||
>=2.5.0 |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||
๐ง |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||||||
>=2.0.0 |
๐ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||
>=7.0.0 |
๐ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||||
>=2025.5.10 |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||
>=2.0.0 |
๐ง |
๐ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||||
>=11.10.0 |
โ |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||
>=0.2.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||||
>=4.0.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=5.0.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=6.0.0 |
๐ง |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||||||
>=1.9.3 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=26.1.0 |
โ |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||
>=1.0.0 |
โ |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=1.11 |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||||||
>=11.0.0 |
โ |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||||||||
>=7.4.0 |
๐ง |
๐ |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||
>=0.2.4 |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||
>=5.0.0 |
๐ง |
๐ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||
>=1.16.0 |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||
>=2.0.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
|||||||||||
>=0.3.0 |
๐ง |
๐ |
๐ช |
โ |
โ |
โ |
โ |
โ |
||||||||
>=17.0.0 |
๐ ฑ๏ธ |
๐ง |
๐ |
๐ช |
โ |
|||||||||||
>=0.5.0 |
โ |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||
>=0.10.10 |
โ |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=1.60.0 |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
||||||||
>=1.60.0 |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
||||||||
>=1.28.190 |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||||||
>=0.59 |
๐ง |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||
>=1.20.0,<2.0.0 |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
|||
>=2.0.0 |
๐ ฑ๏ธ |
๐ง |
๐ |
โจ |
๐ช |
โ |
โ |
|||||||||
>=11.0.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=4.0.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
||||
>=0.3.0 |
๐ง |
๐ |
โ |
โ |
โ |
โ |
โ |
โ |
||||||||
>=1.14.0 |
๐ ฑ๏ธ |
๐ง |
โจ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
โ |
[!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
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 |
|
|
|---|---|---|
Linux |
||
macOS |
||
Windows |
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 name โ ID โ Manager โ Installed version โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ github โ github โ apm โ 0.36.9 โ
โ update-package-dependencies โ update-package-dependencies โ apm โ 0.13.1 โ
โ rust โ rust โ brew โ 1.55.0 โ
โ x264 โ x264 โ brew โ r3060 โ
โ atom โ atom โ cask โ 1.58.0 โ
โ visual-studio-code โ visual-studio-code โ cask โ 1.52.0 โ
โ nokogiri โ nokogiri โ gem โ x86_64-darwin โ
โ rake โ rake โ gem โ 13.0.3 โ
โ iMovie โ 408981434 โ mas โ 10.2.5 โ
โ Telegram โ 747648890 โ mas โ 8.1 โ
โ npm โ npm โ npm โ 7.24.0 โ
โ raven โ raven โ npm โ 2.6.4 โ
โ jupyterlab โ jupyterlab โ pip โ 3.1.14 โ
โ Sphinx โ Sphinx โ pip โ 4.2.0 โ
โ ms-python.python โ ms-python.python โ vscode โ 2021.10.1317843341 โ
โ ms-toolsai.jupyter โ ms-toolsai.jupyter โ vscode โ 2021.9.1001312534 โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโฏ
16 packages total (brew: 2, pip: 2, apm: 2, gem: 2, cask: 2, mas: 2, vscode: 2, npm: 2, composer: 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
List managersยถ
If you wonder why your package manager doesnโt seems to be identified, you can list all those recognized by mpm with:
$ mpm --all-managers managers
โญโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโฎ
โ Manager ID โ Name โ Supported โ CLI โ Executable โ Version โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโค
โ apm โ Atom apm โ โ โ โ apm not found โ โ โ
โ apt โ Debian apt โ โ Linux only โ โ /usr/bin/apt โ โ โ โ โ
โ apt-mint โ Linux Mint apt โ โ Linux only โ โ /usr/bin/apt โ โ โ โ โ
โ brew โ Homebrew Formulae โ โ โ โ /opt/homebrew/bin/brew โ โ โ โ 3.6.3 โ
โ cargo โ Rust cargo โ โ โ โ /opt/homebrew/bin/cargo โ โ โ โ 1.64.0 โ
โ cask โ Homebrew Cask โ โ โ โ /opt/homebrew/bin/brew โ โ โ โ 3.6.3 โ
โ choco โ Chocolatey โ โ Windows only โ โ choco not found โ โ โ
โ composer โ PHP Composer โ โ โ โ /opt/homebrew/bin/composer โ โ โ โ 2.4.2 โ
โ dnf โ Fedora DNF โ โ Linux only โ โ dnf not found โ โ โ
โ emerge โ Gentoo emerge โ โ Linux only โ โ emerge not found โ โ โ
โ flatpak โ Flatpak โ โ Linux only โ โ flatpak not found โ โ โ
โ gem โ RubyGems โ โ โ โ /usr/bin/gem โ โ โ โ 3.0.3.1 โ
โ mas โ Mac App Store โ โ โ โ /opt/homebrew/bin/mas โ โ โ โ 1.8.6 โ
โ npm โ Node npm โ โ โ โ /opt/homebrew/bin/npm โ โ โ โ 8.19.2 โ
โ opkg โ opkg โ โ Linux only โ โ opkg not found โ โ โ
โ pacman โ Arch Linux pacman โ โ Linux only โ โ pacman not found โ โ โ
โ pacstall โ Pacstall โ โ Linux only โ โ pacstall not found โ โ โ
โ paru โ Arch Linux paru โ โ Linux only โ โ paru not found โ โ โ
โ pip โ Python pip โ โ โ โ ~/.pyenv/shims/python3 โ โ โ โ 22.2.2 โ
โ pipx โ Python pipx โ โ โ โ /opt/homebrew/bin/pipx โ โ โ โ 1.1.0 โ
โ scoop โ Scoop โ โ Windows only โ โ scoop not found โ โ โ
โ sdkman โ SDKMAN โ โ โ โ sdkman-init.sh not found โ โ โ
โ snap โ Snap โ โ Linux only โ โ snap not found โ โ โ
โ steamcmd โ Valve SteamCMD โ โ โ โ steamcmd not found โ โ โ
โ vscode โ Visual Studio Code โ โ โ โ /opt/homebrew/bin/code โ โ โ โ 1.71.2 โ
โ yarn โ Yarn Classic โ โ โ โ /opt/homebrew/bin/yarn โ โ โ โ 1.22.19 โ
โ yarn-berry โ Yarn Berry โ โ โ โ /opt/homebrew/bin/yarn โ โ โ โ 1.22.19 โ
โ yay โ Arch Linux yay โ โ Linux only โ โ yay not found โ โ โ
โ yum โ Fedora YUM โ โ Linux only โ โ yum not found โ โ โ
โ zypper โ openSUSE Zypper โ โ Linux only โ โ zypper not found โ โ โ
โฐโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโฏ
If your favorite manager is not supported yet, you can help! See the contribution guide.
Used inยถ
Check these projects to get real-life examples of mpm usage:
Dotfiles - macOS dotfiles for Python developers, using
mpmto 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:
the list of use-cases where youโll find inspiration on how to leverage
mpmpower