python-pipx is an open-source command-line tool that installs and runs Python applications each in its own isolated environment, so their dependencies never collide with each other or with system packages, and it is free to use. It works by wrapping pip, exposing an app's CLI entry points after install, or running one ad hoc in a throwaway environment with run, all under normal user permissions rather than sudo. Its README compares it to macOS's brew, npm's npx, and Linux's apt, and the audience is developers and anyone scripting machine setup or CI who needs Python-based CLI tools available without polluting a global interpreter. First committed in 2018, it remains active with 217 contributors, 230 commits in the past year, and a release only 17 days old.
The python-pipx CLI installs and runs Python applications in isolated environments while exposing their commands on the user's PATH.
How do I get a Python command-line tool onto my machine without it fighting other tools' dependencies?
it builds a dedicated environment for that package and installs it there, so nothing it depends on can collide with another tool's or the system interpreter's packages | it exposes the package's entry points on the user's PATH afterward, so the command just runs
Which command-line tools have I installed this way, and are any of them out of date?
it keeps a record of everything installed through it and can list them all, checking each against the latest published version to flag ones with upgrades available
How do I try a Python tool once without leaving anything behind on this machine?
it builds a throwaway environment, runs the requested command in it, and discards the environment afterward, so nothing is left installed
Can I run a tool with an extra plugin or dependency it doesn't normally ship with?
it lets you name additional packages to install alongside the target inside the same temporary or installed environment, so a plugin that isn't bundled is still available at run time
Will installing or updating one tool ever break the dependencies of another tool I've installed?
each package lives in its own environment rather than a shared one, and uninstalling or upgrading one only touches its own environment, leaving the others untouched
What would changing my shell setup to add this tool's commands actually do to my PATH before I commit to it?
it can report which directories it would add to PATH without writing to PATH or any shell configuration file, so the effect is visible beforehand
30 capabilities
across 7 areas
· 5 backed by code, an API document or a real run
Built from python-pipx's releases, docs, README and our own runs.
“Seen” marks the month we first spotted a release the vendor didn't date.
Group names and tags are our labels.
+Tool installation and lifecycle management9 capabilitiespipx installs Python CLI tools into isolated virtual environments and manages their full lifecycle from install through upgrade and removal. This is the core purpose of the tool, covering everything from first install to keeping tools current.▸
+Extras support for injected packagesshippedActivates optional feature sets declared by a package when injecting additional libraries into an existing tool environment.1 release · 2 other sources · first seen Jul 2026▸
Also counts toward: Command-line interface
release
Supports pipx inject with main-package extras, allowing extras on the primary package to be activated at inject time.
1.15.1 · Jul 2026
· source
· release history
docs
Inject packages Add extra packages into an existing pipx-managed environment with pipx inject Inject a package Add matplotlib to the ipython environment: $ pipx inject ipython matplotlib Inject several at once, from a requirements file, or both: $ pipx inject ipython matplotlib pandas $ pipx inject ipython -r…
docs update · Oct 2026
· source
. As with install , a package with no app to expose fails the inject and leaves the environment as it was. gives the injected package’s apps the environment’s suffix (injecting into exposes black_3.11 is ignored with a warning; the environment keeps the setting install gave it.
seen Oct 2026
· source
+Parallel upgrade checksshippedChecks all installed tools for available upgrades in parallel, reducing the wait time for large collections of tools.2 releases · 1 other source · first seen Jul 2026▸
release
reinstall-all, upgrade-all, and install-all now operate on several environments in parallel; pass --verbose to force sequential execution.
1.18.0 · Oct 2026
· source
· release history
Parallelizes update checks in pipx upgrade-all for significantly faster operation.
1.15.1 · Jul 2026
· source
· release history
example
Upgrade all installed environments in parallel on Python 3.15 for maximum speed, then fall back to sequential output if you need to read per-env logs.$ pipx upgrade-all --verbose
1.18.0 · Oct 2026
· source
+Library-only package guidanceshippedExplains clearly when a package ships no CLI entrypoints and suggests what the user should do instead.1 release · 2 other sources · first seen Jul 2026▸
release
Adds pipx install guidance for library-only packages that ship no CLI entrypoints.
1.15.1 · Jul 2026
· source
· release history
docs
gives you , and installed package pycowsay 0.0.0.2, installed using Python 3.12.3 These apps are now available These manual pages are now available - man6/pycowsay.6 manual pages are exposed at «home»/.local/share/man shell completions are exposed at «home»/.local/share package pycowsay 0.0.0.2, installed…
seen Oct 2026
· source
installed package httpie 3.2.4, installed using Python 3.12.3 These apps are now available - httpie These manual pages are now available - man1/http.1 - man1/httpie.1 - man1/https.1 , and : one package, three apps.
seen Oct 2026
· source
+pipx state resetverifiedResets pipx to a clean slate by removing all managed environments and reinitialising its directory structure.1 release · 2 other sources · first seen Jul 2026▸
Also counts toward: Command-line interface
release
New pipx reset command wipes and rebuilds pipx's state from a clean install.
1.15.1 · Jul 2026
· source
· release history
Start fresh after a corrupted pipx state — wipes all managed environments and reinitialises pipx.$ pipx reset
1.15.1 · Jul 2026
· source
+Reproducible installs from lock filesshippedInstalls tools from a lock file so every member of a team gets the exact same versions.1 release · 2 other sources · first seen Jul 2026▸
release
Adds PEP 751 lock file support for pipx install, enabling reproducible installs from lock files.
1.15.1 · Jul 2026
· source
· release history
docs
Hold an installation at its current version so upgrades skip it until you unpin. and , so the app and its dependencies keep their versions until you unpin. refuses a pinned environment, and reinstall-all reports it as an error.
seen Oct 2026
· source
passes the manifest to nab once per locked dependency group, and records that group as the lock’s default so installers select it. Existing locks seed their replacements, and pipx overwrites the declared files only after every resolution succeeds. Entries without
seen Sep 2026
· source
+PEP 723 inline-script installationshippedInstalls a self-contained inline Python script as a permanent tool without needing a separate package on PyPI.1 release · 1 other source · first seen Jul 2026▸
Also counts toward: Command-line interface
release
Adds pipx install support for persisting PEP 723 inline-scripted Python scripts as permanent tools.
1.15.1 · Jul 2026
· source
· release history
docs
For a local script, the filename without its extension supplies the command name. Pass --app to choose a different name: --app greet
docs update · Oct 2026
· source
+Outdated tool detectionshippedLists every installed tool that has a newer version available so the user can decide what to upgrade.1 release · 1 other source · first seen Jul 2026▸
Also counts toward: Command-line interface
release
New pipx outdated command lists all installed tools that have upgrades available.
1.15.1 · Jul 2026
· source
· release history
example
Check which of your globally installed tools have newer versions available before deciding what to upgrade.$ pipx outdated
1.15.1 · Jul 2026
· source
+Version-specifier enforcement on `pipx upgrade --install`documentedRespects the version constraint the user specified when upgrading a tool that was not yet installed.1 other source · first seen Jul 2026▸
docs
- 2026-07-29 1.16.5 - 2026-07-29 Honor the version specifier when pipx upgrade –install installs a missing package. ( #1987 1.16.4 - 2026-07-29 Bundle colorama in the zipapp so the single works on Windows and on Python 3.10. ( #1978 #1984 Fix the Release Notes link published in package metadata.
docs update · Jul 2026
· source
+Upgrade result reportingshippedReports exactly what changed after an upgrade, including the old and new versions, so the user can see at a glance what happened.1 release · first seen Jul 2026▸
release
Adds upgrade result reporting to pipx upgrade output, showing what changed.
1.15.1 · Jul 2026
· source
· release history
+Tool execution3 capabilitiespipx provides multiple ways to run Python CLI tools, whether they are already installed or needed only once. Users can invoke tools directly without activating environments or thinking about Python paths.▸
+Isolated tool execution via `pipx run`shippedRuns a Python tool in a temporary throwaway environment without installing it permanently.3 releases · 4 other sources · first seen Jun 2026▸
Also counts toward: Command-line interface
release
Supports absolute file URLs (e.g.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄ file:///path/to/package) for local package installs via pipx install.
1.18.2 · Oct 2026
· source
· release history
Adds Python interpreter argument passthrough for pipx run.
1.15.1 · Jul 2026
· source
· release history
Adds --no-path-check flag to pipx run to skip the on-PATH check, useful in environments where PATH warnings are expected or irrelevant.
1.14.0 · Jun 2026
· source
· release history
docs
package, caches the environment, and runs the app. Under the uv backend, pipx hands packages to uv tool and local scripts with inline metadata to uv --script , so uv’s cache applies instead of pipx’s. adds packages to the temporary environment alongside the app. Repeat it to add more.
seen Oct 2026
· source
Use a direct URL requirement to install extras: black[jupyter] @ git+https://github.com/psf/black.git
seen Sep 2026
· source
example
Install a locally built wheel or source tree using an absolute file URL instead of a bare path.$ pipx install file://«home»/projects/mytool
1.18.2 · Oct 2026
· source
Run a tool in a temporary environment without triggering PATH-check warnings — handy in CI pipelines or containers where pipx's bin dir is intentionally absent from PATH.$ pipx run --no-path-check black --check .
1.14.0 · Jun 2026
· source
+Run-environment cache managementverifiedManages the cache of environments created for one-off runs, letting users inspect or clear them to reclaim disk space.2 releases · 2 other sources · first seen Jul 2026▸
Also counts toward: Command-line interface
release
PIPX_MAX_LOGS now keeps exactly that many logs, not one extra — environments relying on the previous off-by-one count will see one fewer log file retained.
1.18.0 · Oct 2026
· source
· release history
New pipx cache subcommand manages cached pipx run environments.
1.15.1 · Jul 2026
· source
· release history
docs
- 2026-09-28 - 2026-09-28 from sharing cached environments across different requirement lists or argument boundaries. This changes cache keys; run pipx cache purge to remove old entries. ( #2053 - 2026-09-22 Record each tool’s dependency group as its lock’s default so installs what wrote.
seen Sep 2026
· source
+Direct execution of installed tools via `pipx exec`shippedRuns an already-installed tool directly, bypassing any environment re-resolution overhead.1 release · first seen Jul 2026▸
Also counts toward: Command-line interface
release
New pipx exec command runs an already-installed application directly without re-resolving environments.
1.15.1 · Jul 2026
· source
· release history
+Environment health and maintenance3 capabilitiespipx monitors and repairs the virtual environments it manages to keep tools working reliably over time. It also provides controls over how and when shared dependencies are updated.▸
+Maintenance and shared-library upkeep controlsshippedGives the user control over whether shared libraries are updated during an operation and how often automatic upkeep runs.3 releases · 3 other sources · first seen Jul 2026▸
release
Runs pipx upgrade-shared to refresh shared pip on demand rather than waiting for the 30-day automatic refresh window.
1.18.0 · Oct 2026
· source
· release history
Adds --skip-maintenance flag (feat: allow skipping maintenance) to bypass shared-library upkeep during operations.
1.15.1 · Jul 2026
· source
· release history
Under the pip backend, pipx forwards environment variables to every pip invocation, including shared-library upgrades. Set them in your shell profile or pip’s own config file for a permanent default: for the config-file form. pipx always sets PIP_USER=0 and drops PIP_TARGET so packages land in the venv.
seen Oct 2026
· source
Use the uv backend Make pipx use uv to create virtual environments and install packages in place of pip and venv. The CLI surface stays the same.
docs update · Oct 2026
· source
- 2026-10-07 - 2026-10-07 from printing a traceback when the reinstall fails for an expected reason. ( #2070 printing WARNING: Skipping setuptools as it is not installed. when the shared libraries are created on Python 3.12+, where setuptools is already absent.
seen Oct 2026
· source
+Broken environment repairverifiedDetects virtual environments that have broken since installation and automatically fixes them.1 release · 3 other sources · first seen Jul 2026▸
Also counts toward: Command-line interface
release
New pipx health repair mode automatically fixes broken virtual environments.
1.15.1 · Jul 2026
· source
· release history
docs
Troubleshoot Diagnose and fix common pipx problems, from wrong package versions to broken environments. Wrong package version installed pipx builds venvs with your default Python, and pip installs the newest release compatible with it.
docs update · Oct 2026
· source
- 2026-10-02 - 2026-10-02 Remove an environment that has no pipx metadata and an interpreter that no longer runs, instead of crashing pipx uninstall pipx uninstall-all #2059 Derive local script command names from the filename when parent directories contain # .
docs update · Oct 2026
· source
+Startup performance optimisationsshippedReduces the time it takes pipx itself to start up through several internal caching and lazy-loading improvements.2 releases · 1 other source · first seen Jul 2026▸
release
Sets PYTHON_LAZY_IMPORTS=normal to disable lazy imports that Python 3.15 uses to accelerate pipx startup.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
1.18.0 · Oct 2026
· source
· release history
Multiple startup-path performance improvements (lazy venv scans, cached site-packages paths, deferred Python resolution) that speed up every pipx invocation.
1.15.1 · Jul 2026
· source
· release history
example
Opt out of Python 3.15 lazy imports if a tool misbehaves at startup due to deferred module loading.$ PYTHON_LAZY_IMPORTS=normal pipx run mytool
1.18.0 · Oct 2026
· source
+Declarative and reproducible tool sets1 capabilitypipx can manage a defined collection of tools from a manifest file, keeping an entire workstation or CI environment consistent. This supports teams and automated setups that need the same tools present at all times.▸
+Declarative tool manifest syncverifiedReads a manifest file and installs, updates, or removes tools to match its declared state exactly.2 releases · 4 other sources · first seen Jul 2026▸
release
Adds --backend flag to install-all to translate recorded index options between pip and uv backends, refusing environments whose index cannot be carried over.
1.18.0 · Oct 2026
· source
· release history
Adds pipx manifest sync to reconcile a set of managed tools from a declarative manifest.
1.15.1 · Jul 2026
· source
· release history
docs
Tool manifest Declare a set of pipx tools in one file and install, upgrade, or prune them as a unit with pipx manifest Write the manifest The manifest is a pipx.toml file. Each dependency group holds one PEP 508 package requirement and names its pipx environment.
docs update · Oct 2026
· source
environment. must be an empty list so each group resolves on its own; pipx rejects the manifest otherwise: to uninstall environments absent from the manifest. pipx skips pruning when any declared tool fails to sync: (not available on Windows) or to select the pipx store or the installation backend.
seen Oct 2026
· source
Install all recorded environments using uv as the backend, automatically translating any pip index options stored in the spec file.$ pipx install-all --backend uv
1.18.0 · Oct 2026
· source
+PATH and entrypoint control2 capabilitiespipx controls which tool binaries and shell completions are visible on the system PATH. Users can selectively expose or hide individual entrypoints without touching the underlying environment.▸
+Selective app and script exposure via `pipx expose`/`unexpose`verifiedLinks or hides specific binaries and completion scripts from an installed package without uninstalling the package itself.2 releases · 5 other sources · first seen Jul 2026▸
release
--suffix now appends after the app name (e.g. pip3.12@1 instead of pip3@1.12), except before a Windows file extension; apps exposed by 1.17.14 keep their old name until pipx next exposes them.
1.18.0 · Oct 2026
· source
· release history
Enables pipx expose to selectively link dependency apps and completion scripts a package ships.
1.15.1 · Jul 2026
· source
· release history
docs
Expose apps Control which apps, manual pages, and shell completions an environment links onto your PATH , without rebuilding it.
docs update · Oct 2026
· source
pipx exposes any apps, manual pages, and shell completions the new version adds, and removes the ones it no longer ships, so and PIPX_BIN_DIR match the upgraded package. and install --upgrade do the same.
docs update · Oct 2026
· source
Control which apps, manual pages, and shell completions an environment links onto your , without rebuilding it. pipx removes the apps, manual pages, and shell completions recorded for that environment from its global directories. Upgrade and reinstall keep it hidden, and injected apps stay hidden too.
seen Oct 2026
· source
- 2026-09-29 - 2026-09-29 Remove leftover shell completion scripts when running #2055
seen Sep 2026
· source
command line
unexpose — Hide resources without removing an environment
1.15.1 · Jul 2026
· command-line history
+PATH managementshippedEnsures the directory containing pipx-managed tool binaries is on the user's PATH, with a preview mode before making changes.1 release · 4 other sources · first seen Jun 2026▸
Also counts toward: Command-line interface
release
Adds --dry-run flag to pipx ensurepath, letting you preview what PATH modifications would be made without actually writing any changes.
1.15.0 · Jun 2026
· source
· release history
docs
A pipx installed with --global belongs to the global installation, so upgrade it there: --global
seen Oct 2026
· source
/Library/Application Support" ~/.local/share/pipx ( $XDG_DATA_HOME/pipx when set). %LOCALAPPDATA%\pipx\pipx "$env:LOCALAPPDATA" pipx\pipx New-Item -ItemType Directory ( Split-Path | Out-Null
seen Oct 2026
· source
Choose where pipx stores environments, apps, manual pages, and shell completions, and how it installs for all users.
seen Oct 2026
· source
example
Check what PATH changes pipx would make on a new machine before committing to them — useful in provisioning scripts or CI setup validation.$ pipx ensurepath --dry-run
1.15.0 · Jun 2026
· source
+Visibility and scriptability4 capabilitiespipx surfaces what is installed and what is happening during operations, through both human-readable and machine-readable output. This makes it practical to use pipx in scripts, CI pipelines, and automated tooling.▸
+Machine-readable outputshippedOutputs structured, machine-readable results from common commands so scripts and automation can consume them reliably.1 release · 3 other sources · first seen Jul 2026▸
Also counts toward: Command-line interface, JSON data export
release
Adds scriptable/machine-readable output format selection across install, inject, pin, uninstall, and other commands.
1.15.1 · Jul 2026
· source
· release history
docs
JSON output Most pipx commands accept --output json to print a single machine-readable result envelope on stdout instead of human-readable text. Selecting JSON suppresses pipx’s own progress messages and sends whatever pip or uv print while installing to stderr, so the envelope is the only thing on stdout.
docs update · Oct 2026
· source
Exit codes pipx returns on success and on failure. run runpip , and exec exit with the code of the app or pip they ran, and argument-parsing errors exit . A command that raises an unexpected error or is interrupted also exits non-zero.
seen Oct 2026
· source
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.
seen Oct 2026
· source
+Filtered tool listingshippedFilters the tool list to a single package so the user can quickly inspect one tool's installation details.1 release · 1 other source · first seen Jul 2026▸
release
Adds pipx list filtering by package name to show details for a single installed tool.
1.15.1 · Jul 2026
· source
· release history
example
Filter pipx list output to inspect a single installed package without scrolling through everything.$ pipx list black
1.15.1 · Jul 2026
· source
+Install download progressshippedShows a progress bar while downloading packages during installation so the user knows the download is proceeding.1 release · first seen Jul 2026▸
release
Adds download progress bar when pipx install fetches packages.
1.15.1 · Jul 2026
· source
· release history
+Verbose install output streamingshippedStreams installer output in real time during a verbose install so the user can see progress as it happens.1 release · first seen Jul 2026▸
release
Streams verbose installer output live during pipx install --verbose.
1.15.1 · Jul 2026
· source
· release history
+Other8 capabilities▸
+Python interpreter selectiondocumentedAllows users to specify which Python interpreter pipx uses when installing or running tools, accepting an executable name, version string, or full path, and requires Python 3.11 or above for pipx itself while supporting Python 3.3+ for the tools it manages.4 other sources▸
Also counts toward: Command-line interface
docs
Installing pipx needs Python 3.11 or newer, and so does any interpreter you pass with --python . Without Python 3.11, see the (pipx 1.6.0+): To share one self-managed pipx between all users on Unix, run the bootstrap’s and instead.
seen Oct 2026
· source
) sets the policy. Without , pipx first looks for a local interpreter that satisfies the app’s , and the policy only decides what happens when none does: START["pipx install"] --> DEF{"default Python satisfies<br/>requires-python?"} DEF -->|no| SEARCH{"another local<br/>interpreter fits?"} SEARCH -->|no|…
seen Oct 2026
· source
- 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.11 or above. - Python to install with.
seen Oct 2026
· source
Installing pipx needs Python 3.11 or newer; the apps it runs can target Python 3.3 or newer. Without Python 3.11, see and invoke it with a Python 3.11+
seen Oct 2026
· source
+Environment variable configurationdocumentedAll pipx settings are controlled exclusively through environment variables, with a `pipx environment` command to display each variable and its derived value as seen in the current environment.2 other sources · first seen Oct 2026▸
docs
Configure paths Choose where pipx stores environments, apps, manual pages, and shell completions, and how it installs for all users.
docs update · Oct 2026
· source
Environment variables pipx has no user configuration file. Every setting is an environment variable, all of them optional. Run pipx environment to print each variable as set in your environment, followed by the values pipx derives from them.
docs update · Oct 2026
· source
+Installation pinningdocumentedHolds a managed environment at its current version so that upgrade and reinstall operations skip it until it is explicitly unpinned.2 other sources · first seen Oct 2026▸
docs
Pin packages Hold an installation at its current version so upgrades skip it until you unpin. Pin it $ pipx pin black Pinned environments are skipped by pipx upgrade and pipx upgrade-all , so the app and its dependencies keep their versions until you unpin.
docs update · Oct 2026
· source
Hold an installation at its current version so upgrades skip it until you unpin. and , so the app and its dependencies keep their versions until you unpin. refuses a pinned environment, and reinstall-all reports it as an error.
seen Oct 2026
· source
+uv backend supportdocumentedAllows pipx to use uv instead of pip and venv for creating virtual environments and installing packages, while keeping the same CLI surface.2 other sources · first seen Oct 2026▸
docs
uv when available and pip otherwise, but unlike either it creates a separate virtual environment for each application, so their dependencies never collide and an uninstall leaves nothing behind.
seen Oct 2026
· source
Use the uv backend Make pipx use uv to create virtual environments and install packages in place of pip and venv. The CLI surface stays the same.
docs update · Oct 2026
· source
+Private index and proxy supportdocumentedForwards index, proxy, and offline options to the backend so tools can be installed from private or air-gapped package sources.1 other source · first seen Oct 2026▸
Also counts toward: Offline mode
docs
Use a private index Install from a private index, behind a proxy, or offline by forwarding index options to the backend.
docs update · Oct 2026
· source
+Shell completiondocumentedProvides tab completion for pipx itself and supports exposing completion scripts shipped by installed apps.1 other source · first seen Oct 2026▸
Also counts toward: Command-line interface
docs
Shell completions Enable tab completion for pipx and for the apps it installs. Enable pipx completion Print the instructions for your shell and follow them: $ pipx completions Completions for installed apps A package can ship the completion script for its own command, the way it ships a man page.
docs update · Oct 2026
· source
+Standalone Python interpreter provisioningdocumentedInstalls a tool under a Python interpreter downloaded from python-build-standalone when the required version is unavailable or unsuitable on the system.1 other source · first seen Oct 2026▸
Also counts toward: Scripting language support
docs
Standalone Python Install an app under a Python interpreter downloaded from python-build-standalone instead of the system one. Reach for this when the system Python lacks the version you need, or when a distro patched its Python in ways that break the app.
docs update · Oct 2026
· source
+Per-tool isolated virtual environmentsdocumentedInstalls each application into its own dedicated virtual environment, keeping tools and their dependencies isolated from one another and from the system Python.1 other source▸
Also counts toward: Command-line interface
docs
installs both libraries and applications into whatever environment is active, with no isolation. pipx installs only applications, each in its own virtual environment, exposes their commands on your , and runs with regular user permissions, so you never need by default, but accepts any source supports: local created…
seen Oct 2026
· source
Lines in monospace are the tool's own words: help text
parsed from its source, or an endpoint from its API document. Under
release, a line is our summary of a dated release. Under
docs, it is quoted from the tool's own documentation or
website. Each links back to the source it came from.
Command line
View
Source
No command matches.
load a captured run
composed command
No matchesTry a different search, or clear a filter to see more.
option surface across analysed releases
options at that releaseadded, per releaseremoved, per release
option
found in
since
description
No matchesTry a different search, or clear a filter to see more.
option changes per release — drag across the rail to set a range
→
Values are placeholders taken from each option’s declared default.
Nothing is executed here — the output shown is a recording of a run
that already happened.
Score card
Shipping velocityreleases a month, last 12 months
Documentation qualityrelease-notes rubric, 0–100
Breaking-change disciplinehow rarely a release breaks users, and notice given
Maintenance riskquiet time against its own cadence, maintainers
Innovation & surfacenew capabilities, API and MCP surface
Community health
Contributor trenddistinct committers, this year against last
Maintainer concentrationbus factor now against a year ago
Issue backlog trendissues closed per issue opened, 12 months
Responsivenessmedian time to a maintainer’s first reply
Nine scores for python-pipx, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.
Each score is 0–100 on a published rubric, derived from data this site already shows.
A dimension we cannot measure says so — it is never scored 0 and never enters a rank.
How this is scored
Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
Documentation quality — the release-notes rubric published on the analytics page, unchanged.
Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.
Release-note detail over time
See how much detail python-pipx puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.
PyPA's home page and 1 more page as they looked each month from September 2021 to October 2026: 13 renders, 1 change of tagline or palette. Step through them, play them, or put any two months side by side.
Website history is included with Researcher and Business.
← → or h l a month · Shift a year · [ ] previous / next change · Space play · 1 2 3 page · T whole page · C compare · F full size
← → or h l the right month · Shift the left · S swap · W wipe · T whole page · Esc back
Rebranding timeline
Dates bound when a change appeared between captures. Possible rebrands are AI suggestions; a redesign alone does not establish a rebrand.
Releases
Show
61 entries
No entries match these filters.
October 202622
August 20268
July 20264
June 20264
May 20263
March 20263
September 20251
August 20241
June 20241
March 20241
January 20241
December 20232
March 20231
May 20221
April 20211
February 20211
January 20211
October 20201
August 20201
January 20202
August 20191
Project health
Issue, contributor and maintainer activity in pypa/pipx, 2023-10 – 2026-09,
as of 2026-09-25. Twelve-month figures first; the trend lines run
the whole window.
Contributors66+54 vs prior 12 months
Maintainers1+2 joined · −2 left, last 12 months
Bus factor1committers behind half the commits
Community-filed93%of issues opened, last 12 months
Median time to close706 daysfirst maintainer reply 2.4 days
Open backlog1of 912 issues ever filed
Issues opened / month1 · 0communitymaintainers
Open backlog1
Contributors / month10
Commits / month12
Stars12,969
Issue themes, last 12 months
bugs 41%
features 20%
other 39%
Counts from the project's public repository and git history; no individuals
are identified. Maintainers are the committers covering 80% of the last year's
commits. how we measure this
Add the badge to your README
Maintain this project? The badge links readers straight to this page, so they can
follow every release here.