Skip to content

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 · microdnf · 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:

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.

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:

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

618 stars

Watchers

11 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages