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.

-h, --help

Show this message 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_HELP',)

Provide a default for --help

('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

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)