BenchmarkΒΆ

Attempting to unify all package managers is a Sisyphean task.

This did not prevent me or others to try to solve that problem. It is not easy to explain why but there might be a greater need for such tools out there. Here is a list of some related projects I stumbled into and how they compares to mpm.

FeaturesΒΆ

Feature

mpm

topgrade[1]

upt[2]

pacaptr[3]

metapac[4]

brew[5]

Package manager autodetection

βœ…

βœ…

βœ…

βœ…

❌

Unified CLI and options

βœ…

βœ…

βœ…

βœ…

βœ…

βœ…

Multi-PM execution

βœ…

βœ…

❌

❌

βœ…

βœ…

Concurrent multi-PM execution

βœ…

❌

❌

❌

❌

βœ…

Package manager priority

βœ…

βœ…

βœ…

❌

❌

Consolidated output

βœ…

❌

❌

❌

βœ…

Configurable output

βœ…

Sortable output

βœ…

Colored output

βœ…

βœ…

βœ…

βœ…

Accessible output

βœ…

Version parsing and diff

βœ…

❌

❌

βœ…

Skip auto-updating packages

βœ…

βœ…

purl support

βœ…

βœ…

Exact and fuzzy search

βœ…

βœ…

JSON export

βœ…

❌

βœ…

CSV export

βœ…

Markup export

βœ…

SBOM export

βœ…

Vulnerability scan

βœ…

Configuration file

βœ…

βœ…

βœ…

βœ…

βœ…

Per-manager overrides

βœ…

βœ…

βœ…

Non-interactive

βœ…

βœ…

βœ…

βœ…

βœ…

βœ…

Dry-run

βœ…

βœ…

βœ…

βœ…

❌

βœ…

Command plan

βœ…

βœ…

βœ…

Per-call timeout

βœ…

Offline by default

βœ…

Sudo elevation

βœ…

βœ…

❌

βœ…

βœ…

❌

Supply-chain cooldown

βœ…

❌

❌

Desktop notifications

βœ…

Bash auto-completion

βœ…

βœ…

❌

βœ…

βœ…

Zsh auto-completion

βœ…

βœ…

❌

βœ…

βœ…

Fish auto-completion

βœ…

βœ…

❌

βœ…

βœ…

Man pages

βœ…

βœ…

XKCD #1654

βœ…

❌

βœ…

GNOME Shell extension

βœ…

Xbar/SwiftBar plugin

βœ…

Apply manifest (declarative install)

βœ…

βœ…

βœ…

Backend-prefixed package IDs

βœ…

OperationsΒΆ

Every cell links to its evidence: a βœ… to the documentation, CLI declaration or source line implementing the operation, a 🟑 to the proof the capability only exists bundled inside another one, and a ❌ to the upstream statement of scope ruling it out. A blank cell means no citable source was found either way.

Operation

mpm

topgrade[1]

upt[2]

pacaptr[3]

metapac[4]

brew[5]

List available managers

βœ…

❌

❌

❌

βœ…

List installed packages

βœ…

❌

βœ…

βœ…

❌

βœ…

List duplicate packages

βœ…

❌

❌

❌

❌

List outdated packages

βœ…

❌

❌

βœ…

❌

βœ…

List orphaned dependencies

βœ…

❌

❌

❌

❌

βœ…

Search packages

βœ…

❌

βœ…

βœ…

❌

βœ…

Locate binaries (which command)

βœ…

❌

❌

βœ…

❌

βœ…

Install a package

βœ…

❌

βœ…

βœ…

❌

βœ…

Remove / Uninstall a package

βœ…

❌

βœ…

βœ…

❌

βœ…

Remove a package with its orphans

βœ…

❌

βœ…

βœ…

❌

Upgrade single package

βœ…

❌

βœ…

βœ…

βœ…

βœ…

Upgrade all packages

βœ…

βœ…

βœ…

βœ…

βœ…

βœ…

Sync

βœ…

🟑

βœ…

βœ…

βœ…

βœ…

Cleanup: caches

βœ…

🟑

❌

βœ…

βœ…

βœ…

Cleanup: orphans

βœ…

🟑

❌

🟑

🟑

βœ…

Backup / Lock / Freeze

βœ…

❌

❌

❌

❌

βœ…

Restore

βœ…

❌

❌

❌

βœ…

βœ…

List explicitly installed packages (leaves)

❌

❌

βœ…

βœ…

βœ…

Pin / Unpin version

❌

❌

❌

❌

βœ…

Doctor / diagnostics

βœ…

❌

❌

❌

❌

βœ…

Services management

❌

❌

❌

❌

βœ…

mpm’s SBOM export sits in a different category from the package-manager front-ends benchmarked here. It is compared against dedicated SBOM and software-composition-analysis tools (Syft, Trivy, cdxgen, component-detection) in the SBOM documentation.

Package manager supportΒΆ

brew is itself a meta-manager: brew bundle dispatches to other package managers (cask, mas, VSCode extensions, taps, and more) via the Brewfile DSL, which is why it earns a column alongside the dedicated wrappers in the tables above. The table below marks which managers each competing tool reaches natively, so the overlap with mpm is visible at a glance. It deliberately lists managers no tool here wraps yet: a row a competitor reaches and mpm does not is the point of the table, not an omission.

The mpm column reads as a scale. βœ… and ⚠️ link to the class that implements the manager, the second meaning it is still wrapped and usable but its upstream is gone. ☠️ and ❌ link instead to the recorded decision not to wrap it at all: the skull for a tool whose upstream is retired, the cross for a live one declined on its own merits. A blank cell is none of these β€” nobody has assessed that tool yet, and it is very likely available for the writing.

Manager

mpm

topgrade[1]

upt[2]

pacaptr[3]

metapac[4]

0install

am

βœ…

android-studio

❌ πŸ›Ÿ

βœ…

antibody

☠️ πŸ›Ÿ

🟑

antidote

βœ…

🟑

antigen

βœ…

🟑

antigravity

❌ πŸ›Ÿ

βœ…

apk

βœ…

βœ…

βœ…

βœ…

apm

⚠️

βœ…

app-man

βœ…

apt

βœ…

βœ…

βœ…

βœ…

βœ…

apt-cyg

⚠️

apt-mint

βœ…

aqua

βœ…

asdf

βœ…

βœ…

atuin

❌ πŸ›Ÿ

βœ…

aura

βœ…

auto-cpufreq

βœ…

bash-it

🟑

bin

βœ…

bob

βœ…

brew

βœ…

βœ…

βœ…

βœ…

βœ…

bun

βœ…

βœ…

cabal

❌

cards

βœ…

cargo

βœ…

βœ…

βœ…

cask

βœ…

βœ…

βœ…

cave

βœ…

certbot

βœ…

chezmoi

❌ πŸ›Ÿ

βœ…

choco

βœ…

βœ…

βœ…

βœ…

choosenim

βœ…

chromebrew

βœ…

cinnamon-spices

βœ…

clam-av-db

❌ πŸ›Ÿ

βœ…

claude-code

βœ…

claude-code-plugins

βœ…

codex

βœ…

colima

βœ…

composer

βœ…

βœ…

conda

βœ…

βœ…

βœ…

containers

❌ πŸ›Ÿ

βœ…

cpan

βœ…

cursor

❌ πŸ›Ÿ

βœ…

cursor-agent

❌ πŸ›Ÿ

βœ…

deb-get

βœ…

βœ…

declaro

❌

decman

❌

dein

☠️ πŸ›Ÿ

🟑

deno

❌ πŸ›Ÿ

βœ…

distrobox

❌ πŸ›Ÿ

βœ…

dkp-pacman

βœ…

βœ…

dnf

βœ…

βœ…

βœ…

βœ…

βœ…

dnf5

βœ…

dotnet

βœ…

dpp

❌

elan

βœ…

emacs

βœ…

emerge

βœ…

βœ…

βœ…

βœ…

eopkg

βœ…

βœ…

βœ…

etc-update

❌ πŸ›Ÿ

βœ…

falconf

βœ…

fink

βœ…

fish-plug

🟑

fisher

βœ…

🟑

flatpak

βœ…

βœ…

βœ…

βœ…

flutter

❌ πŸ›Ÿ

βœ…

fossil

❌ πŸ›Ÿ

βœ…

fundle

☠️ πŸ›Ÿ

🟑

fwupd

βœ…

βœ…

gcloud

βœ…

gearlever

βœ…

gem

βœ…

βœ…

getnf

βœ…

gh-ext

βœ…

βœ…

ghcup

βœ…

git

❌ πŸ›Ÿ

βœ…

gnome-shell

βœ…

go

βœ…

guix

βœ…

βœ…

βœ…

haxelib

βœ…

helix

βœ…

helix-db

βœ…

helm

βœ…

home-manager

βœ…

hyprpm

βœ…

install-release

βœ…

jetbrains-aqua

❌ πŸ›Ÿ

βœ…

jetbrains-clion

❌ πŸ›Ÿ

βœ…

jetbrains-datagrip

❌ πŸ›Ÿ

βœ…

jetbrains-dataspell

❌ πŸ›Ÿ

βœ…

jetbrains-gateway

❌ πŸ›Ÿ

βœ…

jetbrains-goland

❌ πŸ›Ÿ

βœ…

jetbrains-idea

❌ πŸ›Ÿ

βœ…

jetbrains-mps

❌ πŸ›Ÿ

βœ…

jetbrains-phpstorm

❌ πŸ›Ÿ

βœ…

jetbrains-pycharm

❌ πŸ›Ÿ

βœ…

jetbrains-rider

❌ πŸ›Ÿ

βœ…

jetbrains-rubymine

❌ πŸ›Ÿ

βœ…

jetbrains-rustrover

❌ πŸ›Ÿ

βœ…

jetbrains-toolbox

❌ πŸ›Ÿ

βœ…

jetbrains-webstorm

❌ πŸ›Ÿ

βœ…

jetpack

☠️ πŸ›Ÿ

βœ…

julia

βœ…

juliaup

βœ…

kakoune

βœ…

krew

βœ…

βœ…

lazy

βœ…

🟑

lensfun

❌ πŸ›Ÿ

βœ…

lure

βœ…

macos

βœ…

macports

βœ…

βœ…

βœ…

mamba

βœ…

mandb

❌ πŸ›Ÿ

βœ…

mas

βœ…

βœ…

βœ…

mason

🟑

maza

❌ πŸ›Ÿ

βœ…

metapac

❌

micro

βœ…

microsoft-office

❌ πŸ›Ÿ

βœ…

microsoft-store

❌ πŸ›Ÿ

βœ…

miktex

βœ…

mise

βœ…

βœ…

βœ…

myrepos

❌ πŸ›Ÿ

βœ…

nala

βœ…

βœ…

neobundle

☠️ πŸ›Ÿ

🟑

nix

βœ…

βœ…

βœ…

βœ…

npm

βœ…

βœ…

βœ…

oh-my-bash

🟑

oh-my-fish

βœ…

🟑

oh-my-zsh

🟑

ollama

βœ…

opam

βœ…

βœ…

opencode

βœ…

opkg

βœ…

βœ…

pacapt

☠️

pacaur

⚠️

pacdef

☠️ πŸ›Ÿ

βœ…

packer-aur

☠️

packer-nvim

☠️ πŸ›Ÿ

🟑

pacman

βœ…

βœ…

βœ…

βœ…

pacstall

βœ…

βœ…

pamac

βœ…

βœ…

paq

🟑

paru

βœ…

βœ…

βœ…

pathogen

☠️

pckr-nvim

❌

pearl

βœ…

pi

βœ…

pihole

❌ πŸ›Ÿ

βœ…

pikaur

βœ…

βœ…

βœ…

pip

βœ…

βœ…

βœ…

pip-review

βœ…

pipupgrade

βœ…

