Unsupported managersΒΆ
mpm wraps a long list of package managers, but not everything that installs software.
Every tool that installs software belongs in one of exactly two places: the supported list, or the table below. There is no third state, and absence from both is a gap to be closed rather than a verdict of its own. The goal is total coverage: if it installs software and anyone has heard of it, mpm either wraps it or records here why it does not. A blank cell in the benchmark is therefore a to-do, not an answer.
That is a deliberate change of policy. Curating which tools were worth an opinion left readers unable to tell βwe looked and declinedβ apart from βnobody lookedβ, which are very different answers to the only question this page exists to settle.
Two reasons put a tool in the table below:
β οΈ Its upstream is dead.
β Or it lacks critical features required by
mpm.
A third marker rides alongside either of them:
π
topgradereaches it anyway, sompm upgrade --topgradestill upgrades it.mpmwrapstopgradeas the catch-all for tools too thin to earn a manager of their own, which is why most of this table is still upgradable without being wrapped.
Tool |
Status |
Kind |
Why? |
|---|---|---|---|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β οΈ π |
Zsh plugin manager |
Archived on 2022-05-27, superseded by |
|
β π |
VS Code fork, extension manager |
Google ships two separate products under the name: the Antigravity IDE, a VS Code fork that |
|
β π |
Self-updating application |
Updates only itself. There is no catalog, no inventory and no per-package operation to map: the whole surface is one command that replaces the binary in place. |
|
β π |
Dotfiles or repository syncer |
Synchronizes files and Git checkouts, not packages. There is no registry, no package identity and no version: what it tracks is the userβs own content, which is outside the system scope every |
|
β π |
System database refresher |
Rebuilds a local database from files already on disk. Nothing is fetched, installed or removed, and the database has no package identity to report. |
|
β π |
Container runtime |
Manages container images and running containers, not packages. An image is a filesystem bundle addressed by tag or digest rather than a versioned package, and pulling a newer tag is not an upgrade |
|
β π |
VS Code fork, extension manager |
A VS Code fork that did not inherit the CLI intact: |
|
β π |
Self-updating application |
Cursorβs command-line coding agent, whose whole maintenance surface is |
|
β |
Single-manager declarative wrapper |
Snapshots one already-installed manager at a time into an editable package list. No unique registry, no license, and its own multi-manager request has sat unaddressed since December 2025 (mantinhas/declaro#31). |
|
β |
Arch declarative system manager |
No operation verbs at all, flags only: every run reconciles the whole declared state. Its packages come from pacman and its own in-house AUR builder, both already |
|
β οΈ π |
Vim and Neovim plugin manager |
Development stopped, superseded by |
|
β π |
Self-updating application |
Updates only itself. There is no catalog, no inventory and no per-package operation to map: the whole surface is one command that replaces the binary in place. |
|
β π |
Container runtime |
Manages container images and running containers, not packages. An image is a filesystem bundle addressed by tag or digest rather than a versioned package, and pulling a newer tag is not an upgrade |
|
β |
Vim and Neovim plugin manager |
Live successor to |
|
β π |
Configuration file merger |
Merges pending |
|
β π |
Self-updating application |
Updates only itself. There is no catalog, no inventory and no per-package operation to map: the whole surface is one command that replaces the binary in place. |
|
β π |
Self-updating application |
Updates only itself. There is no catalog, no inventory and no per-package operation to map: the whole surface is one command that replaces the binary in place. |
|
β οΈ π |
Fish plugin manager |
No commit since 2023-01-05. |
|
β π |
Dotfiles or repository syncer |
Synchronizes files and Git checkouts, not packages. There is no registry, no package identity and no version: what it tracks is the userβs own content, which is outside the system scope every |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β π |
JetBrains IDE installer |
Ships no command-line interface at all: it is a tray application, and the only way to drive it non-interactively is the third-party |
|
β π |
JetBrains IDE plugins |
Plugins are driven through an undocumented |
|
β οΈ π |
FreeBSD jail runtime |
Self-described prototype, no commit since 2018-10-25. Not a package manager to begin with. |
|
β π |
System database refresher |
Rebuilds a local database from files already on disk. Nothing is fetched, installed or removed, and the database has no package identity to report. |
|
β π |
System database refresher |
Rebuilds a local database from files already on disk. Nothing is fetched, installed or removed, and the database has no package identity to report. |
|
β π |
Ad-blocking host list |
Rewrites the local hosts file from an upstream blocklist. A host list is data, not a package: there is nothing to enumerate, version or uninstall. |
|
β |
Declarative multi-backend package manager |
Delegates to 21 backends |
|
β π |
Vendor application updater |
Runs Microsoftβs own updater for one suite of applications. It has a fixed, single-vendor scope with no catalog to search and no packages to enumerate. |
|
β π |
Vendor application store |
Driven through a PowerShell call that triggers the Storeβs own bulk update. It exposes no per-package command line, so there is nothing to list, install or remove individually. Contrast |
|
β π |
Dotfiles or repository syncer |
Synchronizes files and Git checkouts, not packages. There is no registry, no package identity and no version: what it tracks is the userβs own content, which is outside the system scope every |
|
β οΈ π |
Vim plugin manager |
No commit since 2018-07-26, superseded by |
|
β οΈ |
Cross-manager wrapper |
Retired in 2022. All 19 of the package managers it drove are shipped by |
|
β οΈ π |
Arch meta package manager |
Archived on 2025-08-05, README pointing to |
|
β οΈ |
Arch AUR helper |
No commit since 2016-03-25. Superseded by the same AUR helpers as |
|
β οΈ π |
Neovim plugin manager |
README has declared it unmaintained since August 2023, pointing at |
|
β οΈ |
Vim plugin manager |
No commit since 2022-08-24. Its whole job, splicing plugin directories into |
|
β |
Neovim plugin manager |
Successor to |
|
β π |
DNS ad blocker |
Updates its own installation and blocklists. It manages a network service and its data, not packages on the host. |
|
β π |
Container runtime |
Manages container images and running containers, not packages. An image is a filesystem bundle addressed by tag or digest rather than a versioned package, and pulling a newer tag is not an upgrade |
|
β π |
Dotfiles or repository syncer |
Synchronizes files and Git checkouts, not packages. There is no registry, no package identity and no version: what it tracks is the userβs own content, which is outside the system scope every |
|
β π |
|
Not a tool: an internal step of |
|
β π |
Service restart helper |
|
|
β π |
|
Not a tool: an internal step of |
|
β οΈ |
Cross-manager wrapper |
No commit since 2016-10-27. An early cross-distribution package manager over the RPM and dpkg archives among others, chasing the same goal as |
|
β π |
Self-updating application |
Updates only itself. There is no catalog, no inventory and no per-package operation to map: the whole surface is one command that replaces the binary in place. |
|
β οΈ |
Cross-manager wrapper |
Retired in 2019. All 21 of the package managers it drove are shipped by |
|
β π |
|
Not a tool: an internal step of |
|
β π |
Man-page cache |
Refreshes a local cache of community-written command summaries. The pages are documentation, not packages: nothing is installed, versioned or removable. |
|
β π |
Container runtime |
Manages container images and running containers, not packages. An image is a filesystem bundle addressed by tag or digest rather than a versioned package, and pulling a newer tag is not an upgrade |
|
β π |
Self-updating application |
Updates only itself. There is no catalog, no inventory and no per-package operation to map: the whole surface is one command that replaces the binary in place. |
|
β |
Universal package-management syntax shim |
Translates one CLI vocabulary onto whichever single OS-level manager is detected, never more than one per invocation, by the maintainerβs own account: βupt is just aliases, nothing moreβ (sigoden/upt#60). |
|
β π |
Android container |
Runs an Android system in a container. It installs no packages of its own, and what runs inside it is out of reach of the hostβs package managers. |
|
β οΈ |
Cross-distribution search |
Retired in 2015. All 16 of the distribution archives it queried have a manager in |
|
β π |
VS Code fork, extension manager |
A VS Code fork whose vendor documents a launcher ( |
|
β π |
Windows Subsystem for Linux |
Updates the WSL kernel and its distributions. It is a platform, not a package manager: the managers that run inside a WSL distribution are the ones |
|
β π |
Windows Subsystem for Linux |
Updates the WSL kernel and its distributions. It is a platform, not a package manager: the managers that run inside a WSL distribution are the ones |
|
β π |
Dotfiles or repository syncer |
Synchronizes files and Git checkouts, not packages. There is no registry, no package identity and no version: what it tracks is the userβs own content, which is outside the system scope every |
|
β οΈ |
Arch AUR helper |
Archived, and self-described |
|
β π |
Zsh plugin manager |
Reports no version through any binary: its whole function set runs from |
|
β π |
Zsh plugin manager |
Owns no inventory to report: plugins are the arguments you hand it, so its whole |
Hint
None of these verdicts are permanent. If a tool here looks misjudged, make the case in a new manager request and the entry will be reassessed.
Project-scoped dependency managersΒΆ
Tools that resolve dependencies inside a working tree are out of scope today.
This is a big feature for the future, but is already delimited by the PROJECT concept, the discover_projects() extension point, and issue #1725.
mpm already covers the system-scoped part of these managers:
Ecosystem |
Project files |
|
|---|---|---|
C/C++ |
|
β |
Conda |
|
|
Go |
|
β |
Java |
|
β |
JavaScript |
|
|
.NET |
|
β |
Perl |
|
|
PHP |
|
|
Python |
|
|
Ruby |
|
|
Rust |
|
|
Swift and Objective-C |
|
β |