CLI parameters¶
Help screen¶
$ mpm --help
Usage: mpm [OPTIONS] COMMAND [ARGS]...
CLI options shared by all subcommands.
Package manager selection options:
Use these options to restrict the subcommand to a subset of managers.
- By default, mpm will evaluate all managers supported on the current platform.
- Only target a subset of managers with the --<manager-id> selectors.
- Remove a manager from the selection with --no-<manager-id> selectors.
- Order of the selectors is preserved for priority-sensitive subcommands.
- Exclusion of a manager always takes precedence over its inclusion.
--apm (Deprecated) Select Atom's apm.
--apt Select APT.
--apt-mint Select Linux Mint's apt.
--brew Select Homebrew Formulae.
--cargo Select Rust's cargo.
--cask Select Homebrew Cask.
--choco Select Chocolatey.
--composer Select PHP's Composer.
--dnf Select DNF.
--dnf5 Select DNF5.
--emerge Select Emerge.
--eopkg Select Solus package manager.
--flatpak Select Flatpak.
--fwupd Select Linux Vendor Firmware Service.
--gem Select Ruby Gems.
--mas Select Mac AppStore.
--npm Select Node's npm.
--opkg Select OPKG.
--pacaur Select Pacaur.
--pacman Select Pacman.
--paru Select Paru.
--pip Select Pip.
--pipx Select Pipx.
--pkg Select FreeBSD System Manager.
--scoop Select Scoop.
--snap Select Snap.
--steamcmd Select Valve Steam.
--uv Select UV.
--vscode Select Visual Studio Code.
--vscodium Select VSCodium.
--winget Select WinGet.
--yarn Select Node's yarn.
--yay Select Yay.
--yum Select YUM.
--zypper Select Zypper.
--no-apm (Deprecated) Deselect Atom's apm.
--no-apt Deselect APT.
--no-apt-mint Deselect Linux Mint's apt.
--no-brew Deselect Homebrew Formulae.
--no-cargo Deselect Rust's cargo.
--no-cask Deselect Homebrew Cask.
--no-choco Deselect Chocolatey.
--no-composer Deselect PHP's Composer.
--no-dnf Deselect DNF.
--no-dnf5 Deselect DNF5.
--no-emerge Deselect Emerge.
--no-eopkg Deselect Solus package manager.
--no-flatpak Deselect Flatpak.
--no-fwupd Deselect Linux Vendor Firmware Service.
--no-gem Deselect Ruby Gems.
--no-mas Deselect Mac AppStore.
--no-npm Deselect Node's npm.
--no-opkg Deselect OPKG.
--no-pacaur Deselect Pacaur.
--no-pacman Deselect Pacman.
--no-paru Deselect Paru.
--no-pip Deselect Pip.
--no-pipx Deselect Pipx.
--no-pkg Deselect FreeBSD System Manager.
--no-scoop Deselect Scoop.
--no-snap Deselect Snap.
--no-steamcmd Deselect Valve Steam.
--no-uv Deselect UV.
--no-vscode Deselect Visual Studio Code.
--no-vscodium Deselect VSCodium.
--no-winget Deselect WinGet.
--no-yarn Deselect Node's yarn.
--no-yay Deselect Yay.
--no-yum Deselect YUM.
--no-zypper Deselect Zypper.
-a, --all-managers Force evaluation of all managers implemented by mpm,
including those not supported by the current platform or
deprecated. Still applies filtering by --<manager-id> /
--no-<manager-id> options before calling the subcommand.
-x, --xkcd Preset manager selection as defined by XKCD #1654.
Equivalent to: --pip --brew --npm --dnf --apt --steamcmd.
Manager options:
--ignore-auto-updates / --include-auto-updates
Report all outdated packages, including those
tagged as auto-updating. Only applies to outdated
and upgrade subcommands. [default: ignore-auto-
updates]
--stop-on-error / --continue-on-error
Stop right away or continue operations on manager
CLI error. [default: continue-on-error]
-d, --dry-run Do not actually perform any action, just simulate
CLI calls.
-t, --timeout INTEGER RANGE Set maximum duration in seconds for each CLI
call. [default: 500; x>=0]
Output options:
--description Show package description in results.
-s, --sort-by [manager_id|manager_name|package_id|package_name|version]
Sort results. [default: manager_id]
--stats / --no-stats Print per-manager package statistics. [default: stats]
-o, --output-format [asciidoc|csv|csv-excel|csv-excel-tab|csv-unix|double_grid|double_outline|fancy_grid|fancy_outline|github|grid|heavy_grid|heavy_outline|html|jira|json|latex|latex_booktabs|latex_longtable|latex_raw|mediawiki|mixed_grid|mixed_outline|moinmoin|orgtbl|outline|pipe|plain|presto|pretty|psql|rounded_grid|rounded_outline|rst|simple|simple_grid|simple_outline|textile|tsv|unsafehtml|vertical|youtrack]
Rendering mode of the output. [default:
rounded_outline]
Xbar/SwiftBar options:
--bar-plugin-path Print location of the Xbar/SwiftBar plugin.
Other options:
--time / --no-time Measure and print elapsed execution time. [default:
no-time]
--color, --ansi / --no-color, --no-ansi
Strip out all colors and all ANSI codes from output.
[default: color]
-C, --config CONFIG_PATH Location of the configuration file. Supports glob
pattern of local path and remote URL. [default:
~/.config/mpm/*.{toml,yaml,yml,json,ini,xml}]
--show-params Show all CLI parameters, their provenance, defaults
and value, then exit.
-v, --verbosity LEVEL Either CRITICAL, ERROR, WARNING, INFO, DEBUG.
[default: INFO]
--version Show the version and exit.
-h, --help Show this message and exit.
Explore subcommands:
managers List supported package managers and their location.
installed (list) List installed packages.
outdated List outdated packages.
search Search packages.
which (locate) Locate CLIs on system.
Maintenance subcommands:
install Install a package.
upgrade (update) Upgrade packages.
remove (uninstall) Remove a package.
sync Sync local package info.
cleanup Cleanup local data.
Package snapshots subcommands:
backup (lock, freeze, snapshot)
Save installed packages to a TOML file.
restore Install packages referenced in TOML files.
SBOM subcommands:
sbom Export installed packages to a SBOM document.
Options¶
mpm¶
CLI options shared by all subcommands.
mpm [OPTIONS] COMMAND [ARGS]...
Options
- --apm¶
(Deprecated) Select Atom’s apm.
- --apt¶
Select APT.
- --apt-mint¶
Select Linux Mint’s apt.
- --brew¶
Select Homebrew Formulae.
- --cargo¶
Select Rust’s cargo.
- --cask¶
Select Homebrew Cask.
- --choco¶
Select Chocolatey.
- --composer¶
Select PHP’s Composer.
- --dnf¶
Select DNF.
- --dnf5¶
Select DNF5.
- --emerge¶
Select Emerge.
- --eopkg¶
Select Solus package manager.
- --flatpak¶
Select Flatpak.
- --fwupd¶
Select Linux Vendor Firmware Service.
- --gem¶
Select Ruby Gems.
- --mas¶
Select Mac AppStore.
- --npm¶
Select Node’s npm.
- --opkg¶
Select OPKG.
- --pacaur¶
Select Pacaur.
- --pacman¶
Select Pacman.
- --paru¶
Select Paru.
- --pip¶
Select Pip.
- --pipx¶
Select Pipx.
- --pkg¶
Select FreeBSD System Manager.
- --scoop¶
Select Scoop.
- --snap¶
Select Snap.
- --steamcmd¶
Select Valve Steam.
- --uv¶
Select UV.
- --vscode¶
Select Visual Studio Code.
- --vscodium¶
Select VSCodium.
- --winget¶
Select WinGet.
- --yarn¶
Select Node’s yarn.
- --yay¶
Select Yay.
- --yum¶
Select YUM.
- --zypper¶
Select Zypper.
- --no-apm¶
(Deprecated) Deselect Atom’s apm.
- --no-apt¶
Deselect APT.
- --no-apt-mint¶
Deselect Linux Mint’s apt.
- --no-brew¶
Deselect Homebrew Formulae.
- --no-cargo¶
Deselect Rust’s cargo.
- --no-cask¶
Deselect Homebrew Cask.
- --no-choco¶
Deselect Chocolatey.
- --no-composer¶
Deselect PHP’s Composer.
- --no-dnf¶
Deselect DNF.
- --no-dnf5¶
Deselect DNF5.
- --no-emerge¶
Deselect Emerge.
- --no-eopkg¶
Deselect Solus package manager.
- --no-flatpak¶
Deselect Flatpak.
- --no-fwupd¶
Deselect Linux Vendor Firmware Service.
- --no-gem¶
Deselect Ruby Gems.
- --no-mas¶
Deselect Mac AppStore.
- --no-npm¶
Deselect Node’s npm.
- --no-opkg¶
Deselect OPKG.
- --no-pacaur¶
Deselect Pacaur.
- --no-pacman¶
Deselect Pacman.
- --no-paru¶
Deselect Paru.
- --no-pip¶
Deselect Pip.
- --no-pipx¶
Deselect Pipx.
- --no-pkg¶
Deselect FreeBSD System Manager.
- --no-scoop¶
Deselect Scoop.
- --no-snap¶
Deselect Snap.
- --no-steamcmd¶
Deselect Valve Steam.
- --no-uv¶
Deselect UV.
- --no-vscode¶
Deselect Visual Studio Code.
- --no-vscodium¶
Deselect VSCodium.
- --no-winget¶
Deselect WinGet.
- --no-yarn¶
Deselect Node’s yarn.
- --no-yay¶
Deselect Yay.
- --no-yum¶
Deselect YUM.
- --no-zypper¶
Deselect Zypper.
- -a, --all-managers¶
Force evaluation of all managers implemented by mpm, including those not supported by the current platform or deprecated. Still applies filtering by –<manager-id> / –no-<manager-id> options before calling the subcommand.
- -x, --xkcd¶
Preset manager selection as defined by XKCD #1654. Equivalent to: –pip –brew –npm –dnf –apt –steamcmd.
- --ignore-auto-updates, --include-auto-updates¶
Report all outdated packages, including those tagged as auto-updating. Only applies to outdated and upgrade subcommands.
- --stop-on-error, --continue-on-error¶
Stop right away or continue operations on manager CLI error.
- -d, --dry-run¶
Do not actually perform any action, just simulate CLI calls.
- -t, --timeout <timeout>¶
Set maximum duration in seconds for each CLI call.
- --description¶
Show package description in results.
- -s, --sort-by <sort_by>¶
Sort results.
- Options:
manager_id | manager_name | package_id | package_name | version
- --stats, --no-stats¶
Print per-manager package statistics.
- --bar-plugin-path¶
Print location of the Xbar/SwiftBar plugin.
- --time, --no-time¶
Measure and print elapsed execution time.
- --color, --ansi, --no-color, --no-ansi¶
Strip out all colors and all ANSI codes from output.
- -C, --config <CONFIG_PATH>¶
Location of the configuration file. Supports glob pattern of local path and remote URL.
- --show-params¶
Show all CLI parameters, their provenance, defaults and value, then exit.
- -v, --verbosity <LEVEL>¶
Either CRITICAL, ERROR, WARNING, INFO, DEBUG.
- Options:
CRITICAL | ERROR | WARNING | INFO | DEBUG
- --version¶
Show the version and exit.
- -o, --output-format <output_format>¶
Rendering mode of the output.
- Options:
asciidoc | csv | csv-excel | csv-excel-tab | csv-unix | double_grid | double_outline | fancy_grid | fancy_outline | github | grid | heavy_grid | heavy_outline | html | jira | json | latex | latex_booktabs | latex_longtable | latex_raw | mediawiki | mixed_grid | mixed_outline | moinmoin | orgtbl | outline | pipe | plain | presto | pretty | psql | rounded_grid | rounded_outline | rst | simple | simple_grid | simple_outline | textile | tsv | unsafehtml | vertical | youtrack
Environment variables
- ('MPM_APM',)
Provide a default for
--apm
- ('MPM_APT',)
Provide a default for
--apt
- ('MPM_APT_MINT',)
Provide a default for
--apt-mint
- ('MPM_BREW',)
Provide a default for
--brew
- ('MPM_CARGO',)
Provide a default for
--cargo
- ('MPM_CASK',)
Provide a default for
--cask
- ('MPM_CHOCO',)
Provide a default for
--choco
- ('MPM_COMPOSER',)
Provide a default for
--composer
- ('MPM_DNF',)
Provide a default for
--dnf
- ('MPM_DNF5',)
Provide a default for
--dnf5
- ('MPM_EMERGE',)
Provide a default for
--emerge
- ('MPM_EOPKG',)
Provide a default for
--eopkg
- ('MPM_FLATPAK',)
Provide a default for
--flatpak
- ('MPM_FWUPD',)
Provide a default for
--fwupd
- ('MPM_GEM',)
Provide a default for
--gem
- ('MPM_MAS',)
Provide a default for
--mas
- ('MPM_NPM',)
Provide a default for
--npm
- ('MPM_OPKG',)
Provide a default for
--opkg
- ('MPM_PACAUR',)
Provide a default for
--pacaur
- ('MPM_PACMAN',)
Provide a default for
--pacman
- ('MPM_PARU',)
Provide a default for
--paru
- ('MPM_PIP',)
Provide a default for
--pip
- ('MPM_PIPX',)
Provide a default for
--pipx
- ('MPM_PKG',)
Provide a default for
--pkg
- ('MPM_SCOOP',)
Provide a default for
--scoop
- ('MPM_SNAP',)
Provide a default for
--snap
- ('MPM_STEAMCMD',)
Provide a default for
--steamcmd
- ('MPM_UV',)
Provide a default for
--uv
- ('MPM_VSCODE',)
Provide a default for
--vscode
- ('MPM_VSCODIUM',)
Provide a default for
--vscodium
- ('MPM_WINGET',)
Provide a default for
--winget
- ('MPM_YARN',)
Provide a default for
--yarn
- ('MPM_YAY',)
Provide a default for
--yay
- ('MPM_YUM',)
Provide a default for
--yum
- ('MPM_ZYPPER',)
Provide a default for
--zypper
- ('MPM_NO_APM',)
Provide a default for
--no-apm
- ('MPM_NO_APT',)
Provide a default for
--no-apt
- ('MPM_NO_APT_MINT',)
Provide a default for
--no-apt-mint
- ('MPM_NO_BREW',)
Provide a default for
--no-brew
- ('MPM_NO_CARGO',)
Provide a default for
--no-cargo
- ('MPM_NO_CASK',)
Provide a default for
--no-cask
- ('MPM_NO_CHOCO',)
Provide a default for
--no-choco
- ('MPM_NO_COMPOSER',)
Provide a default for
--no-composer
- ('MPM_NO_DNF',)
Provide a default for
--no-dnf
- ('MPM_NO_DNF5',)
Provide a default for
--no-dnf5
- ('MPM_NO_EMERGE',)
Provide a default for
--no-emerge
- ('MPM_NO_EOPKG',)
Provide a default for
--no-eopkg
- ('MPM_NO_FLATPAK',)
Provide a default for
--no-flatpak
- ('MPM_NO_FWUPD',)
Provide a default for
--no-fwupd
- ('MPM_NO_GEM',)
Provide a default for
--no-gem
- ('MPM_NO_MAS',)
Provide a default for
--no-mas
- ('MPM_NO_NPM',)
Provide a default for
--no-npm
- ('MPM_NO_OPKG',)
Provide a default for
--no-opkg
- ('MPM_NO_PACAUR',)
Provide a default for
--no-pacaur
- ('MPM_NO_PACMAN',)
Provide a default for
--no-pacman
- ('MPM_NO_PARU',)
Provide a default for
--no-paru
- ('MPM_NO_PIP',)
Provide a default for
--no-pip
- ('MPM_NO_PIPX',)
Provide a default for
--no-pipx
- ('MPM_NO_PKG',)
Provide a default for
--no-pkg
- ('MPM_NO_SCOOP',)
Provide a default for
--no-scoop
- ('MPM_NO_SNAP',)
Provide a default for
--no-snap
- ('MPM_NO_STEAMCMD',)
Provide a default for
--no-steamcmd
- ('MPM_NO_UV',)
Provide a default for
--no-uv
- ('MPM_NO_VSCODE',)
Provide a default for
--no-vscode
- ('MPM_NO_VSCODIUM',)
Provide a default for
--no-vscodium
- ('MPM_NO_WINGET',)
Provide a default for
--no-winget
- ('MPM_NO_YARN',)
Provide a default for
--no-yarn
- ('MPM_NO_YAY',)
Provide a default for
--no-yay
- ('MPM_NO_YUM',)
Provide a default for
--no-yum
- ('MPM_NO_ZYPPER',)
Provide a default for
--no-zypper
- ('MPM_ALL_MANAGERS',)
Provide a default for
-a
- ('MPM_XKCD',)
Provide a default for
-x
- ('MPM_MANAGER',)
Provide a default for
-m
- ('MPM_EXCLUDE',)
Provide a default for
-e
- ('MPM_IGNORE_AUTO_UPDATES',)
Provide a default for
--ignore-auto-updates
- ('MPM_STOP_ON_ERROR',)
Provide a default for
--stop-on-error
- ('MPM_DRY_RUN',)
Provide a default for
-d
- ('MPM_TIMEOUT',)
Provide a default for
-t
- ('MPM_DESCRIPTION',)
Provide a default for
--description
- ('MPM_SORT_BY',)
Provide a default for
-s
- ('MPM_STATS',)
Provide a default for
--stats
- ('MPM_BAR_PLUGIN_PATH',)
Provide a default for
--bar-plugin-path
- ('MPM_TIME',)
Provide a default for
--time
- ('MPM_COLOR',)
Provide a default for
--color
- ('MPM_CONFIG',)
Provide a default for
--config
- ('MPM_SHOW_PARAMS',)
Provide a default for
--show-params
- ('MPM_VERBOSITY',)
Provide a default for
--verbosity
- ('MPM_VERSION',)
Provide a default for
--version
- ('MPM_OUTPUT_FORMAT',)
Provide a default for
-o
backup¶
Dump the list of installed packages to a TOML file.
By default the generated TOML content is displayed directly in the console output. So mpm backup is the same as a call to mpm backup -. To have the result written in a file on disk, specify the output file like so: mpm backup packages.toml.
Files produced by this subcommand can be safely consumed by mpm restore.
Sections of the TOML file will be named after the manager ID. Sections are ordered in the same order as the manager selection priority. Each section will contain a list of package IDs and their installed version.
mpm backup [OPTIONS] [TOML_PATH]
Options
- --overwrite, --force, --replace¶
Allow the provided TOML file to be silently wiped out if it already exists.
- --merge¶
Read the provided TOML file and update each entry with the version currently installed on the system. Requires the [TOML_PATH] argument.
- --update-version¶
Read the provided TOML file and update each existing entry with the version currently installed on the system. Requires the [TOML_PATH] argument.
Arguments
- TOML_PATH¶
Optional argument
Environment variables
- ('BACKUP_OVERWRITE',)
Provide a default for
--overwrite
- ('BACKUP_MERGE',)
Provide a default for
--merge
- ('BACKUP_UPDATE_VERSION',)
Provide a default for
--update-version
cleanup¶
Cleanup local data, temporary artifacts and removes orphaned dependencies.
mpm cleanup [OPTIONS]
install¶
Install one or more packages.
This subcommand is sensible to the order of the package managers selected by the user.
Installation will first proceed for all the packages found to be tied to a specific manager. Which is the case for packages provided with precise package specifiers (like purl). This will also happens in situations in which a tighter selection of managers is provided by the user.
For packages whose manager is not known, or if multiple managers are candidates for the installation, mpm will try to find the best manager to install it with.
Installation will be attempted with each manager, in the order they were selected. If a search for the package ID returns no result from the highest-priority manager, we will skip the installation and try the next available managers in the order of their priority.
mpm install [OPTIONS] PACKAGES_SPECS...
Arguments
- PACKAGES_SPECS¶
Required argument(s)
A mix of plain <package_id>, simple <package_id@version> specifiers or full <pkg:npm/left-pad> purls.
installed¶
List all packages installed on the system by each manager.
mpm installed [OPTIONS]
Options
- -d, --duplicates¶
Only list installed packages sharing the same ID. Implies –sort_by package_id to make duplicates easier to compare between themselves.
Environment variables
- ('INSTALLED_DUPLICATES',)
Provide a default for
-d
managers¶
List all supported package managers and autodetect their presence on the system.
mpm managers [OPTIONS]
outdated¶
List available package upgrades and their versions for each manager.
mpm outdated [OPTIONS]
Options
- --plugin-output¶
Output results for direct consumption by an Xbar/SwiftBar-compatible plugin. The layout is dynamic and depends on environment variables set by either Xbar or SwiftBar.
Environment variables
- ('OUTDATED_PLUGIN_OUTPUT',)
Provide a default for
--plugin-output
remove¶
Remove one or more packages.
Packages recognized by multiple managers will be remove with each of them. You can fine-tune this behavior with more precise package specifiers (like purl) and/or tighter selection of managers.
Packages unrecognized by any selected manager will be skipped.
mpm remove [OPTIONS] PACKAGES_SPECS...
Arguments
- PACKAGES_SPECS¶
Required argument(s)
A mix of plain <package_id>, simple <package_id@version> specifiers or full <pkg:npm/left-pad> purls.
restore¶
Read TOML files then install or upgrade each package referenced in them.
mpm restore [OPTIONS] TOML_FILES...
Arguments
- TOML_FILES¶
Required argument(s)
sbom¶
Export list of installed packages to a SPDX or CycloneDX file.
mpm sbom [OPTIONS] [EXPORT_PATH]
Options
- --spdx, --cyclonedx¶
SBOM standard to export to.
- --format <format>¶
File format of the export. Defaults to JSON for <stdout>. If not provided, will be autodetected from file extension.
- Options:
json | xml | yaml | tag | rdf
- --overwrite, --force, --replace¶
Allow the target file to be silently wiped out if it already exists.
Arguments
- EXPORT_PATH¶
Optional argument
Environment variables
- ('SBOM_SPDX',)
Provide a default for
--spdx
- ('SBOM_FORMAT',)
Provide a default for
--format
- ('SBOM_OVERWRITE',)
Provide a default for
--overwrite
search¶
Search each manager for a package ID, name or description matching the query.
mpm search [OPTIONS] QUERY
Options
- --extended, --id-name-only¶
Extend search to description, instead of restricting it to package ID and name. Implies –description.
- --exact, --fuzzy¶
Only returns exact matches on package ID or name.
- --refilter, --no-refilter¶
Let mpm refilters managers’ search results.
Arguments
- QUERY¶
Required argument
Environment variables
- ('SEARCH_EXTENDED',)
Provide a default for
--extended
- ('SEARCH_EXACT',)
Provide a default for
--exact
- ('SEARCH_REFILTER',)
Provide a default for
--refilter
sync¶
Sync local package metadata and info from external sources.
mpm sync [OPTIONS]
upgrade¶
Upgrade one or more outdated packages.
All outdated package will be upgraded by default if no specifiers are provided as arguments. I.e. assumes -A/–all option if no [PACKAGES_SPECS]….
Packages recognized by multiple managers will be upgraded with each of them. You can fine-tune this behavior with more precise package specifiers (like purl) and/or tighter selection of managers.
Packages unrecognized by any selected manager will be skipped.
mpm upgrade [OPTIONS] [PACKAGES_SPECS]...
Options
- -A, --all¶
Upgrade all outdated packages. Will make the command ignore package IDs provided as parameters.
Arguments
- PACKAGES_SPECS¶
Optional argument(s)
A mix of plain <package_id>, simple <package_id@version> specifiers or full <pkg:npm/left-pad> purls.
Environment variables
- ('UPGRADE_ALL',)
Provide a default for
-A
which¶
Search from the user’s environment all CLIs matching the query.
This is mpm’s own version of the which -a UNIX command, used internally to locate binaries for each manager. It is exposed as a subcommand for convenience and to help troubleshoot CLI resolution logic.
Compared to the venerable which command, this will respect the additional path configured for each package manager. It will ignore files that are empty (0 size). On Windows, it additionally suppress the default lookup in the current directory, which takes precedence on other paths.
mpm which [OPTIONS] CLI_NAMES...
Arguments
- CLI_NAMES¶
Required argument(s)