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

Featuresยถ

Supported package managersยถ

One CLI to rule them all.

mpm runs them concurrently unless they share the same backend.

amย ยท antidoteย ยท antigenย ยท apkย ยท apmย ยท aptย ยท apt-cygย ยท apt-mintย ยท aptitudeย ยท asdfย ยท auraย ยท basaltย ยท binย ยท bobย ยท bpkgย ยท brewย ยท bunย ยท cargoย ยท caskย ยท caveย ยท chocoย ยท choosenimย ยท chromebrewย ยท claude-code-pluginsย ยท clibย ยท composerย ยท condaย ยท cpanย ยท deb-getย ยท dkp-pacmanย ยท dnfย ยท dnf5ย ยท dotnetย ยท elanย ยท emacsย ยท emergeย ยท eopkgย ยท finkย ยท fisherย ยท flatpakย ยท fwupdย ยท gcloudย ยท gemย ยท getnfย ยท gextย ยท gh-extย ยท ghcupย ยท goย ยท guixย ยท gupย ยท haxelibย ยท hyprpmย ยท ipsย ยท jpmย ยท juliaย ยท juliaupย ยท krewย ยท lazyย ยท luarocksย ยท lureย ยท macportsย ยท mambaย ยท masย ยท masonย ยท microย ยท micromambaย ยท miktexย ยท miseย ยท nalaย ยท nimbleย ยท nixย ยท npmย ยท oh-my-fishย ยท ollamaย ยท opamย ยท opkgย ยท pacaurย ยท pacmanย ยท pacstallย ยท pamacย ยท paruย ยท pearย ยท pearlย ยท piย ยท pikaurย ยท pipย ยท pipxย ยท pipxuย ยท pixiย ยท pkconย ยท pkgย ยท pkg-toolsย ยท pkginย ยท pkgitย ยท pkgmย ยท platformio-coreย ยท pnpmย ยท portsย ยท prt-getย ยท pwsh-galleryย ยท pyenvย ยท racoย ยท roswellย ยท rustupย ยท scoopย ยท sdkmanย ยท sfsuย ยท sheldonย ยท shellyย ยท skillsย ยท slapt-getย ยท snapย ยท soarย ยท sorceryย ยท spackย ยท steamcmdย ยท stewย ยท sun-toolsย ยท swupdย ยท tazpkgย ยท tlmgrย ยท topgradeย ยท trizenย ยท urpmiย ยท uvย ยท uvxย ยท vagrantย ยท vcpkgย ยท vim-packย ยท voltaย ยท vscodeย ยท vscodiumย ยท wingetย ยท xbpsย ยท xcodesย ยท yarnย ยท yarn-berryย ยท yayย ยท yaziย ยท yumย ยท zefย ยท zerobrewย ยท zeroinstallย ยท zimย ยท zinitย ยท zplugย ยท zvmย ยท zypper

mpm also reuses topgrade when present on the system to extend its mpm upgrade --all operation to extra runtimes, shell plugins and OS updaters. Other unsupported managers are catalogued in the docs.

Installationยถ

All installation methods are available in the documentation.

uvยถ

mpm is distributed on PyPI, so uv installs it on Linux, macOS and Windows alike:

$ uv tool install meta-package-manager

To try mpm without installing anything, run uvx meta-package-manager instead.

Homebrewยถ

mpm is part of the official Homebrew default tap, bottled for macOS and Linux, so you can install it with:

$ brew install meta-package-manager

MacPortsยถ

mpm is also available on MacPorts:

$ sudo port install meta-package-manager

Scoopยถ

mpm is available in the main repository of Scoop, so on Windows 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:

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

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: