On-disk metadata¶
pipx has no user configuration file. It is configured only through environment variables. The only per-installation state pipx keeps is a metadata file inside each managed virtual environment.
Every environment under $PIPX_HOME/venvs/<environment>/ holds a pipx_metadata.json file. pipx writes it after
each operation and reads it to drive list, upgrade, reinstall, uninstall, and the rest. Treat it as
pipx-owned; pipx rewrites it atomically and may change its shape between versions.
The current schema version is 0.12 (pipx_metadata_version). pipx migrates older files forward on read.
Top-level fields¶
Field |
Meaning |
|---|---|
|
Schema version string, currently |
|
The environment (venv) name, or |
|
Package record for the installed application (see below). |
|
Map of injected package name to its package record. |
|
Python version the environment was created with, or |
|
Path to the interpreter used to create the environment, or |
|
Extra arguments passed when the venv was created (for example |
|
Backend that manages the environment, |
|
Whether the environment’s apps and man pages are currently exposed on |
Package records¶
main_package and each entry in injected_packages share this shape:
Field |
Meaning |
|---|---|
|
Canonical package name, or |
|
The install source as given: a package name, path, or URL. |
|
Resolved installed version. |
|
Arguments forwarded to the backend at install time. |
|
Whether apps and man pages from all dependencies are exposed. |
|
Dependencies whose apps and man pages are exposed individually. |
|
Whether this package’s own apps are exposed. Always true for |
|
App names and their paths inside the environment. |
|
Apps contributed by dependencies, and their paths keyed by dependency. |
|
Man page names and their paths inside the environment. |
|
Man pages contributed by dependencies, and their paths keyed by dependency. |
|
Shell completion names and their paths inside the environment. |
|
Completions contributed by dependencies, and their paths keyed by dependency. |
|
Apps required after install via |
|
Path to the |
|
Index-artifact cooldown recorded for the install, or |
|
Suffix appended to the environment and executable names, or empty. |
|
Whether the package is pinned against upgrades. |
Note
Path values are encoded as {"__type__": "Path", "__Path__": "<path>"} so pipx can round-trip them across
platforms. The same snapshot, wrapped under pipx_spec_version and a venvs map, is what pipx list --output
json emits and pipx install-all consumes (see JSON output).