uuc — uv update check
A minimalist npm-check-updates equivalent for uv projects. Check your pyproject.toml dependencies against PyPI and see what's outdated — in the exact same output style as ncu.
$ uuc
Checking /path/to/pyproject.toml
[====================] 9/9 100%
httpx >=0.27 → >=0.28.1
rich >=13 → >=14.3.3
typer >=0.12 → >=0.24.1
pytest >=8 → >=9.0.2
pytest-asyncio >=0.24 → >=1.3.0
Run uuc -u to upgrade pyproject.toml
Updates are color-coded by severity: red for major, cyan for minor, green for patch — with partial version coloring just like ncu.
Install
uv tool install uv-update-check
Or run directly without installing:
uvx uv-update-check
Usage
# Show outdated dependencies (read-only, default)
uuc
# Update pyproject.toml with latest versions
uuc -u
# Only show minor/patch updates (no breaking changes)
uuc -t minor
# Only show patch updates
uuc -t patch
# Exclude specific packages
uuc -x httpx,rich
# Check a specific project
uuc --path /path/to/pyproject.toml
# Include pre-release versions
uuc --pre
# Combine flags
uuc -t minor -x httpx -u
Options
| Flag | Description |
|---|---|
-u, --update |
Rewrite pyproject.toml with new versions |
-t, --target |
Target version level: latest (default), minor, patch |
-x, --reject |
Exclude packages (comma-delimited) |
-p, --path |
Path to pyproject.toml (default: search from cwd) |
--pre |
Include pre-release versions |
-V, --version |
Show version |
What it checks
uuc discovers dependencies from all standard pyproject.toml sections:
[project.dependencies][project.optional-dependencies.*][dependency-groups.*](PEP 735)
It supports all common version specifiers: >=, ~=, ==, ^, >, <, !=.
What it skips
- URL, git, and path dependencies
- Dependencies with no version specifier
{include-group = "..."}entries in dependency groups
How it works
- Finds and parses
pyproject.tomlusing tomlkit (preserves formatting and comments) - Extracts all dependencies from the sections above
- Fetches latest versions from the PyPI JSON API concurrently using httpx + anyio
- Compares versions using packaging with semver-aware classification
- Displays results in ncu-style output with Rich
- With
-u, rewritespyproject.tomlin-place preserving all formatting, comments, and ordering
Differences from similar tools
| Tool | What it does | How uuc differs |
|---|---|---|
uv lock --upgrade |
Upgrades within existing constraints | uuc shows what's available beyond your constraints |
uv pip list --outdated |
Shows outdated installed packages | uuc checks pyproject.toml constraints, not installed versions |
pip-check-updates |
Similar concept | uuc is uv-native with dependency-groups support |
Requirements
- Python >= 3.14
License
MIT
Metadata
Release files for uv-update-check 0.3.0
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 | |
|---|---|---|---|---|
| uv_update_check-0.3.0.tar.gz | 28.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| uv_update_check-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.4 kB
Release files / uv_update_check-0.3.0.tar.gz
| Download URL | uv_update_check-0.3.0.tar.gz |
|---|---|
| Size | 28.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1a6a4cd2cb2deee8b3bee6aa1e0bedb4ceafdedbb775c07a507680ed4a715e79
|
|
BLAKE2b-256 checksum How to use checksums |
94232885970f7e46aa5429bd6ca44fe87a230b7fb246841ff07548e7365089d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / uv_update_check-0.3.0-py3-none-any.whl
| Download URL | uv_update_check-0.3.0-py3-none-any.whl |
|---|---|
| Size | 13.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ef992affe0e448a8605e9a1a433ca486bc2c93940e38a447c4b5d330e52ebbc8
|
|
BLAKE2b-256 checksum How to use checksums |
e5bad6b58f3d272e0995701758b496e37b5d45952c73b67d810d19293952f99e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for uv-update-check 0.3.0
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.