Manage installed apps

List, upgrade, and remove the apps pipx manages, then confirm each change.

List apps

$ pipx list

The output shows each package version, its apps, and the environment paths. Narrow or reshape it:

  • pipx list --short prints package names and versions only.

  • pipx list --include-injected also lists packages injected into each environment.

  • pipx list --outdated lists environments with an available upgrade.

  • pipx list --pinned lists pinned environments only.

Upgrade one

$ pipx upgrade black

Add --include-injected to upgrade injected packages alongside the main app. Pass --install to install the package spec when it is missing rather than error.

pipx exposes any apps, manual pages, and shell completions the new version adds, and removes the ones it no longer ships, so pipx list and PIPX_BIN_DIR match the upgraded package. upgrade-all and pipx install --upgrade do the same.

Verify:

$ pipx list --short

Upgrade all

$ pipx upgrade-all

Use --skip PKG ... to leave named environments untouched, and --include-injected to include injected packages. pipx skips pinned environments; see Pin packages.

pipx upgrades up to eight environments at once and prints their output in environment order, as a one-at-a-time run would. An app, manual page, or completion that several environments expose ends up with the same environment as in a one-at-a-time run. A failed environment does not stop the others. pip and uv cannot prompt for input, such as index credentials, during any pipx command other than pipx runpip. Pass --verbose to upgrade them one at a time.

Ctrl-C, SIGTERM or SIGHUP stops pipx from starting more upgrades, and pipx finishes the ones already in progress before it exits, since an upgrade cut short leaves an environment with a mix of old and new files. Press Ctrl-C again to stop those too. pipx then reports each environment it stopped mid-upgrade, pipx list flags it, and the next pipx upgrade-all, pipx upgrade or pipx reinstall of it reinstalls it from its metadata. With --verbose the first Ctrl-C already stops the running upgrade.

Verify:

$ pipx list --outdated

Uninstall one

$ pipx uninstall black

pipx deletes the environment and unlinks its apps, manual pages, and shell completions.

Verify:

$ pipx list --short

Uninstall all

$ pipx uninstall-all

Record what you have first with pipx list --short if you plan to reinstall later.

Verify:

$ pipx list

Reinstall one

Rebuild an environment from its recorded metadata, keeping the same options as the original install. Reach for it after a Python upgrade or to repair a broken environment.

$ pipx reinstall black

Pass --python to rebuild under another interpreter. pipx install --force keeps the environment’s interpreter and ignores --python.

Verify:

$ pipx list --short

Reinstall all

$ pipx reinstall-all

Run it after installing a new Python version so every app moves to it. Use --python to target a specific interpreter and --skip PKG ... to exclude environments.

pipx rebuilds up to eight environments at once (fewer on machines with fewer CPUs) and holds back the output of each until the ones before it finish, so it reads the same as a one-at-a-time run. Resources that several environments expose, failed environments and credential prompts work as described for upgrade-all above. Pass --verbose to rebuild them one at a time and watch the pip or uv output as it happens.

Ctrl-C, SIGTERM or SIGHUP stops the rebuilds in progress and restores each of those environments from its backup; the environments already rebuilt keep their new build.

Verify:

$ pipx list

Tip

To check environments without changing them, or to repair only the broken ones, see Diagnose and repair environments.