pipx

βœ…

βœ…

βœ…

pipxu

βœ…

pixi

βœ…

pkcon

βœ…

βœ…

pkg

βœ…

βœ…

βœ…

pkg-termux

βœ…

pkg-tools

βœ…

pkgfile

βœ…

pkgin

βœ…

βœ…

pkgit

βœ…

pkgman

βœ…

platformio-core

βœ…

plug

🟑

pnpm

βœ…

βœ…

βœ…

podman

❌ πŸ›Ÿ

βœ…

poetry

βœ…

ports

βœ…

protonplus

βœ…

protonup

βœ…

prt-get

βœ…

pwsh-gallery

βœ…

βœ…

pyenv

βœ…

raco

βœ…

rcm

❌ πŸ›Ÿ

βœ…

remotes

❌ πŸ›Ÿ

βœ…

restarts

❌ πŸ›Ÿ

βœ…

rtcl

❌ πŸ›Ÿ

βœ…

rustup

βœ…

rye

βœ…

scoop

βœ…

βœ…

βœ…

βœ…

βœ…

sdkman

βœ…

βœ…

sera

βœ…

sfsu

βœ…

sheldon

βœ…

βœ…

skills

βœ…

slackpkg

βœ…

slapt-get

βœ…

smart

☠️

snap

βœ…

βœ…

βœ…

βœ…

soar

βœ…

βœ…

sorcery

βœ…

spack

sparkle

βœ…

spicetify

❌ πŸ›Ÿ

βœ…

stack

βœ…

steamcmd

βœ…

stew

βœ…

βœ…

sun-tools

βœ…

swupd

⚠️

sysget

☠️

system

❌ πŸ›Ÿ

βœ…

tazpkg

βœ…

tldr

❌ πŸ›Ÿ

βœ…

tlmgr

βœ…

βœ…

βœ…

tmux

βœ…

toolbx

❌ πŸ›Ÿ

βœ…

topgrade

βœ…

βœ…

tpack

βœ…

trizen

βœ…

βœ…

typst

❌ πŸ›Ÿ

βœ…

upt

❌

urpmi

βœ…

βœ…

uv

βœ…

βœ…

βœ…

uvx

βœ…

vagrant

βœ…

vcpkg

βœ…

vim

βœ…

vim-pack

βœ…

🟑

vite-plus

βœ…

volta

⚠️

βœ…

voom

🟑

vscode

βœ…

βœ…

βœ…

vscodium

βœ…

βœ…

βœ…

vundle

🟑

waydroid

❌ πŸ›Ÿ

βœ…

whohas

☠️

windsurf

❌ πŸ›Ÿ

βœ…

winget

βœ…

βœ…

βœ…

βœ…

βœ…

wsl

❌ πŸ›Ÿ

βœ…

wsl-update

❌ πŸ›Ÿ

βœ…

xbps

βœ…

βœ…

βœ…

βœ…

βœ…

xcodes

βœ…

yadm

❌ πŸ›Ÿ

βœ…

yaourt

☠️

yarn

βœ…

βœ…

βœ…

yarn-berry

βœ…

βœ…

yay

βœ…

βœ…

βœ…

βœ…

yazi

βœ…

yt-dlp

❌

yum

βœ…

βœ…

βœ…

zerobrew

βœ…

βœ…

zgenom

❌ πŸ›Ÿ

🟑

zigup

βœ…

zim

βœ…

🟑

zinit

βœ…

🟑

zplug

βœ…

🟑

zr

❌ πŸ›Ÿ

🟑

zvm

βœ…

zypper

βœ…

βœ…

βœ…

βœ…

βœ…

Operating system supportΒΆ

OS

mpm

topgrade[1]

upt[2]

pacaptr[3]

metapac[4]

brew[5]

BSD

πŸ…±οΈ[6]

πŸ…±οΈ

Linux

🐧[7]

🐧

🐧

🐧

🐧

🐧

macOS

🍎

🍎

🍎

🍎

🍎

🍎

Unix

⨂[8]

