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 this page. 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 sections below, and the section title carries the verdict:
β οΈ 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 page is still upgradable without being wrapped.
One section per tool, except where several share a verdict word for word: those are grouped under the family they belong to, which names its members up front. Each section is an anchor, so a decision can be cited from anywhere in the documentation, the code or an issue: https://mpm.run/unsupported/#paq.
Hint
None of these verdicts are permanent. Each section closes on the mpm release that first published its verdict, so an old one rests on an older reading of the tool. If a tool here looks misjudged, make the case in a new manager request and the entry will be reassessed.
antibody β οΈ πΒΆ
Zsh plugin manager, archived on 2022-05-27 and superseded by antidote, which mpm wraps.
Declined in 7.6.0 (2026-08-10).
antigravity β πΒΆ
Google ships two separate products under the name: the Antigravity IDE, a VS Code fork that topgrade drives with --update-extensions, and the Antigravity CLI (agy), whose plugin subcommands manage an unrelated set. The IDEβs extension flags are documented nowhere, so the row topgrade covers has no contract to build on. The agy plugin list/install/uninstall surface is a different tool and would be its own candidate.
Declined in 8.0.0 (unreleased).
app-man β πΒΆ
The same AppImage manager as am, which mpm wraps, under a second name. Its repository carries no implementation at all, only a stub that replaces its own contents with AMβs and re-executes it: βSince version 5, βAppManβ and βAMβ have been meged to share the same codeβ. The script then reads the path it was invoked through to decide whether to install system-wide or under the userβs home, which is the entire difference between the two. Wrapping it would also double-count, since am -fi already lists AppManβs applications in a table of their own.
Declined in 8.0.0 (unreleased).
apt-rpm β οΈΒΆ
APT ported onto RPM, and its last release is 0.5.15lorg3.2 from 2006-06-22. Its original maintainer had stepped away a year before that, announcing in March 2005 βthat he would not continue developing it and that he would instead focus on Smart Package Manager, which was planned as a successor to APT-RPMβ. That successor is on this page too, as smart, and it is retired as well.
Declined in 8.0.0 (unreleased).
auto-cpufreq β πΒΆ
A CPU speed and power optimizer for Linux, running as a daemon that switches governors and turbo boost according to load and battery state. topgrade updates it in place, which is what puts it in the benchmark, but it installs nothing and owns nothing installable: what it manages is a kernel tuning policy, which has no name, no version and no catalog to draw from.
Declined in 8.0.0 (unreleased).
autopackage β οΈΒΆ
Cross-distribution installer for Linux binaries, and there is nothing left to drive. Its last stable release is 1.4.2 from 2009-05-24, and in August 2010 βListaller and Autopackage announced that the projects will mergeβ, a successor that no longer ships either. Its own site survives through the Wayback Machine alone.
Declined in 8.0.0 (unreleased).
bash-it β πΒΆ
Bash configuration framework shipping no registry of its own: its plugins, aliases and completions all live inside the single git checkout under plugins/available, aliases/available and completion/available, so bash-it enable plugin git only symlinks a file the clone already put on disk and bash-it disable removes that symlink again. Nothing is fetched and nothing carries a version of its own: bash-it update runs git fetch and checks out a tag or master across the whole tree, a mechanism its maintainer describes as βwe assume we cloned the project, and we run git fetch and things like thatβ (Bash-it/bash-it#1819).
Declined in 8.0.0 (unreleased).
basher βΒΆ
Package manager for shell scripts, and on the verbs alone the most complete candidate on this page: list, outdated, upgrade, install and uninstall are all native, so even the staleness read would have needed no synthesis.
It reports no version by any route, which is what settles it. None of the eleven commands it exposes is a version, no version constant appears anywhere in its source, and upstream publishes neither tags nor releases, so nothing on disk or in the repository names one. That is zgenomβs verdict exactly. Nothing on its tracker asks for a version either, so this rests on the observed behaviour rather than on an upstream position, and a release scheme would reopen it.
Declined in 8.0.0 (unreleased).
bpm β οΈΒΆ
Bash package manager, abandoned: 28 commits in all and nothing since 2021-07-25. Little would have been left to wrap in any case, its whole verb surface being install and run, with no listing, no removal and no upgrade, and its readme conceding it carries no versioning at all, which it blames on Bash having no namespacing.
Declined in 8.0.0 (unreleased).
canopy β οΈΒΆ
Enthoughtβs scientific Python distribution and the package manager inside it. Its newest release note is βRelease notes for Canopy 2.1.9 (23 April 2018)β, and the documentation index publishes nothing past that 2.1 line. Eight years without a release is well past the silence the stability policy reads as abandonment.
Declined in 8.0.0 (unreleased).
certbot β πΒΆ
The EFFβs ACME client, obtaining and renewing TLS certificates. topgrade runs certbot renew beside its package steps, which is what lands it in this table, but a certificate is not a package: it is issued against a domain the host proves it controls, expires on a schedule of its own, and comes from no catalog anyone can enumerate. Nothing here can be listed, searched, installed by name or removed.
Declined in 8.0.0 (unreleased).
cinnamon-spices β πΒΆ
What topgrade drives here is cinnamon-spice-updater --update-all, and that scriptβs own argparse block is the whole surface: --update-all, --update <spice-type>, --list-simple <spice-type> and --list-json <spice-type>, where a spice-type is one of applet, desklet, extension or theme.
Nothing there is a package operation. There is no install and no removal, both of which happen in Cinnamonβs own settings UI. The two listings are not an inventory either: --list-simple is documented as a βSimple list of UUIDs (or theme names) with available updatesβ and both call get_updates_of_type, so they report what is stale rather than what is present, which leaves mpm no way to enumerate the machine. And the one mutating option takes a type, never a spice, so no individual applet can be updated by name. No --version is declared either, which disqualifies it a second time over. The zr reading.
Declined in 8.0.0 (unreleased).
component β οΈΒΆ
Front-end package manager and build tool for modular web applications, archived on GitHub with a last push of 2017-12-16. It installed into the working tree rather than onto the machine, so it would have landed among the project-scoped ecosystems below even while alive.
Declined in 8.0.0 (unreleased).
Container runtimes β πΒΆ
colima, containers, distrobox, podman and toolbx.
Manage 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 mpm can reason about.
Declined in 8.0.0 (unreleased).
cursor β πΒΆ
A VS Code fork that did not inherit the CLI intact: --list-extensions launches the Cursor window instead of listing anything (forum.cursor.com, where a moderator grants βthis is not expected behaviorβ and the thread closes with no fix). Silently opening a GUI where a listing was asked for is worse than an error, since nothing signals the failure. Cursorβs own CLI documentation covers the separate cursor-agent binary and never documents the extension flags at all, so there is no contract to build on. Contrast vscode, whose --list-extensions --show-versions is documented and stable.
Declined in 8.0.0 (unreleased).
cydia β οΈΒΆ
Package front-end for jailbroken iOS, described by Wikipedia as βa graphical user interface of APT for iOSβ. Its last release is 1.1.36 from 2020-06-24 and its store closed on 2018-12-16. Dormancy is not the only objection: the APT it drives runs on a phone rather than on the host, which is the scope that declined fdroidcl.
Declined in 8.0.0 (unreleased).
declaro βΒΆ
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).
Declined in 8.0.0 (unreleased).
decman βΒΆ
Arch declarative system manager with 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 mpm territory. Also manages dotfiles, systemd units, users and PGP keys, outside the system scope every mpm manager holds to.
Declined in 8.0.0 (unreleased).
dein β οΈ πΒΆ
Vim and Neovim plugin manager whose development stopped, superseded by dpp, last commit on 2025-09-13. Pure Vimscript, so it also exposes neither a binary to run nor a version to report.
Declined in 7.6.0 (2026-08-10).
Dotfiles and repository syncers β πΒΆ
chezmoi, falconf, git, myrepos, rcm and yadm.
Synchronize files and Git checkouts, not packages. There is no registry, no package identity and no version: what they track is the userβs own content, which is outside the system scope every mpm manager holds to.
Declined in 8.0.0 (unreleased).
dpp βΒΆ
Vim and Neovim plugin manager, the live successor to dein, but drivable only from inside the editor: its work happens in a Deno process (denops.vim) that Vim starts, and it documents no headless entry point. It reports no version and ships no binary of its own either, so it fails the same two requirements dein does, with nothing left to key the manager on.
Declined in 8.0.0 (unreleased).
entropy β οΈΒΆ
Sabayon Linuxβs own binary package manager, last pushed 2020-09-07. Six years of silence is twice the span the stability policy reads as abandonment, and no fork has picked it up.
Declined in 8.0.0 (unreleased).
etc-update β πΒΆ
Merges pending /etc configuration files left behind by a Portage upgrade. It resolves conflicts, installs nothing, and is already covered by emerge, which mpm wraps.
Declined in 8.0.0 (unreleased).
fdroidcl βΒΆ
Everything but the target reads like a candidate. The F-Droid repository is a real registry nothing else in the pool reaches, fdroidcl version answers v0.8.1, and update, search, scan, install and uninstall are all native. Scope is the whole of the objection, and it is helmβs objection pointed at a different remote.
fdroidcl installs nothing onto the machine: it drives another computerβs package manager over adb. scan shells out to pm list packages on each connected device, and install pushes an APK to one. The two do not even agree on their target. scan iterates over every device plugged in, while install calls oneDevice() and fails unless ANDROID_SERIAL or a single connection settles which one. So the inventory describes a set of guest machines, changes with what is attached, and is empty where nothing is, none of which the system scope every mpm manager holds to can express. The line is not that attached hardware is out of bounds, since fwupd is wrapped and treats each updatable device as a package: its firmware belongs to this machineβs own stack, where an Android phone is a separate computer running its own operating system and its own package manager.
Declined in 8.0.0 (unreleased).
fish-plug β πΒΆ
Fish plugin manager owning no verb that names a plugin, which its own source settles rather than any behaviour that has to be run: the whole tool is three files and, as its readme puts it, β< 100 lines of code you can actually read and understandβ. Plugins are whatever the $plugins variable lists in the userβs config.fish, and installation is a side effect of starting a shell, conf.d/plugin_load.fish cloning any entry whose directory is missing. functions/plugin_update.fish takes no argument and pulls every entry of that same list; functions/plugin_uninstall.fish takes none either, sweeping the directories the list no longer names and asking "$plugin_name is disabled, uninstall? (y/N)" for each, so removal cannot be driven with nobody at the keyboard. There is no listing.
It reports no version either, by any route: upstream publishes zero tags and zero releases, carries no version constant, and its documented install clones a branch, so nothing on disk names one. That is zgenomβs verdict, reached independently. The project renamed itself to plug.fish and rewrote at v3, which is the version driven here.
Declined in 8.0.0 (unreleased).
fpm βΒΆ
Builds packages instead of managing them, which leaves nothing for mpm to address. It converts a directory, a gem or a Python distribution into a .deb, an .rpm or a .pkg for some other manager to install, so it owns no inventory, installs nothing on its own and removes nothing. The managers that consume what it produces are wrapped already. Alive and busy, pushed 2026-08-26.
Declined in 8.0.0 (unreleased).
fresh βΒΆ
Describes itself as βBundler for your dot filesβ: it sources shell configuration (aliases, functions, snippets) out of other peopleβs Git repositories and splices it into the userβs own config, then symlinks the result. That is the verdict chezmoi and its peers already carry, and it earns a section of its own only because topgrade does not reach it, so it cannot sit under a title promising that fallback. Its search queries a community wiki rather than a registry, nothing it tracks carries a version of its own, and what it manages is the userβs content, outside the system scope every mpm manager holds to.
Declined in 8.0.0 (unreleased).
fundle β οΈ πΒΆ
Fish plugin manager with no commit since 2023-01-05.
Declined in 7.6.0 (2026-08-10).
gearlever β πΒΆ
Painfully close, and it fails on the version alone. Gear Lever manages the AppImages on a machine and its command line is better shaped than most of this page: list-installed enumerates the integrated apps, list-updates reports the stale ones, both take a --json flag emitting a document with a schema_version and per-app current_version and available_version fields, and remove, update and integrate all act on one app.
None of that is reachable, because nothing reports Gear Leverβs own version. Its Cli.options table declares integrate, update, remove, remove-all, list-installed, list-updates, list-update-managers, set-update-url, set-update-source and a background fetch, and no version among them. The failure mode is the aggravating part: Cli.from_options returns -1 for an option it does not know, after which main() falls through to GearleverApplication(...).run(sys.argv), so a version probe does not fail, it launches the GTK window. That is cursorβs verdict, where opening a GUI in place of an answer is worse than an error because nothing signals it, layered on zgenomβs. A --version upstream would reopen this immediately.
Declined in 8.0.0 (unreleased).
go-global-update β πΒΆ
Updates the binaries go install put on the machine, and that is the whole of it. A bare run upgrades every one, naming binaries upgrades those, and --dry-run simulates the same thing; there is no listing, no install and no removal anywhere in its surface. That leaves an upgrade as its only honest operation, which is the zr reading, and topgrade already reaches it inside the same Go step that runs gup. Every binary it touches is one gup lists, reports stale, removes and upgrades one at a time, so wrapping it would add a second route to a subset of what gup already does. Alive but slowing, last pushed 2024-09-13.
Declined in 8.0.0 (unreleased).
gofish β οΈΒΆ
Cross-platform package manager modelled on Homebrew, down to a registry of its own: βfish foodβ recipes hosted at fishworks/fish-food. Its readme announces the end in as many words, βTHIS PROJECT IS BEING ARCHIVEDβ, blaming βthe amount of time and money required to maintain this side projectβ, and no commit has landed since 2022-03-08. The repository is archived and names no successor.
Declined in 8.0.0 (unreleased).
gopm β οΈΒΆ
Go package manager and build tool, archived on GitHub with a last push of 2019-07-29. Go modules absorbed the job, and the toolchain that resolves them is wrapped as go.
Declined in 8.0.0 (unreleased).
helix β πΒΆ
Editor whose whole package-adjacent surface is one flag, -g, --grammar {fetch|build}, and it takes no package argument: both modes act on every tree-sitter grammar listed in languages.toml at once, so there is no install, remove or upgrade of a single grammar to declare. Nothing reports an inventory either. hx --health languages prints a capability matrix over the languages helix ships configuration for, three hundred rows of β and β across the language server, debug adapter, formatter, highlight, textobject and indent columns, truncated to the terminal width and carrying no version anywhere; it answers what helix knows about rather than what the host holds. The grammars are not a registry of helixβs own, each being a git repository pinned by revision in that same configuration file. That leaves an all-or-nothing refresh as the only real operation, which is exactly what topgrade already runs, so mpm upgrade --topgrade reaches it without mpm learning the editor. The zr reading. Checked against helix 25.07.1.
Declined in 8.0.0 (unreleased).
helm β πΒΆ
Everything about Helm reads like a candidate: chart repositories that are real registries, and list, search, install, upgrade and uninstall all native. Scope is the whole of the objection, and it is decisive.
Helm does not install onto the machine. Installing a chart βcreates a new release objectβ inside a Kubernetes cluster, and helm list enumerates the releases of whichever cluster the current context points at. That inventory therefore describes a cluster rather than a host, changes with kubectl config use-context, and is empty or unreachable where no cluster is configured at all, none of which the system scope every mpm manager holds to can express.
The line is not that Kubernetes is out of bounds: krew is wrapped, and installs kubectl plugins as binaries under the userβs own home. The object is what differs, a local binary against a remote deployment.
Declined in 8.0.0 (unreleased).
home-manager β πΒΆ
Draws its packages from nixpkgs, the registry mpm already reaches through nix: the manual states that βNixpkgs packages can be installed to the user profile using home.packagesβ, an option typed list of package. No per-package verb either, its command dispatch accepting only whole-state operations like build, switch and generations, so a package is added by editing home.nix and running home-manager switch. It does report what it installed, through home-manager packages, but that inventory is a view onto the same profile mpm already reads.
Declined in 8.0.0 (unreleased).
install-release β πΒΆ
Installer of single-binary tools from GitHub and GitLab releases, reporting no version of its own, which is the requirement fresh enforces: without one the manager is never considered available. Both executables it ships, ir and install-release, reject --version, -V, -v and a version subcommand alike, all four checked against 0.8.4, and no request for one has ever been filed upstream. The companion-binary route that rescued raco does not apply either, the two executables being one entry point under two names rather than a versioned sibling. Otherwise well shaped, which is worth recording: ls, get, rm, upgrade and hold would have mapped cleanly. The zgenom verdict. Its own scope is narrower than its help suggests, too: every invocation on macOS answers βPackage installation is only supported on Linuxβ and lists nothing, where the help advertises βLinux/MacOSβ.
Declined in 8.0.0 (unreleased).
jam β οΈΒΆ
Browser-focused JavaScript package manager built on RequireJS, archived on GitHub with a last push of 2016-10-06.
Declined in 8.0.0 (unreleased).
JetBrains IDE plugins β πΒΆ
android-studio, 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 and jetbrains-webstorm.
Plugins are driven through an undocumented update subcommand of the IDE binary (topgradeβs own comment: βThe update command is undocumented, but tested on all of the belowβ), which lists nothing, reports free-form text, and refuses outright while the IDE is open (βOnly one instance of β¦ can be run at a time.β, exit 1). No inventory, no contract, and unusable on the very machines where the IDE is in use. Contrast vscode, whose --list-extensions is documented and stable, which is why it is wrapped.
Declined in 8.0.0 (unreleased).
jetbrains-toolbox β πΒΆ
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-toolbox-updater crate that pokes at its installation directory. That crate is what topgrade depends on, jetbrains-toolbox-updater = "6.0.0" in its Cargo.toml, which is where this rowβs lifebuoy comes from. Nothing to execute, nothing to list, no version to report.
Declined in 8.0.0 (unreleased).
jetpack β οΈ πΒΆ
FreeBSD jail runtime, a self-described prototype with no commit since 2018-10-25. Not a package manager to begin with.
Declined in 7.6.0 (2026-08-10).
kakoune β πΒΆ
Editor shipping no plugin manager of any kind, so there is nothing to wrap. Its whole command-line surface is sessions, filters and user-interface selection: -e and -E execute a command on client or server startup, -l lists sessions, and -d runs headless, with no install, list or update flag anywhere among them. Plugins are not packages either, being *.kak files the user drops into a directory that the readme describes loading wholesale: βIf the $XDG_CONFIG_HOME/kak/autoload directory exists, load every *.kak files in it, and load recursively any subdirectoryβ. Nothing names a source, a version or a registry, so what topgrade reaches through this editor is a third-party plugin manager running inside a headless session, not Kakoune. The helix reading, and the same one that leaves the shell frameworks unwrapped. Checked against Kakoune 2026.05.21.
Declined in 8.0.0 (unreleased).
macos β πΒΆ
Appleβs softwareupdate(8) updates the operating system rather than managing packages, putting it outside mpmβs domain along with every other system updater a competitor happens to drive. Nothing about it is inventoriable either: --list reports the updates pending for the machine, --history is a log of those applied through the tool and prints its header alone on a current host, and no verb lists installed components, searches a catalog or removes anything. A macOS update cannot be uninstalled.
Declined in 8.0.0 (unreleased).
mash βΒΆ
Runs scripts instead of installing them, which is pkgxβs verdict one layer up. mash is a 107-line Bash script over pkgx, and mash <scriptname> [args...] is the whole usage its own --help prints. The source carries no install, remove, list, search or update branch: naming a script fetches it from pkgxdev.github.io/mash/<scriptname>, marks it executable and runs it. What lands on disk is an ETag-validated HTTP cache under the OS cache directory, revalidated on every run, so nothing accumulates and nothing enumerates it. The catalog behind those names is real, trawled from GitHub into a website, and no verb reaches it.
The version probe is not what fails, and the way it reads is worth naming: the script on main answers mash 0.0.0-dev, while the release workflow substitutes the tag before publishing. Checked against the released 0.4.0, which answers with its own version.
Declined in 8.0.0 (unreleased).
maza β πΒΆ
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.
Declined in 8.0.0 (unreleased).
metapac βΒΆ
Declarative multi-backend package manager delegating to 21 backends mpm already wraps directly. No per-package install/remove verb: removed by design, see ripytide/metapac#197. The successor to the archived pacdef, and actively maintained.
Declined in 8.0.0 (unreleased).
microsoft-office β πΒΆ
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.
Declined in 8.0.0 (unreleased).
microsoft-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 winget, Microsoftβs actual package CLI, which mpm wraps.
Declined in 8.0.0 (unreleased).
myrlyn βΒΆ
openSUSEβs graphical package manager, for selecting packages and patterns to install, update and remove. It is a Qt application and nothing else: myrlyn --help answers FATAL: Could not connect to the display and exits, so it accepts no argument without an X or Wayland session, and offers no operation to drive headlessly. What it installs are libzypp packages, which zypper already reaches.
Declined in 8.0.0 (unreleased).
neobundle β οΈ πΒΆ
Vim plugin manager with no commit since 2018-07-26, superseded by dein, itself superseded by dpp.
Declined in 7.6.0 (2026-08-10).
nh β πΒΆ
Reimplements the NixOS, Home Manager and nix-darwin workflows, so every package it reaches comes from nixpkgs, the registry nix already reads. Its whole command tree is five subcommands, os, home, darwin, search and clean, and not one of them acts on a single package: nh os switch rebuilds the system from its configuration, nh search queries the same nixpkgs index, and nh clean extends nix-collect-garbage. It lists nothing either, nh os info reporting generations rather than packages. The home-manager verdict one layer up, since nh home drives that very tool.
Declined in 8.0.0 (unreleased).
ninite βΒΆ
Installs from a real catalog of Windows applications, so the packages are there, but the free product exposes no command line to reach them with: the whole interface is a web form that generates a bespoke .exe bundling the selected apps. That installer takes no package argument, lists nothing and removes nothing, which is the same shape that rules out microsoft-store. A command line exists only in Ninite Pro, behind a per-machine monthly subscription with no free tier, so no mpm install could exercise it and the destructive install/remove round-trip the test suite runs on every wrapped manager could never be provisioned.
Declined in 8.0.0 (unreleased).
oh-my-bash β πΒΆ
Bash configuration framework with no registry of its own: its plugins and themes are files inside the single git checkout, loaded by name from the plugins=() array a user hand-edits into ~/.bashrc and resolved against $OSH/plugins/<name>/, so nothing is independently fetched or versioned and a new plugin arrives only as a pull request against the framework itself (ohmybash/oh-my-bash#771). upgrade_oh_my_bash is correspondingly a git pull --rebase of that one checkout, which is the whole of what topgrade already drives. Nor is there a surface to drive it through: lib/cli.bash advertises plugin, theme and version subcommands in its completion table but implements all three as echo 'Not yet implemented' stubs, leaving no inventory command and no per-package verb.
Declined in 8.0.0 (unreleased).
oh-my-zsh β πΒΆ
Zsh configuration framework with no registry of its own: every plugin ships inside the git checkout, and omz plugin list is a directory glob over $ZSH/plugins and $ZSH_CUSTOM/plugins rather than a query against an index. The verb set confirms it, offering only disable, enable, info, list and load, where enable just rewrites the plugins=() array in ~/.zshrc for a directory already on disk: adding a third-party plugin means hand-creating $ZSH_CUSTOM/plugins/foobar/foobar.plugin.zsh yourself (Customization), and the External plugins page is a hand-curated list of links, not an index. Nothing versioned to install against either: upstream carries no tags, so omz version falls through git describe --tags HEAD to the branch name.
Declined in 8.0.0 (unreleased).
oneget βΒΆ
Windows package-manager manager: PackageManagement brokers transactions out to providers (NuGet, PowerShellGet, Chocolatey) instead of owning packages itself, so everything it reaches through PowerShellGet mpm already reaches directly through pwsh-gallery. Wrapping it would buy a delegation layer and not one extra package, which is the verdict metapac and upt get for the same shape. Its upstream has stopped moving besides: the readme declares the module βcurrently not in developmentβ and βno longer accepting any pull requestsβ, naming AnyPackage and PowerShellGet as the successors.
Declined in 8.0.0 (unreleased).
opencsw β οΈΒΆ
Community collection of Solaris packages in SysV format. Its own front page has announced nothing since 2022-02-15, βUnbound version 1.15.0 has been pushed to unstableβ, which is four years of silence on a catalogue whose whole value is how current it is.
Declined in 8.0.0 (unreleased).
openpkg β οΈΒΆ
Cross-platform RPM-based packaging for Linux, BSD and Solaris. Its own site no longer serves: openpkg.org answers with an expired TLS certificate over HTTPS and HTTP alike, which is why this section links Wikipedia instead. That stub carries nothing newer than βin June 2005 it offered more than 880 freely available packagesβ.
Declined in 8.0.0 (unreleased).
opi βΒΆ
openSUSE Package Installer, searching the Open Build Service and Packman for packages the configured repositories do not carry, then adding the repository it found one in and handing the install to zypper. The reach is real; the surface driving it is not. Its whole command line is opi [-h] [-V] [-n] [-P] [-m] [-v] [query ...], with no listing, no removal and no upgrade, so install is the only operation on offer.
It cannot report whether that install happened. opi -n exits 0 when it installs, 0 when the package was already current, and 0 while printing No package found. for a name that does not exist, so a wrapper keying success on the exit code, which is what mpm does for install, reports every call as a success. Its non-interactive mode also answers its own prompts by taking the first option offered, the repository included, so an unattended run can add a strangerβs Build Service home project to the system. Whatever it does install becomes an ordinary RPM that zypper then inventories.
Declined in 8.0.0 (unreleased).
osc βΒΆ
The openSUSE Commander, a command-line client for the Open Build Service. It installs nothing on the machine it runs on: its verbs are checkout, build, buildconfig, buildinfo, buildlog and submitrequest, which fetch a packageβs sources, compile them in a chroot and submit the result upstream, and it carries no install command at all. The build service behind it is a registry, but reaching a package there means building it, which is a contributorβs workflow rather than a package operation.
Declined in 8.0.0 (unreleased).
pacapt β οΈΒΆ
Cross-manager wrapper retired in 2022. All 19 of the package managers it drove are shipped by mpm.
Declined in 7.6.0 (2026-08-10).
pacdef β οΈ πΒΆ
Arch meta package manager, archived on 2025-08-05, its README pointing to metapac as its successor.
Declined in 7.6.0 (2026-08-10).
package-control βΒΆ
Sublime Textβs package manager, thoroughly alive and backed by a registry of its own at packagecontrol.io. It is drivable only from inside the editor, though: its readme documents installation as three steps through the Command Palette, and no command-line entry point exists to list, install or remove anything with nobody at the keyboard. That is the test pckr-nvim and dpp fail too. Contrast micro, an editor mpm does wrap, whose plugin flag is handled before its screen is ever initialised and so prints and exits.
Declined in 8.0.0 (unreleased).
packer-aur β οΈΒΆ
Arch AUR helper with no commit since 2016-03-25. Superseded by the same AUR helpers as yaourt; the bare packer name belongs to HashiCorpβs tool and to packer-nvim, hence the suffix.
Declined in 8.0.0 (unreleased).
packer-nvim β οΈ πΒΆ
Neovim plugin manager whose README has declared it unmaintained since August 2023, pointing at lazy, which mpm wraps, and at pckr-nvim.
Declined in 7.6.0 (2026-08-10).
pakku β οΈΒΆ
Pacman wrapper with AUR support, abandoned: its last release is v0.14 from 2019-12-20 and its last commit 2020-11-12. Nothing is out of reach for want of it either, mpm wrapping six live tools over the same ground in pacaur, pamac, paru, pikaur, trizen and yay.
Declined in 8.0.0 (unreleased).
paq β πΒΆ
Neovim plugin manager clearing both tests its peers failed: installation has a documented headless recipe closing on paqβs own PaqDoneInstall autocommand, and paq-lock.json sits at a fixed path recording each pluginβs name, URL and commit, so an inventory needs no configuration loaded. It reports no version of its own, though. require("paq") exposes clean, install, list, log_clean, log_open, query, setup, sync and update, and no version constant appears anywhere in its source; upstream tags releases, but a tag never reaches the checkout a user clones. Nothing on its tracker asks for one.
Declined in 8.0.0 (unreleased).
pathogen β οΈΒΆ
Vim plugin manager with no commit since 2022-08-24. Its whole job, splicing plugin directories into runtimepath, became a Vim 8 and Neovim built-in, which is what vim-pack wraps.
Declined in 8.0.0 (unreleased).
pbi β οΈΒΆ
PC-BSDβs Push Button Installer format and the pbi_* tools around it. PC-BSD became TrueOS, whose repository is archived with a last push of 2020-04-22, and FreeBSDβs own pkg is what the platform installs with today.
Declined in 8.0.0 (unreleased).
pckr-nvim βΒΆ
Successor to packer-nvim and actively developed, but drivable only from inside Neovim, and less so than its predecessor was. packer.nvim documented a headless recipe, nvim --headless -c 'autocmd User PackerComplete quitall' -c 'PackerSync', which closed on the completion event named in it; the rewrite emits no autocommand at all, so an unattended run has nothing to wait on, and its pckr/cli.lua is the :Pckr Ex-command dispatcher rather than the shell entry point the name suggests. Removal blocks on an OK to remove? [y/N] prompt in pckr/display.lua. Its lockfile is opt-in, written only by the :Pckr lock action, and is a Lua table keyed by remote URL, so it is neither guaranteed to exist nor readable without an evaluator the way lazyβs JSON one is. A request for a synchronous entry point was closed with a redirect to config and dependencies (lewis6991/pckr.nvim#12).
Declined in 8.0.0 (unreleased).
pihole β πΒΆ
DNS ad blocker that updates its own installation and blocklists. It manages a network service and its data, not packages on the host.
Declined in 8.0.0 (unreleased).
pip-review β πΒΆ
A convenience layer over pip, which mpm wraps directly: its readme opens by calling it βa convenience wrapper around pipβ that lists updates βby deferring to pip list --outdatedβ and installs them βby deferring to pip installβ. It owns no registry, no installed-package inventory and no per-package verb: pip-review takes no package argument, and its flags only choose how to present the same all-outdated set.
Declined in 8.0.0 (unreleased).
pipupgrade β πΒΆ
Wraps pip and nothing else: it discovers the pip, pip3 and pip2 executables on PATH and shells out to them, resolving every candidate version against PyPI, so its whole inventory is the packages mpm already reaches through pip. Its readme calls it βThe missing command for pipβ, and what it adds on top is project-file rewriting of requirements.txt and Pipfile plus a semver-aware upgrade gate, both outside the system scope every mpm manager holds to.
Declined in 8.0.0 (unreleased).
pisi β οΈΒΆ
Pardusβ package manager, left behind by the distribution that created it: βPardus used to use Pisi, but migrated to APT in 2013β. The PisiLinux fork carrying it on was last pushed 2022-03-28, past the silence the stability policy reads as abandonment. Its living descendant is Solusβ eopkg, which mpm wraps.
Declined in 8.0.0 (unreleased).
pkg-termux βΒΆ
Termuxβs pkg is a dispatcher over two managers mpm already wraps, which is uptβs verdict reached by a different route. Its script branches on TERMUX_APP_PACKAGE_MANAGER and forwards every command: under apt, install becomes apt install, list-installed becomes apt list --installed, uninstall becomes apt remove, files becomes dpkg -L and search becomes apt search; under pacman the same commands become pacman -Sy --needed, pacman -Q, pacman -Rcns, pacman -Ql and pacman -Sys. Nothing it accepts reaches a package apt or pacman cannot.
What it adds is a mirror selection and a cache refresh in front of some of those calls, select_mirror and update_apt_cache, which is convenience rather than a registry. That is the line nala sits on the other side of: nala was wrapped for owning its own vocabulary, downloader and rollback history, where pkg forwards its argv unchanged.
Declined in 8.0.0 (unreleased).
pkgfile β πΒΆ
Answers which package owns a given file by searching the .files metadata repo-add publishes on pacman mirrors, scoped to the repositories enabled in /etc/pacman.conf. Its man page documents exactly three operations, --search, --list and --update, none of which installs, removes or reports locally-installed packages. --update only refreshes the cached index, and that index is pacmanβs own repository metadata rather than a registry of its own. The bundled command-not-found hook can offer to install a match, but delegates to sudo pacman -S.
Declined in 8.0.0 (unreleased).
pkgx βΒΆ
Runs programs instead of installing them, which leaves nothing to declare. Every argument is read as a command to execute, so pkgx list answers Error: CmdNotFound("list") while pkgx ls runs /bin/ls: there is no install, remove, outdated or search verb anywhere, and the one inventory-shaped flag, --query, answers whether a single named program could be run rather than reporting what is present. Upstream frames it the same way, describing pkgx as βa 4 MiB, standalone binary that can run anythingβ and noting that after a run βnothing was installed; your wider system is untouchedβ, then directing installation to its sibling pkgxdev/pkgm, which βfully installs pkgx packages to /usr/local/β. So the package manager of this lineage is pkgm, which carries install, uninstall, list, outdated and update. Checked against pkgx 2.11.0.
tea is this toolβs former name, and the verdict above covers it. GitHub still answers teaxyz/cli with pkgxdev/pkgx, one repository created on 2021-11-20. Its releases carry the rename in their artifact names: tea-1.0.0-alpha.4 on 2023-09-17, then pkgx-1.0.0 on 2023-10-02. The teaxyz organization now publishes a token protocol and no package manager. tea.xyz heads its own page with a Looking for the package manager? link.
Declined in 8.0.0 (unreleased).
plug β πΒΆ
Vim and Neovim plugin manager, drivable unattended unlike dein and dpp: PlugInstall runs under --headless and exits cleanly. It reports no version, though, and by design. It ships as a single file the documented install fetches from master, so no release tag ever reaches the copy on disk, and it records no manifest either: the plugin list lives in the userβs own config. The request for a version command was closed on the maintainerβs βit doesnβt have a version number in it, so itβs not currently possibleβ.
Declined in 8.0.0 (unreleased).
ppm β οΈΒΆ
ActiveStateβs Perl Package Manager, which ships inside ActivePerl rather than on its own. That distributionβs last release is 5.28.1 from 2019-05-30, seven years back, so the manager has had no vehicle since. CPAN itself stays reachable through cpan.
Declined in 8.0.0 (unreleased).
restarts β πΒΆ
needrestart restarts services whose libraries were replaced by an upgrade. It installs nothing and owns no packages: it reacts to what a real package manager just did.
Declined in 8.0.0 (unreleased).
ruckzuck βΒΆ
Windows software catalogue and updater, declined for the one thing it cannot report: its own version. RZGet.exe answers --version, -v and a bare version alike by printing nothing and exiting 0, and its argument parser confirms why, handling install, update, show, search and uninstall and carrying no version branch at all. The number exists only as a resource on the binary, which reads 1.7.4.3 against a 1.7.3.11 release tag, and no invocation surfaces it. The version_cli companion-binary route does not rescue it either: the other artifacts RuckZuck ships are a GUI, a ConfigMgr helper and an Intune wrapper rather than a sibling CLI reporting the suiteβs version. That is zgenomβs verdict. Nothing on its tracker asks for a version flag, so this rests on the observed behaviour rather than an upstream position, and one would reopen the question immediately.
Everything else was driven on Windows 11 and works, which is what makes the single missing flag worth recording precisely: search --isinstalled true and search <keyword> each return a flat JSON array carrying ShortName and ProductVersion, update --list --all prints one bare shortname per line and reported a real pending upgrade, and install, uninstall, update --all and update <shortname> complete the verb set. Little else in this table is so nearly wrappable.
Declined in 8.0.0 (unreleased).
rye β οΈ πΒΆ
Python project manager, archived by Astral with its last release 0.44.0 dating from 2025-02-26. Its readme states Rye βis no longer developedβ and that βno further updates are planned, including security updatesβ, naming uv as βthe successor project from the same maintainersβ. mpm wraps that successor as uv and uvx, so the global tools and interpreters Rye installed are reached without it.
Declined in 8.0.0 (unreleased).
sage β οΈΒΆ
Cygwin package manager, offered as an alternative to apt-cyg, which mpm wraps. It is gone in the strongest sense available: github.com/svnpenn/sage 404s and so does the svnpenn account that owned it, so the project was not renamed or transferred, it was deleted along with its owner. The title above therefore links the Wayback Machineβs last capture, from 2019-11-21, there being nothing live left to point at. No fork carries the name.
Declined in 8.0.0 (unreleased).
Self-updating applications β πΒΆ
atuin, claude-code, codex, cursor-agent, deno, flutter, fossil, helix-db, hermes-agent, opencode, spicetify and typst.
Update only themselves. 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.
Declined in 8.0.0 (unreleased).
sera β πΒΆ
Command-line updater for KDE Plasma addons, and the closest this page comes to a candidate that fails on one requirement alone: it does list what is installed, which is the thing most tools here cannot do, and list_current_packages even emits each addon as {"NM": name, "VO": version}.
What it has no route to is its own version. The script holds one internally, version="v2.9.9-1", but nothing prints it: its whole dispatch is help, list, check, sync and upgrade, with *) exit;; swallowing anything else, so sera --version exits silently and a probe reads nothing. Upstream publishes no tags either. That is zgenomβs verdict, and fresh enforces it. A second obstacle sits behind it: sync is dispatched as upgrade_package "$1" "$2" and wants a content id and an addon name, so one identifier could not drive an upgrade even with a version in hand, which is the 0install shape.
Declined in 8.0.0 (unreleased).
smart β οΈΒΆ
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 mpm; every archive it drove has a manager today.
Declined in 8.0.0 (unreleased).
sparkle β πΒΆ
An update framework developers embed in their own macOS applications, described by its site as βan easy-to-use software update framework for macOS applicationsβ. Each application carries its own appcast feed and Sparkleβs helper acts on one bundle path at a time, so there is no catalog and no inventory anywhere in it.
topgrade reaches it by supplying the enumeration itself, walking /Applications, probing every bundle with --probe and updating whichever answer. That is a directory listing performed by the caller, not something Sparkle exposes, and it leaves nothing here to list, search, install by name or remove.
Declined in 8.0.0 (unreleased).
spm β οΈΒΆ
Static package manager for front-end assets, archived on GitHub with a last push of 2018-08-15. It shares its abbreviation with Swiftβs package manager, which is a different tool and project-scoped.
Declined in 8.0.0 (unreleased).
sysget β οΈΒΆ
Cross-manager wrapper retired in 2019. All 21 of the package managers it drove are shipped by mpm.
Declined in 7.6.0 (2026-08-10).
System database refreshers β πΒΆ
clam-av-db, lensfun and mandb.
Rebuild a local database from files already on disk. Nothing is fetched, installed or removed, and the database has no package identity to report.
Declined in 8.0.0 (unreleased).
tldr β πΒΆ
Refreshes a local cache of community-written command summaries. The pages are documentation, not packages: nothing is installed, versioned or removable.
Declined in 8.0.0 (unreleased).
tmux β πΒΆ
The Tmux Plugin Manager clears the bar most editor and shell plugin managers fail: it is genuinely scriptable, shipping bin/install_plugins, bin/update_plugins and bin/clean_plugins, and its own comment notes tmux βdoes not need to be started in order to run this scriptβ. Nobody has to be at the keyboard.
What it has no shape for is a package. Those three scripts are the whole surface and none takes an argument: the plugin set is whatever .tmux.conf declares, so installing is all-or-nothing from that file and there is no verb naming one plugin. Neither is there a listing, nor a version of its own, upstream tagging its repository but publishing no releases and putting nothing on disk that names one.
No inventory, no per-package operation, and topgrade already reaching it leaves nothing a wrapper would add, which is zrβs verdict.
Declined in 8.0.0 (unreleased).
topgrade internal steps β πΒΆ
Not tools: internal steps of topgrade, which mpm already wraps. They name no upstream project of their own and install nothing.
Declined in 8.0.0 (unreleased).
tpack β πΒΆ
A Go rewrite of the Tmux Plugin Manager with a terminal interface, and it lands the same way as tmux for the same reason, though not for identical reasons throughout. What it shares is decisive: there is no listing command at all, and neither of its state-changing verbs names a plugin. tpack install is documented as βInstall all plugins declared in tmux.confβ and takes no positional, while tpack clean removes βplugin directories not declared in tmux.confβ, so the plugin set is the userβs configuration file in both directions and nothing installs or removes one plugin. Where it does go further than tpm is tpack update [plugin...], which names plugins, alongside a check-updates read; that leaves an upgrade as the entire honest surface a wrapper could offer, which is what topgrade already reaches. The zr reading. Checked against tpack 1.2.1.
Declined in 8.0.0 (unreleased).
transactional-update β πΒΆ
The atomic update tool of openSUSE MicroOS and Aeon, applying changes to a new btrfs snapshot instead of to the running system. It owns no registry: its own help documents the package commands as βCall βzypper dupββ, βCall βzypper upββ and βCall βzypper patchββ, so every package it reaches is one zypper reaches already. It offers no listing, and that same help marks pkg install, pkg remove and pkg update interactive.
The snapshot model would defeat a wrapper even with the verbs in place. The tool applies updates βwithout touching the running systemβ, so an inventory taken after an install reports the previous contents until the machine reboots into the new snapshot.
Declined in 8.0.0 (unreleased).
up2date β οΈΒΆ
Red Hatβs RPM updater, retired by its own vendor: βAs of Fedora Core 5 and Red Hat Enterprise Linux 5, up2date is no longer shipped with the distribution; yum is used instead.β That successor is wrapped as yum.
Declined in 8.0.0 (unreleased).
upm βΒΆ
βUniversal Package Managerβ, putting one syntax over apk, apt, guix, opkg, pacman, pkg, pkg_add, pkgin, xbps and yum. It owns no registry: every command is translated to whichever of those the host already carries, all of them wrapped by mpm directly, so it reaches no package mpm cannot. That is uptβs verdict word for word, and like upt it reads as a peer of mpm rather than a candidate to wrap.
Declined in 8.0.0 (unreleased).
upt βΒΆ
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).
Declined in 8.0.0 (unreleased).
vim β πΒΆ
Vimβs own package feature loads plugins but never fetches them, which leaves nothing to wrap. Asked directly, Vim 9.2 reports has('packages') as 1 and exists(':packadd') as 2, while :PackUpdate and :PackAdd both come back 0: the one command it has puts a package already on disk onto the runtime path. Getting it there is the userβs job, a plugin being a directory under pack/*/start/ that they clone or copy themselves, so there is no registry, no listing, and no install, update or removal of anything.
That is precisely what separates it from vim-pack, which mpm does wrap: Neovimβs manager takes sources and records them, where Vimβs feature only reads a directory. What topgrade drives through this row is third-party managers anyway, its Vim step forcing a vim-plug update or running a update_plugins.py the user supplies.
Declined in 8.0.0 (unreleased).
volo β οΈΒΆ
Front-end project tool that added dependencies by fetching them from GitHub, last pushed 2022-11-25. That is past the roughly three years of silence the stability policy reads as abandonment, and what it created was a project template rather than machine-wide state.
Declined in 8.0.0 (unreleased).
voom β πΒΆ
Vim plugin manager in a hundred lines of POSIX shell, and the benchmark pointed at the wrong tool until now: its homepage named VOoM, a two-pane outliner plugin that installs nothing, while what topgrade actually drives is a binary, its run_voom requiring voom on the path and running voom update.
The tool it does name is declined on the same two grounds as the rest of this family. It reports no version by any route: the scriptβs whole option surface is help | --help | -h, it carries no version constant, and upstream publishes zero tags and zero releases, which is zgenomβs verdict. And no verb names a plugin to install or remove: its own synopsis is βRun voom to install/uninstall; voom update to update already-installed pluginsβ, so the set is the ~/.vim/plugins manifest and a bare run reconciles the directory to that file in both directions. update [-q] <name> does name one plugin, which is exactly as far as tpack gets, and it leaves an upgrade as the whole surface a wrapper could offer.
Declined in 8.0.0 (unreleased).
vundle β πΒΆ
Vim plugin manager reporting no version through anything a probe can read, which is what PackageManager.fresh requires: g:vundle_version does not exist, checked by asking Vim for it, and the 0.10.2 in autoload/vundle.vim is a comment rather than a variable. Upstream tags releases but publishes none, and the documented install clones master, so the copy on disk names no version either. The companion-binary route does not help: the binary here is vim, whose version is Vimβs own, which is the argument that settled zigup.
It clears more of the bar than most of this page, which is worth recording. Driven under vim -es -u <vimrc>, PluginInstall tpope/vim-surround really did install a plugin the configuration never declared, so it reaches packages one at a time, unlike tmux or fish-plug. What it has no shape for is an inventory: the only listing is the g:vundle#bundles list built from the Plugin lines of the userβs vimrc, so it echoes the configuration rather than the machine. After that ad-hoc install it still reported two plugins while three sat on disk. Checked against Vundle 0.10.2 and Vim 9.2.
Declined in 8.0.0 (unreleased).
waydroid β πΒΆ
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.
Declined in 8.0.0 (unreleased).
whohas β οΈΒΆ
Cross-distribution search retired in 2015. All 16 of the distribution archives it queried have a manager in mpm.
Declined in 7.6.0 (2026-08-10).
Windows Subsystem for Linux β πΒΆ
wsl and wsl-update.
Update the WSL kernel and its distributions. WSL is a platform, not a package manager: the managers that run inside a WSL distribution are the ones mpm wraps, and it wraps them directly.
Declined in 8.0.0 (unreleased).
windsurf β πΒΆ
A VS Code fork whose vendor documents a launcher (windsurf .) and never the extension-management flags, so nothing upstream commits to --list-extensions behaving as it does in VS Code. The one fork where the community did test it, cursor, found the listing opens the editor window instead. Reassess with a citation the day Windsurf documents the flags or a listing is confirmed working.
Declined in 8.0.0 (unreleased).
wpkg β οΈΒΆ
Windows Packager, a dpkg clone bringing Debian-style packaging and apt-like verbs to Windows. Its upstream is gone: windowspackager.org now serves a parking page offering the domain for sale, no canonical repository survives it, and the only trace left on GitHub is a single-star fork carrying no releases. Not to be confused with the unrelated WPKG deployment tool, which shares the name and nothing else.
Declined in 8.0.0 (unreleased).
yaourt β οΈΒΆ
Archived, and self-described [unmaintained] in its own repository description, with no commit since 2018-12. The dominant AUR helper before yay; mpm wraps its successors yay and paru.
Declined in 8.0.0 (unreleased).
yt-dlp βΒΆ
A command-line audio and video downloader, not a package manager: what it fetches is media, addressed by URL, carrying no name, no version and no catalog to enumerate. Its --update flag replaces its own binary in place, which is the whole of its resemblance to one and the reason it keeps being suggested.
That is the verdict the self-updating applications family carries, and yt-dlp would sit there but for the lifebuoy: no competitor drives it, so it cannot share a title promising topgrade reaches it.
Declined in 8.0.0 (unreleased).
zgenom β πΒΆ
Zsh plugin manager reporting no version through any binary: its whole function set runs from zgenom-api to zgenom-update with no version command anywhere, so the probe that establishes a shell-function managerβs presence has nothing to read. The upstream request to tag releases was closed on the maintainerβs position that βI consider everything merged into main as a stable releaseβ (jandamm/zgenom#120), so no version is coming. Its list compounds that by cat-ing the generated init.zsh verbatim rather than reporting an inventory.
Declined in 8.0.0 (unreleased).
zigup β πΒΆ
Zig compiler manager reporting no version of its own, which is what disqualifies it: a bare argument means install this Zig version, so --version, -V, -v and version are each read as a version string and rejected. Upstream confirms the shape rather than the wording of it, having closed a report of the resulting panic by replacing it with error: invalid zig version 'foo', unable to create a download URL for it (marler8997/zigup#187); no request for a version flag was ever filed. Nothing else carries the number either, build.zig.zon declaring a 0.0.1 that has never moved while releases are date-stamped, and the companion-binary route that rescued raco does not apply: zig is what zigup installs rather than a sibling it ships with, so its version answers for whichever compiler is currently default. The zgenom verdict, and the rest of the tool is otherwise well shaped: list, fetch, clean and keep would have mapped cleanly.
Declined in 8.0.0 (unreleased).
zr β πΒΆ
Zsh plugin manager owning no inventory to report: plugins are the arguments you hand it, so its whole main.rs recognizes --update, --help, --version and identifiers containing a slash, and there is no state to list. Wrapping it would buy a single upgrade_all over zr --update, which is what topgrade already reaches. No upstream request for a listing exists: the design is deliberate, documented in its README.
Declined in 8.0.0 (unreleased).
Project-scoped dependency managersΒΆ
Tools that resolve dependencies inside a working tree are out of scope today.
Todo
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 |
|
β |
Haskell |
|
β |
Java |
|
β |
JavaScript |
|
|
.NET |
|
β |
Perl |
|
|
PHP |
|
|
Python |
|
|
Ruby |
|
|
Rust |
|
|
Swift and Objective-C |
|
β |