uv-outdated
Show outdated packages in your uv projects with better formatting and dependency context.
While uv pip list --outdated shows which packages have newer versions available,
uv-outdated adds useful context like dependency relationships, constraint information,
and organizes output by dependency groups.
Usage
Run in any directory with a uv.lock file:
uvx uv-outdated [OPTIONS]
Options
--show-headers/--no-headers: Include table headers (default: no headers)--why/--no-why: Show constraint and dependents columns (default: show)--direct/--all: Only show direct dependencies (default: all)--transitive/--all: Only show transitive dependencies (default: all)--group-by-ancestor: Group transitive dependencies under their direct ancestors
Example Output
Package Current Latest Constraint Dependents Description
requests 2.28.0 2.31.0 >=2.25.0 mypy, pytest HTTP library for Python
urllib3 1.26.0 2.0.7 <2.0.0 requests HTTP library with thread-safe connection pooling
[group:dev]
pytest 7.0.0 8.0.0 ^7.0.0 pytest-cov Simple and scalable testing
pytest-cov 4.0.0 5.0.0 Coverage plugin for pytest
What it shows you
Dependency groups: Packages are organized by their groups from pyproject.toml (main dependencies, optional dependencies, development groups).
Why packages can't upgrade:
- Yellow versions indicate the package is constrained by version specifiers
- Red versions show packages that can be freely upgraded
- The Constraint column shows the limiting specifier
Dependency relationships: The Dependents column shows which other packages require each outdated package.
Hierarchical view: With --group-by-ancestor, transitive dependencies are grouped under their direct dependency parents.
How it works
The tool combines information from:
uv.lockfor exact versions and dependency relationshipspyproject.tomlfor dependency groups and constraintsuv pip list --outdatedfor available updates- Site-packages metadata for descriptions (when available)
It works even when your virtual environment isn't activated or available.
Requirements
- Python 3.12+
- A project with
uv.lock - Optional:
pyproject.tomlfor dependency group information
Why this exists
uv pip list --outdated gives you the basics, but when you're managing a project with many dependencies across different groups, it helps to see:
- Which outdated packages are your direct dependencies vs. transitive
- Why certain packages can't be upgraded (version constraints)
- How dependencies relate to each other
- Packages organized by their purpose (dev, test, optional features, etc.)
This is particularly useful for larger projects where understanding the dependency tree matters for upgrade decisions.
Metadata
Release files for uv-outdated 1.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| uv_outdated-1.0.4.tar.gz | 19.2 kB | Without provenance | Details for uv_outdated-1.0.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| uv_outdated-1.0.4-py3-none-any.whl | Python 3 | none | any | Details for uv_outdated-1.0.4-py3-none-any.whl |
Total release size: 32.1 kB
Release files / uv_outdated-1.0.4.tar.gz
| Download URL | uv_outdated-1.0.4.tar.gz |
|---|---|
| Size | 19.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
126745028823d8d452a82faaf53ea1d4ab5cdea7bba3159fc2ce7e5d0443146c
|
|
BLAKE2b-256 checksum How to use checksums |
388478736b81c0e6ebefd3810b04a3bc6cb82bf7ea63474821b02d5cd9040439
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / uv_outdated-1.0.4-py3-none-any.whl
| Download URL | uv_outdated-1.0.4-py3-none-any.whl |
|---|---|
| Size | 12.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2b664b62836dee5653b8a42212210b76edc195dba9105e9da230a7a5d22dc5ee
|
|
BLAKE2b-256 checksum How to use checksums |
4b5eac80d652ced66120f2d6254d827dbddd8322608911100eba7b8e214f992d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for uv-outdated 1.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.