Windows

πŸͺŸ

πŸͺŸ

πŸͺŸ

πŸͺŸ

πŸͺŸ

DistributionΒΆ

Package manager

mpm

topgrade[1]

upt[2]

pacaptr[3]

metapac[4]

brew[5]

Versions

Packaging status

Packaging status

Packaging status

Packaging status

Packaging status

GitHub

GitHub release (latest by SemVer)

GitHub release (latest by SemVer)

GitHub release (latest by SemVer)

GitHub release (latest by SemVer)

-

macOS binary

βœ… (x86_64, aarch64)

βœ… (x86_64)

βœ… (x86_64, aarch64)

βœ…(x86_64, aarch64, universal)

Linux binary

βœ… (x86_64, aarch64)

βœ… (x86_64, aarch64, armv7)

βœ… (x86_64, aarch64, i686)

βœ… (x86_64)

Windows binary

βœ… (x86_64, aarch64)

βœ… (x86_64)

βœ… (x86_64, aarch64, i686)

βœ… (x86_64)

Homebrew

homebrew downloads

homebrew downloads

βœ…

-

Chocolatey

Chocolatey

Crates.io

Crates.io

Crates.io

Crates.io

Crates.io

PyPI

PyPI - Downloads

AUR votes

AUR

AUR

AUR

AUR

ActivityΒΆ

Metrics

mpm

topgrade[1]

upt[2]

pacaptr[3]

metapac[4]

brew[5]

Watchers

GitHub

GitHub

GitHub

GitHub

GitHub

GitHub

Contributors

GitHub

GitHub

GitHub

GitHub

GitHub

GitHub

Commit activity

GitHub

GitHub

GitHub

GitHub

GitHub

GitHub

Commits since latest release

GitHub

GitHub

GitHub

GitHub

GitHub

GitHub

Last release date

GitHub

GitHub

GitHub

GitHub

GitHub

GitHub

Last commit

GitHub

GitHub

GitHub

GitHub

GitHub

GitHub

Open issues

GitHub

GitHub

GitHub

GitHub

GitHub

GitHub

Open PRs

GitHub

GitHub

GitHub

GitHub

GitHub

GitHub

Forks

GitHub

GitHub

GitHub

GitHub

GitHub

GitHub

Dependencies freshness

Libraries.io dependency status for latest release

Libraries.io dependency status for latest release

Libraries.io dependency status for latest release

Libraries.io dependency status for latest release

Libraries.io dependency status for latest release

-

PopularityΒΆ

Star History Chart

Metrics

mpm

topgrade[1]

upt[2]

pacaptr[3]

metapac[4]

brew[5]

Stars

GitHub

GitHub

GitHub

GitHub

GitHub

GitHub

SourceRank

Libraries.io SourceRank

Libraries.io SourceRank

Libraries.io SourceRank

Libraries.io SourceRank

Libraries.io SourceRank

-

Dependent repos

Dependent repos (via libraries.io)

Dependent repos (via libraries.io)

Dependent repos (via libraries.io)

Dependent repos (via libraries.io)

Dependent repos (via libraries.io)

-

MetadataΒΆ

Metadata

mpm

topgrade[1]

upt[2]

pacaptr[3]

metapac[4]

brew[5]

License

GitHub

GitHub

GitHub

GitHub

GitHub

GitHub

Main language

GitHub

GitHub

GitHub

GitHub

GitHub

GitHub

Latest version

GitHub release (latest SemVer)

GitHub release (latest SemVer)

GitHub release (latest SemVer)

GitHub release (latest SemVer)

GitHub release (latest SemVer)

GitHub release (latest SemVer)

Version benchmarked

7.4.1

17.8.0

0.9.0

0.23.1

0.10.1

6.0.12

Benchmark date

2026-07

2026-07

2026-08

2026-07

2026-08

2026-07

Coming from pacapt, sysget or whohas?

mpm’s three closest peers are all retired. See unsupported managers for what happened to each and how their backend coverage maps onto mpm.

Project’s URLΒΆ