pip-check 3.3


pip install pip-check

  Latest version

Released: Oct 22, 2026


Meta
Author: Martin Mahner
Requires Python: >=3.8

Classifiers

Development Status
  • 5 - Production/Stable

Environment
  • Console

Intended Audience
  • Developers

Operating System
  • OS Independent

Programming Language
  • Python
  • Python :: 3
  • Python :: 3 :: Only
  • Python :: 3.8
  • Python :: 3.9
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3.12
  • Python :: 3.13
  • Python :: 3.14
  • Python :: 3.15

Topic
  • Software Development
  • System :: Software Distribution
  • Utilities

Testsuite PyPi Version Monthly Downloads

pip-check

pip-check gives you a quick overview of all installed packages and their update status. Under the hood it calls pip list --outdated --format=json and transforms it into a more user-friendly table.

pip-check also supports uv, or pip at any location. Pass the pip command using --cmd:

pip-check -c pip3
pip-check -c ".venv/bin/pip"
pip-check -c "uv pip"

Screenshot of pip-check in action

Installation:

pip install pip-check

Or Install the last version that runs on Python 2.7 or 3.4:

pip install pip-check==2.5.2

Usage:

$ pip-check -h
usage: pip-check [options] [-- PIP_ARGS ...]

A quick overview of all installed packages and their update status. Supports `pip` or `uv pip`.

options:
  -h, --help            show this help message and exit
  -a, --ascii           Display as ASCII Table
  -c, --cmd PIP_CMD     The [uv] pip executable to run. E.g.: `/path/to/pip` or `uv pip`. Default: `pip`
  -l, --local           Show only virtualenv installed packages. (pip only)
  -r, --not-required    List only packages that are not dependencies of installed packages. (pip only)
  -f, --full-version    Show full version strings.
  -H, --hide-unchanged  Do not show "unchanged" packages.
  -u, --show-update     Show update instructions for updatable packages. (pip only)
  -U, --user            Show only user installed packages. (pip only)
  --version             Show the version of pip-check and exit.

Arguments after `--` are passed to `pip list` as they are, e.g. `pip-check -- --pre` to include pre-releases, or `pip-check -- --extra-index-url URL` to also check another index. With uv, use uv's
options, e.g. `-- --index URL`. They are also added to the --show-update command.

Pre-releases and other package indexes:

Everything after -- is passed to pip list unchanged, so pip-check can use any of pip's options:

pip-check -- --pre                                        # include pre-releases
pip-check -- --extra-index-url https://my.index/simple    # also check another index
pip-check -- --index-url https://mirror.example/simple    # check a mirror instead of PyPI
pip-check -c "uv pip" -- --index https://my.index/simple  # uv uses its own option names

The same arguments are added to the upgrade command that --show-update prints, so e.g. a listed pre-release actually gets installed. uv's pip list has no pre-release option, so --pre only works with pip.

pip's own configuration applies as well, so a pip.conf or environment variables such as PIP_PRE=1 or PIP_EXTRA_INDEX_URL work without --.

Local Development

pip-check uses uv for local development.

uv sync         # Create a .venv and install dependencies
uv build        # Build distribution packages

Releasing:

Releases are published to PyPI by GitHub Actions. Bump version in pyproject.toml, add the CHANGELOG entry, then push a matching tag:

$ git tag v3.3 && git push origin v3.3

The Publish workflow checks that the tag matches the project version, runs the full test suite and uploads the package using PyPI Trusted Publishing.

Testing:

Test against a variation of Python versions:

$ uv run nox

Recommended Similar Tools

  • pip-date - Show the installation or modification times of all your pip packages
  • pip-chill - Lists only the dependencies (or not) of installed packages

Changelog

v3.3 (2026-10-22):

  • Pass extra arguments to pip list after --, e.g. pip-check -- --pre to include pre-releases (#28) or pip-check -- --extra-index-url URL to also check another index (#30). They're added to the --show-update upgrade command too.
  • Report a failing pip command with pip's error message and exit code 1. Previously it showed up as "No outdated packages".
  • A --cmd that can't be run (e.g. a typo) now prints an error instead of a traceback.
  • Ctrl-C now exits quietly with code 130 instead of printing a traceback.
  • Require packaging>=20.0. Older versions lack Version.major and made pip-check crash.
  • The sdist can be built with pip older than 19.3 (the pip that came with Python 3.8), which couldn't parse pyproject.toml.
  • Test against Python 3.15. Python 3.8 and later remain supported.
  • Use an SPDX license expression (PEP 639) and add project keywords, topics and a changelog link.
  • Limit the sdist to source, docs and tests. It previously included local files such as .coverage and uv.lock.
  • Releases are published from GitHub Actions using PyPI Trusted Publishing.

v3.2 (2025-08-27): v3.2.1 (2025-08-27):

  • Fix 'uv' support to work with latest UV version.

v3.1 (2025-04-14):

  • Adopted uv and hatchling as the primary build tools.
  • Implemented nox as the test runner.
  • Migrated all documentation from reStructuredText to Markdown for improved readability and accessibility.
  • Introduced Ruff as a linter and optimized code to align with the current set of Ruff rules.
  • Added type annotations throughout the codebase.
  • Test against Python 3.14.

v3.0 (2025-04-11):

  • Added support for uv. Use --cmd="uv pip" to utilize uv.

v2.10 (2025-04-11):

  • Resolve the issue of missing line breaks when no packages are found.
  • Test against Python 3.13.

v2.9 (2024-09-01):

  • Show current Python and pip version upon load.
  • Test against Python 3.12.

v2.8.1 (2022-11-06):

  • Fixes issue with packages not correctly sorted into "Major" category.

v2.8 (2022-11-06):

  • Added support for Python 3.11.
  • Replaced deprecated "distutils" with "packaging" module.

v2.7 (2021-11-16):

  • Drop support for Python 2.7, 3.4 and 3.5
  • Added support for Python 3.9 and 3.10.
  • Removed 'colorclass' as a dependency and with that the shell argument --disable-colors.

v2.6 (2019-12-12):

  • Requires Python 3.5 or higher.
  • Command error is shown if pip exits with a status code 1 (or larger).
  • Error message is shown if pip is not able to load packages in case of network problems.
  • Update instructions will now add --user in case the pip-check command should only show user packages as well.

v2.5.2 (2019-08-08):

  • This is the last version that runs on Python 2.7. Install it with pip install pip-check==2.5.2
  • Windows color fixes.

v2.5.1 (2019-08-08):

  • Windows script fixes.

v2.5 (2019-08-08):

  • A more robust installation that installs pip-check as a proper console script.
  • Added new --disable-colors argument.
  • Added tests for Python 3.7 and 3.8.
  • Fixed Syntax warning happening with no outdated packages.
  • Cleanup of the entire codebase.

v2.4 (2019-07-23):

  • Added support to only show packages from the user or local package namespace.

v2.3.3 (2018-02-19):

  • Visual fixes around --show-update

v2.3.2 (2018-02-18):

  • New --show-update argument.
  • Fixed --full-versions argument.
  • Minor UI improvements.

v2.1 (2018-02-18):

  • Complete new architecture. It now calls pip directly and parses it output which should be more reliable.
  • It's also using distutils for the version comparision now, which is more reliable as well.
  • Lots of features and bug fixes.

v0.2 (2016-02-09):

  • Fixes issues with older pip versions.
  • Truncates extremly long version numbers.

v0.1 (2016-02-06):

  • Very first version, and yet with very limited features.

Wheel compatibility matrix

Platform Python 3
any

Files in release

Extras: None
Dependencies:
packaging (>=20.0)
terminaltables (>=3.1)