PIPX(1)
PIPX π pipx(1) β the Generated Python Manual page, but make it make sense
okay bestie, sit DOWN. this is pipx(1) from the Generated Python Manual and it's literally the glow-up your Python CLI life has been waiting for. we're doing this in parts so hydrate π§
β¨ NAME β¨
pipx β Install and execute apps from Python packages. that's it. that's the whole vibe. π
β¨ SYNOPSIS β¨
pipx [-h] [--version] {install,install-
all,uninject,inject,pin,unpin,upgrade,upgrade-all,upgrade-
shared,uninstall,uninstall-all,reinstall,reinstall-
all,list,interpreter,run,runpip,ensurepath,environment,completions,help}
...
β¨ DESCRIPTION β¨
Install and execute apps from Python packages. no cap, that's the entire mission statement π«Ά
Binaries can either be installed globally into isolated Virtual Environments, or run directly in a temporary Virtual Environment. pick your fighter β¨
Virtual Environment location is ~/.local/share/pipx/venvs. Symlinks to apps are placed in ~/.local/bin. Symlinks to manual pages are placed in ~/.local/share/man. yes, your man pages get their own little home, they deserve it π
optional environment variables πΈ
PIPX_HOMEβ Overrides default pipx location. Virtual Environments will be installed to$PIPX_HOME/venvs.PIPX_GLOBAL_HOMEβ Used instead ofPIPX_HOMEwhen the--globaloption is given.PIPX_BIN_DIRβ Overrides location of app installations. Apps are symlinked or copied here.PIPX_GLOBAL_BIN_DIRβ Used instead ofPIPX_BIN_DIRwhen the--globaloption is given.PIPX_MAN_DIRβ Overrides location of manual pages installations. Manual pages are symlinked or copied here.PIPX_GLOBAL_MAN_DIRβ Used instead ofPIPX_MAN_DIRwhen the--globaloption is given.PIPX_DEFAULT_PYTHONβ Overrides default python used for commands.PIPX_DEFAULT_BACKENDβ Overrides which backend (piporuv) is used for new venvs.PIPX_DISABLE_SHARED_LIBS_AUTO_UPGRADEβ Skips automatic shared library upgrades.PIPX_USE_EMOJIβ Overrides emoji behavior. Default value varies based on platform. (yes this is REAL and yes it's iconic π)PIPX_HOME_ALLOW_SPACEβ Overrides default warning on spaces in the home path.
β¨ OPTIONS β¨
--versionβ Print version and exit. short and sweet, main character behavior π
β¨ SUBCOMMANDS β¨ π¦
so many little guys. here's the whole roster:
pipx installβ Install a packagepipx install-allβ Install all packagespipx uninjectβ Uninstall injected packages from an existing Virtual Environmentpipx injectβ Install packages into an existing Virtual Environmentpipx pinβ Pin the specified package to prevent it from being upgradedpipx unpinβ Unpin the specified packagepipx upgradeβ Upgrade a packagepipx upgrade-allβ Upgrade all packages. Runspip install -U <pkgname>for each package.pipx upgrade-sharedβ Upgrade shared libraries.pipx uninstallβ Uninstall a packagepipx uninstall-allβ Uninstall all packagespipx reinstallβ Reinstall a packagepipx reinstall-allβ Reinstall all packagespipx listβ List installed packagespipx interpreterβ Interact with interpreters managed by pipxpipx runβ Download the latest version of a package to a temporary virtual environment, then run an app from it. Also compatible with local__pypackages__directory (experimental).pipx runpipβ Run pip in an existing pipx-managed Virtual Environmentpipx ensurepathβ Ensure directories necessary for pipx operation are in your PATH environment variable.pipx environmentβ Print a list of environment variables and paths used by pipx.pipx completionsβ Print instructions on enabling shell completions for pipxpipx helpβ Show help for pipx or a command
COMMAND pipx install π
usage π
usage: pipx install [-h] [--quiet] [--verbose] [--global] [--include-deps]
[--force] [--suffix SUFFIX] [--python PYTHON]
[--fetch-python {always,missing,never} |
--fetch-missing-python] [--preinstall PREINSTALL]
[--system-site-packages] [--index-url INDEX_URL]
[--editable] [--pip-args PIP_ARGS] [--backend {pip,uv}]
package_spec [package_spec ...]
okay so this is THE command. the moment. the install command is the preferred way to globally install apps from python packages on your system. It creates an isolated virtual environment for the package, then ensures the package's apps are accessible on your $PATH. The package's manual pages installed in share/man/man[1-9] can be viewed with man on an operating system where it is available and the path in the environment variable PIPX_MAN_DIR (default: ~/.local/share/man) is in the man search path ($MANPATH).
The result: apps you can run from anywhere, located in packages you can cleanly upgrade or uninstall. Guaranteed to not have dependency version conflicts or interfere with your OS's python packages. sudo is not required to do this. literally no sudo, no drama, no "permission denied" crying at 2am ππ«Ά
the shapes it comes in β¨
pipx install PACKAGE_SPEC ... pipx install --python PYTHON PACKAGE_SPEC
pipx install VCS_URL pipx install ./LOCAL_PATH pipx install ZIP_FILE
pipx install TAR_GZ_FILE
The PACKAGE_SPEC argument is passed directly to pip install. straight through, no middleman, we respect it π
Virtual Environments will be installed to $PIPX_HOME/venvs. The default pipx home location is ~/.local/share/pipx and can be overridden by setting the environment variable PIPX_HOME. If the --global option is used, the default pipx home location instead is /opt/pipx and can be overridden by setting the environment variable PIPX_GLOBAL_HOME.
The default app location is ~/.local/bin and can be overridden by setting the environment variable PIPX_BIN_DIR. If the --global option is used, the default app location instead is /usr/local/bin and can be overridden by setting the environment variable PIPX_GLOBAL_BIN_DIR.
The default manual pages location is ~/.local/share/man and can be overridden by setting the environment variable PIPX_MAN_DIR. If the --global option is used, the default manual pages location instead is /usr/local/share/man and can be overridden by setting the environment variable PIPX_GLOBAL_MAN_DIR.
The default python executable used to install a package is /usr/bin/python3.14 and can be overridden by setting the environment variable PIPX_DEFAULT_PYTHON. (three point fourteen bestie, we are LIVING in the future π)
positional argument π―
package_specβ package name(s) or pip installation spec(s)
β¨ OPTIONS pipx install β¨ π
--quiet,-qβ Give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging levels. The count maxes out at 2. (shhh mode π€«)--verbose,-vβ Give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3. (tell me EVERYTHING π£οΈ)--globalβ Perform action globally for all users.--include-depsβ Include apps of dependent packages--force,-fβ Modify existing virtual environment and files inPIPX_BIN_DIRandPIPX_MAN_DIR--suffix SUFFIXβ Optional suffix for virtual environment and executable names.--python PYTHONβ Python to install with. Possible values can be the executable name (python3.11), the version of an available system Python or to pass to py launcher (3.11), or the full path to the executable. Requires Python 3.10 or above.--fetch-python {always,missing,never}β When to fetch a standalone Python build from python-build-standalone.'always'always downloads (ignores any system Python);'missing'downloads only when the requested version is not found locally;'never'never downloads. Defaults toPIPX_FETCH_PYTHON, or'never'.--fetch-missing-pythonβ Deprecated: alias for--fetch-python=missing. (it's giving legacy, still works tho π«Ά)--preinstall PREINSTALLβ Optional package to be installed into the Virtual Environment before installing the main package. Use this flag multiple times if you want to preinstall multiple packages.--system-site-packagesβ Give the virtual environment access to the system site-packages dir.--index-url INDEX_URL,-i INDEX_URLβ Base URL of Python Package Index--editable,-eβ Install a project in editable mode--pip-args PIP_ARGSβ Arbitrary pip arguments to pass directly to pip install/upgrade commands. Under the uv backend a small subset is translated (--index-url,--extra-index-url,--find-links,--pre); other flags raise an error so behaviour stays explicit.--backend {pip,uv}β Backend used for creating venvs and managing packages. Defaults toPIPX_DEFAULT_BACKENDwhen set, else'uv'when uv is available (via thepipx[uv]extra or on PATH), else'pip'. Existing venvs always honor their recorded backend unless this flag is given.
lowkey important: that --pip-args one? under uv, only a small subset gets translated and other flags will straight up raise an error. it's on purpose so behaviour stays explicit. not a bug, a boundary bestie π§
COMMAND pipx install-all πΈ
usage π
usage: pipx install-all [-h] [--quiet] [--verbose] [--global] [--force]
[--python PYTHON]
[--fetch-python {always,missing,never} |
--fetch-missing-python] [--system-site-packages]
[--index-url INDEX_URL] [--editable]
[--pip-args PIP_ARGS] [--backend {pip,uv}]
spec_metadata_file
Installs all the packages according to spec metadata file. it's the "do the whole list at once" button and honestly? iconic π
positional argument π―
spec_metadata_fileβ Spec metadata file generated frompipx list --json
β¨ OPTIONS for pipx install-all β¨
--quiet,-qβ bestie, give me less. Stack it up to match the ERROR and CRITICAL logging levels, and the count maxes out at 2. π€--verbose,-vβ okay now give me more. Stack it up to match the INFO, DEBUG and NOTSET logging levels, and the count maxes out at 3. π£οΈ--globalβ do the thing globally, for all users. π--force,-fβ modify the existing virtual environment and the files inPIPX_BIN_DIRandPIPX_MAN_DIR. π§--python PYTHONβ the Python to install with. Possible values can be the executable name (python3.11), the version of an available system Python or something to pass to the py launcher (3.11), or the full path to the executable. Requires Python 3.10 or above. π--fetch-python {always,missing,never}β when to fetch a standalone Python build from python-build-standalone.'always'always downloads (ignores any system Python);'missing'downloads only when the requested version is not found locally;'never'never downloads. Defaults toPIPX_FETCH_PYTHON, or'never'. β¨--fetch-missing-pythonβ Deprecated: alias for--fetch-python=missing. (she's retired but still showing up to the party π)--system-site-packagesβ give the virtual environment access to the system site-packages dir. π«Ά--index-url INDEX_URL,-i INDEX_URLβ base URL of Python Package Index. π--editable,-eβ install a project in editable mode. βοΈ--pip-args PIP_ARGSβ arbitrary pip arguments to pass directly topip install/upgradecommands. Under the uv backend a small subset is translated (--index-url,--extra-index-url,--find-links,--pre); other flags raise an error so behaviour stays explicit. π--backend {pip,uv}β backend used for creating venvs and managing packages. Defaults toPIPX_DEFAULT_BACKENDwhen set, else'uv'when uv is available (via thepipx[uv]extra or on PATH), else'pip'. Existing venvs always honor their recorded backend unless this flag is given. π§
π
COMMAND pipx uninject π
usage: pipx uninject [-h] [--quiet] [--verbose] [--global] [--leave-deps]
package dependencies [dependencies ...]
Uninstalls injected packages from an existing pipx-managed virtual environment. Like un-inviting someone from the group chat, but for packages. πͺ
packageβ name of the existing pipx-managed Virtual Environment to inject into.dependenciesβ the package names to uninject from the Virtual Environment.
β¨ OPTIONS for pipx uninject β¨
--quiet,-qβ less output, queen. Stack it to match the ERROR and CRITICAL logging levels; count maxes out at 2.--verbose,-vβ more output. Stack it to match the INFO, DEBUG and NOTSET logging levels; count maxes out at 3.--globalβ perform action globally for all users. π--leave-depsβ only uninstall the main injected package but leave its dependencies installed. Iconic minimal-effort behaviour, honestly. π
π COMMAND pipx inject π
usage: pipx inject [-h] [--quiet] [--verbose] [--global] [-r file]
[--include-apps] [--include-deps]
[--system-site-packages]
[--index-url INDEX_URL] [--editable] [--pip-args PIP_ARGS]
[--force] [--with-suffix] [--backend {pip,uv}]
package [dependencies ...]
Installs packages to an existing pipx-managed virtual environment. Sliding extra packages straight into an env that's already living its best life. π
packageβ name of the existing pipx-managed Virtual Environment to inject into.dependenciesβ the packages to inject into the Virtual Environment β either package name or pip package spec.
β¨ OPTIONS for pipx inject β¨
--quiet,-qβ give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3.--globalβ perform action globally for all users. π-r file,--requirement fileβ file containing the packages to inject into the Virtual Environment β one package name or pip package spec per line. May be specified multiple times. π--include-appsβ add apps from the injected packages onto yourPATHand expose their manual pages. π--include-depsβ include apps of dependent packages. Implies--include-apps. πͺ--system-site-packagesβ give the virtual environment access to the system site-packages dir.--index-url INDEX_URL,-i INDEX_URLβ base URL of Python Package Index. π--editable,-eβ install a project in editable mode. βοΈ--pip-args PIP_ARGSβ arbitrary pip arguments to pass directly topip install/upgradecommands. Under the uv backend a small subset is translated (--index-url,--extra-index-url,--find-links,--pre); other flags raise an error so behaviour stays explicit. π--force,-fβ modify existing virtual environment and files inPIPX_BIN_DIRandPIPX_MAN_DIR. π§--with-suffixβ add the suffix (if given) of the Virtual Environment to the packages to inject. π·οΈ--backend {pip,uv}β backend used for creating venvs and managing packages. Defaults toPIPX_DEFAULT_BACKENDwhen set, else'uv'when uv is available (via thepipx[uv]extra or on PATH), else'pip'. Existing venvs always honor their recorded backend unless this flag is given. π§
π COMMAND pipx pin π
usage: pipx pin [-h] [--quiet] [--verbose] [--global] [--injected-only]
[--skip SKIP [SKIP ...]]
package
Pin the specified package to prevent it from being upgraded. Basically putting a "do not touch, she's thriving" sticker on it. π
packageβ installed package to pin.
β¨ OPTIONS for pipx pin β¨
--quiet,-qβ give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3.--globalβ perform action globally for all users. π--injected-onlyβ pin injected packages in venv only, so that they will not be upgraded during upgrade operations. Note that this should not be passed if you wish to pin both main package and injected packages. β οΈ--skip SKIP [SKIP ...]β skip these packages. Implies--injected-only.
π¦ COMMAND pipx unpin π¦
usage: pipx unpin [-h] [--quiet] [--verbose] [--global] package
Unpin the specified package and all injected packages in its venv to allow them to be upgraded. Free them, bestie, they've been in the house too long. ποΈ
packageβ installed package to unpin.
β¨ OPTIONS for pipx unpin β¨
--quiet,-qβ give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3.--globalβ perform action globally for all users. π
π₯ COMMAND pipx upgrade π₯
usage: pipx upgrade [-h] [--quiet] [--verbose] [--global] [--include-injected]
[--force] [--system-site-packages] [--index-url INDEX_URL]
[--editable] [--pip-args PIP_ARGS] [--install]
[--python PYTHON] [--fetch-python {always,missing,never} |
--fetch-missing-python] [--backend {pip,uv}]
packages [packages ...]
Upgrade package(s) in pipx-managed Virtual Environment(s) by running 'pip install --upgrade PACKAGE'. Glow-up time. β¨
packagesβ package names(s) to upgrade.
β¨ OPTIONS for pipx upgrade β¨
--quiet,-qβ give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3.--globalβ perform action globally for all users. π--include-injectedβ also upgrade packages injected into the main app's environment. π--force,-fβ modify existing virtual environment and files inPIPX_BIN_DIRandPIPX_MAN_DIR. π§--system-site-packagesβ give the virtual environment access to the system site-packages dir.--index-url INDEX_URL,-i INDEX_URLβ base URL of Python Package Index. π--editable,-eβ install a project in editable mode. βοΈ--pip-args PIP_ARGSβ arbitrary pip arguments to pass directly topip install/upgradecommands. Under the uv backend a small subset is translated (--index-url,--extra-index-url,--find-links,--pre); other flags raise an error so behaviour stays explicit. π--installβ install package spec if missing.--python PYTHONβ Python to install with. Possible values can be the executable name (python3.11), the version of an available system Python or to pass to py launcher (3.11), or the full path to the executable. Requires Python 3.10 or above. π--fetch-python {always,missing,never}β when to fetch a standalone Python build from python-build-standalone.'always'always downloads (ignores any system Python);'missing'downloads only when the requested version is not found locally;'never'never downloads. Defaults toPIPX_FETCH_PYTHON, or'never'. β¨--fetch-missing-pythonβ Deprecated: alias for--fetch-python=missing.--backend {pip,uv}β backend used for creating venvs and managing packages. Defaults toPIPX_DEFAULT_BACKENDwhen set, else'uv'when uv is available (via thepipx[uv]extra or on PATH), else'pip'. Existing venvs always honor their recorded backend unless this flag is given. π§
π COMMAND pipx upgrade-all π
usage: pipx upgrade-all [-h] [--quiet] [--verbose] [--global]
[--include-injected] [--skip SKIP [SKIP ...]]
[--force] [--system-site-packages]
[--index-url INDEX_URL] [--editable]
[--pip-args PIP_ARGS] [--backend {pip,uv}]
Upgrades all packages within their virtual environments by running 'pip install --upgrade PACKAGE'. Every single one of them. No stragglers. π
OPTIONS β¨ pipx upgrade-all
--quiet,-qβ gives you less output. Stack it up multiple times to match the ERROR and CRITICAL logging levels, bestie. The count maxes out at 2.--verbose,-vβ gives you more output. Use it multiple times to match the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3.--globalβ do the thing globally, for all users. π--include-injectedβ also upgrade the packages injected into the main app's environment π«Ά--skip SKIP [SKIP ...]β skip these packages, periodt. π«--force,-fβ modify the existing virtual environment and the files inPIPX_BIN_DIRandPIPX_MAN_DIR--system-site-packagesβ gives the virtual environment access to the system site-packages dir.--index-url INDEX_URL,-i INDEX_URLβ base URL of the Python Package Index π--editable,-eβ install a project in editable mode--pip-args PIP_ARGSβ arbitrary pip arguments to pass directly topip install/upgradecommands. Under the uv backend a small subset gets translated (--index-url,--extra-index-url,--find-links,--pre); other flags raise an error so the behaviour stays explicit, no surprises β¨--backend {pip,uv}β the backend used for creating venvs and managing packages. Defaults toPIPX_DEFAULT_BACKENDwhen set, else'uv'when uv is available (via thepipx[uv]extra or on PATH), else'pip'. Existing venvs always honor their recorded backend unless this flag is given. π
COMMAND πΈ pipx upgrade-shared
usage: pipx upgrade-shared [-h] [--quiet] [--verbose] [--global]
[--pip-args PIP_ARGS]
Upgrade the shared libraries. glowed up and ready π
OPTIONS π pipx upgrade-shared
--quiet,-qβ give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3.--globalβ perform action globally for all users. π--pip-args PIP_ARGSβ arbitrary pip arguments to pass directly topip install/upgradecommands
COMMAND π¦ pipx uninstall
usage: pipx uninstall [-h] [--quiet] [--verbose] [--global] package
Uninstalls a pipx-managed Virtual Environment by deleting it and any files that point to its apps. it's giving clean slate energy β¨
package
OPTIONS π pipx uninstall
--quiet,-qβ give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3.--globalβ perform action globally for all users. π
COMMAND π pipx uninstall-all
usage: pipx uninstall-all [-h] [--quiet] [--verbose] [--global]
Uninstall all pipx-managed packages. no cap, every single one π
OPTIONS π pipx uninstall-all
--quiet,-qβ give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3.--globalβ perform action globally for all users. π
COMMAND β pipx reinstall
usage: pipx reinstall [-h] [--quiet] [--verbose] [--global] [--python
PYTHON]
[--fetch-python {always,missing,never} |
--fetch-missing-python] [--backend {pip,uv}]
package
Reinstalls a package. π
The package is uninstalled, then installed with pipx install PACKAGE using the same options used in the original install of PACKAGE. it remembers what you asked for the first time, iconic behaviour fr fr
package
OPTIONS π pipx reinstall
--quiet,-qβ give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3.--globalβ perform action globally for all users. π--python PYTHONβ the Python to install with. Possible values can be the executable name (python3.11), the version of an available system Python or one to pass to the py launcher (3.11), or the full path to the executable. Requires Python 3.10 or above. π--fetch-python {always,missing,never}β when to fetch a standalone Python build from python-build-standalone.'always'always downloads (ignores any system Python);'missing'downloads only when the requested version is not found locally;'never'never downloads. Defaults toPIPX_FETCH_PYTHON, or'never'.--fetch-missing-pythonβ Deprecated: alias for--fetch-python=missing.--backend {pip,uv}β backend used for creating venvs and managing packages. Defaults toPIPX_DEFAULT_BACKENDwhen set, else'uv'when uv is available (via thepipx[uv]extra or on PATH), else'pip'. Existing venvs always honor their recorded backend unless this flag is given. π
COMMAND π pipx reinstall-all
usage: pipx reinstall-all [-h] [--quiet] [--verbose] [--global]
[--python PYTHON]
[--fetch-python {always,missing,never} |
--fetch-missing-python] [--skip SKIP [SKIP
...]]
[--backend {pip,uv}]
Reinstalls all packages. β¨
Packages are uninstalled, then installed with pipx install PACKAGE with the same options used in the original install of PACKAGE. This is useful if you upgraded to a new version of Python and want all your packages to use the latest as well. new Python, who dis π
OPTIONS π pipx reinstall-all
--quiet,-qβ give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3.--globalβ perform action globally for all users. π--python PYTHONβ Python to install with. Possible values can be the executable name (python3.11), the version of an available system Python or to pass to py launcher (3.11), or the full path to the executable. Requires Python 3.10 or above. π--fetch-python {always,missing,never}β when to fetch a standalone Python build from python-build-standalone.'always'always downloads (ignores any system Python);'missing'downloads only when the requested version is not found locally;'never'never downloads. Defaults toPIPX_FETCH_PYTHON, or'never'.--fetch-missing-pythonβ Deprecated: alias for--fetch-python=missing.--skip SKIP [SKIP ...]β skip these packages π«--backend {pip,uv}β backend used for creating venvs and managing packages. Defaults toPIPX_DEFAULT_BACKENDwhen set, else'uv'when uv is available (via thepipx[uv]extra or on PATH), else'pip'. Existing venvs always honor their recorded backend unless this flag is given. π
COMMAND π§ pipx list
usage: pipx list [-h] [--quiet] [--verbose] [--global]
[--include-injected]
[--json | --short | --pinned | --skip-maintenance]
List the packages and apps installed with pipx. your little roster, bestie ππ
OPTIONS π pipx list
--quiet,-qβ give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3.--globalβ perform action globally for all users. π--include-injectedβ show packages injected into the main app's environment π«Ά--jsonβ output rich data in json format.--shortβ list packages only.--pinnedβ list pinned packages only. Pass--include-injectedat the same time to list injected packages that were pinned. π--skip-maintenanceβ (deprecated) no-op. literally does nothing, don't stress π
COMMAND πΈ pipx interpreter
usage: pipx interpreter [-h] [--quiet] [--verbose] [--global]
{list,prune,upgrade} ...
Interact with interpreters managed by pipx. πβ¨
OPTIONS π pipx interpreter
--quiet,-qβ give less output. May be used multiple times corresponding to the ERROR and CRITICAL logging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to the INFO, DEBUG and NOTSET logging levels. The count maxes out at 3.--globalβ perform action globally for all users. π
SUBCOMMANDS π pipx interpreter
pipx interpreter listβ list available interpreterspipx interpreter pruneβ prune unused interpreterspipx interpreter upgradeβ upgrade installed interpreters to the latest available micro/patch version
COMMAND π¦ pipx interpreter list
usage: pipx interpreter list [-h]
List available interpreters π
COMMAND π pipx interpreter prune
usage: pipx interpreter prune [-h]
Prune unused interpreters βοΈ no dead weight around here
COMMAND β pipx interpreter upgrade
usage: pipx interpreter upgrade [-h]
Upgrade installed interpreters to the latest available micro/patch version π₯
COMMAND π
pipx run
usage: pipx run [-h] [--quiet] [--verbose] [--global] [--no-cache]
[--no-path-check] [--path] [--pypackages] [--with WITH_]
[--spec SPEC] [--python PYTHON]
[--fetch-python {always,missing,never} |
--fetch-missing-python] [--system-site-packages]
[--index-url INDEX_URL] [--editable] [--pip-args
PIP_ARGS]
[--backend {pip,uv}]
app ...
Download the latest version of a package to a temporary virtual environment, then run an app from it. The environment will be cached and reused for up to 14 days. This means subsequent calls to 'run' for the same package will be faster since they can reuse the cached Virtual Environment. speed, bestie ποΈβ¨
In support of PEP 582 'run' will use apps found in a local __pypackages__ directory, if present. Please note that this behavior is experimental, and acts as a companion tool to pythonloc. It may be modified or removed in the future. See https://github.com/cs01/pythonloc.
heads up: that __pypackages__ thing is experimental β it could get changed or yeeted entirely later, so don't build your whole personality around it π
app ... β app/package name and any arguments to be passed to it π«Ά
β¨ OPTIONS 'pipx run' β¨
okay bestie these are the little dials and switches for pipx run π
every single one, no skipping
--quiet,-qβ less yapping please π stack it up multiple times to match theERRORandCRITICALlogging levels, but it caps out at 2. two is the limit, she's done.--verbose,-vβ more yapping actually π£οΈ stack it up multiple times to match theINFO,DEBUGandNOTSETlogging levels, and the count maxes out at 3.--globalβ do the thing globally, for all users π--no-cacheβ don't reuse a cached virtual environment even if one exists, we're starting fresh bestie β¨--no-path-checkβ skip checking whether the app is already onPATH--pathβ treat the app name as a local path π--pypackagesβ require the app to be run from the local__pypackages__directory--with WITH_β extra dependencies to add to the temporary environment π--spec SPECβ the package name or a specific installation source that gets passed to pip. It runspip install -U SPEC. Like--spec mypackage==2.0.0or--spec git+https://github.com/user/repo.git@branchπ--python PYTHONβ which Python to install with π possible values are the executable name (python3.11), the version of an available system Python or a version to pass to the py launcher (3.11), or the full path to the executable. Requires Python 3.10 or above.--fetch-python {always,missing,never}β when to fetch a standalone Python build from python-build-standalone.'always'always downloads (ignores any system Python),'missing'downloads only when the requested version isn't found locally,'never'never downloads. Defaults toPIPX_FETCH_PYTHON, or'never'.--fetch-missing-pythonβ deprecated π© it's just an alias for--fetch-python=missing.--system-site-packagesβ give the virtual environment access to the system site-packages dir π--index-url INDEX_URL,-i INDEX_URLβ base URL of the Python Package Index--editable,-eβ install a project in editable mode βοΈ--pip-args PIP_ARGSβ arbitrary pip arguments passed straight through to the pip install/upgrade commands. Under the uv backend a small subset gets translated (--index-url,--extra-index-url,--find-links,--pre); other flags raise an error so behaviour stays explicit. no sneaky surprises fr fr--backend {pip,uv}β the backend used for creating venvs and managing packages. Defaults toPIPX_DEFAULT_BACKENDwhen it's set, otherwise'uv'when uv is available (via thepipx[uv]extra or onPATH), otherwise'pip'. Existing venvs always honor their recorded backend unless you actually pass this flag. π
π§ COMMAND 'pipx runpip' π§
usage: pipx runpip [-h] [--quiet] [--verbose] [--global] package ...
Run pip inside an existing pipx-managed Virtual Environment π«Ά
packageβ name of the existing pipx-managed Virtual Environment you want to run pip inpipargsβ arguments to forward to the pip command
β¨ OPTIONS 'pipx runpip' β¨
--quiet,-qβ less output please. May be used multiple times corresponding to theERRORandCRITICALlogging levels. The count maxes out at 2.--verbose,-vβ more output please. May be used multiple times corresponding to theINFO,DEBUGandNOTSETlogging levels. The count maxes out at 3.--globalβ perform the action globally for all users π
πΈ COMMAND 'pipx ensurepath' πΈ
usage: pipx ensurepath [-h] [--quiet] [--verbose] [--global] [--prepend]
[--force] [--all-shells] [--dry-run]
Make sure the directory where pipx stores apps is in your PATH environment variable π£οΈ Also, if pipx was installed via pip install --user, make sure pipx itself is in your PATH. Heads up bestie: running this may modify your shell's configuration file(s), like '~/.bashrc'. it's giving "helpful but also touching your dotfiles" π
β¨ OPTIONS 'pipx ensurepath' β¨
--quiet,-qβ give less output. May be used multiple times corresponding to theERRORandCRITICALlogging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to theINFO,DEBUGandNOTSETlogging levels. The count maxes out at 3.--globalβ perform the action globally for all users π--prependβ prepend directories to yourPATHinstead of appending. super useful if you want to prioritize pipx apps over system apps π--force,-fβ add text to your shell's config file even if it looks like yourPATHalready contains paths to pipx and pipx-install apps. she's not asking, she's doing it--all-shellsβ add directories toPATHin all shells instead of just the current one πππ--dry-runβ report what would be added toPATHwithout modifyingPATHor any shell config file. window shopping only ποΈ
π¦ COMMAND 'pipx environment' π¦
usage: pipx environment [-h] [--quiet] [--verbose] [--global]
[--value VARIABLE]
Prints the names and current values of environment variables used by pipx, followed by internal pipx variables which are derived from the environment variables and platform specific default values π
Available variables: PIPX_HOME, PIPX_GLOBAL_HOME, PIPX_BIN_DIR, PIPX_GLOBAL_BIN_DIR, PIPX_MAN_DIR, PIPX_GLOBAL_MAN_DIR, PIPX_SHARED_LIBS, PIPX_DEFAULT_PYTHON, PIPX_DEFAULT_BACKEND, PIPX_FETCH_MISSING_PYTHON, PIPX_FETCH_PYTHON, PIPX_DISABLE_SHARED_LIBS_AUTO_UPGRADE, PIPX_USE_EMOJI, PIPX_HOME_ALLOW_SPACE
β¨ OPTIONS 'pipx environment' β¨
--quiet,-qβ give less output. May be used multiple times corresponding to theERRORandCRITICALlogging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to theINFO,DEBUGandNOTSETlogging levels. The count maxes out at 3.--globalβ perform the action globally for all users π--value VARIABLE,-V VARIABLEβ print the value of the variable. just the value, bestie, no extras β
π COMMAND 'pipx completions' π
usage: pipx completions [-h] [--quiet] [--verbose] [--global]
Print instructions on enabling shell completions for pipx β¨οΈβ¨ (yes she does tab-complete, icon behaviour)
β¨ OPTIONS 'pipx completions' β¨
--quiet,-qβ give less output. May be used multiple times corresponding to theERRORandCRITICALlogging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to theINFO,DEBUGandNOTSETlogging levels. The count maxes out at 3.--globalβ perform the action globally for all users π
π COMMAND 'pipx help' π
usage: pipx help [-h] [--quiet] [--verbose] [--global]
Show help for pipx or a command π«Ά the "bestie I forgot how this works" button
β¨ OPTIONS 'pipx help' β¨
--quiet,-qβ give less output. May be used multiple times corresponding to theERRORandCRITICALlogging levels. The count maxes out at 2.--verbose,-vβ give more output. May be used multiple times corresponding to theINFO,DEBUGandNOTSETlogging levels. The count maxes out at 3.--globalβ perform the action globally for all users π
π AUTHORS π
pipx(1) was written by Chad Smith and contributors π The project can be found online at https://pipx.pypa.io β go say hi, she's thriving
π SEE ALSO π
and that's a wrap on the whole page bestie, you read all of it and I'm so proud of you ππ this one was pipx, dated 2026-07-21, from the pipx source. go install something cute, you've earned it. periodt π
β¨
π¦ where this page comes from
- fedora 43: pipx 1.15.0-2.fc43 Β· MIT
- fedora 44: pipx 1.15.0-2.fc44 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms