pycu
A fast CLI that checks your Python project dependencies against PyPI and reports which ones have newer versions available. Inspired by npm-check-updates.

fastapi >=0.109.0 → >=0.135.1
pydantic >=1.10.0 → >=2.12.5
uvicorn >=0.20 → >=0.34.0
3 packages can be updated.
Why I built this
Every week I'd open my Python projects, manually scan through pyproject.toml, look up each package on PyPI, and check
whether I was falling behind. It was tedious, easy to miss something, and I kept thinking there has to be a better way.
There were existing tools, but none of them fit quite how I worked. I'd been spoiled by npm-check-updates in the Node world: one command, instant table, upgrade in place if you want. I wanted exactly that, but for Python something fast, dependency-file-aware, and with in-place upgrades that actually respected my version constraints.
So I built pycu.
Features
- Supports
pyproject.toml(PEP 621 / uv),pyproject.toml(Poetry), andrequirements.txt - Concurrent PyPI lookups with configurable parallelism
- In-place upgrades with
--upgrade - Filter by bump level: major, minor, or patch only
- JSON output for scripting
- Self-updates via
--self-update - Color-coded output showing exactly which version component changed
- SHA-256 verified self-update downloads
Installation
Linux / macOS
|
Windows (PowerShell)
irm https://raw.githubusercontent.com/Logic-py/python-check-updates/main/install.ps1 | iex
Manual download
Download the binary for your platform from
the latest release, extract it, and place it
somewhere on your PATH.
From source
Requires Rust 1.85 or later (edition 2024).
Uninstall
Usage
Run in a directory that contains a pyproject.toml or requirements.txt:
Or point to a specific file:
Options
| Flag | Short | Description |
|---|---|---|
--file <PATH> |
Path to the dependency file (auto-detected if omitted) | |
--upgrade |
-u |
Rewrite the file in-place with updated constraints |
--target <LEVEL> |
-t |
Only show major, minor, or patch bumps (default: latest) |
--json |
Output results as JSON | |
--concurrency <N> |
Max concurrent PyPI requests (default: 10) |
|
--self-update |
Update pycu itself to the latest release | |
--uninstall |
Remove pycu from your system | |
--version |
Print the version |
Examples
# Check all dependencies
# Upgrade the file in-place
# Only show minor-level updates
# Check a specific requirements file
# Machine-readable output
JSON output
Supported formats
pyproject.toml - PEP 621 / uv
[]
= [
"fastapi>=0.109.0",
"pydantic>=1.10.0,<2.0.0",
]
[]
= [
"pytest~=7.3.0",
]
[]
= [
"mypy>=0.19.1,<2.0.0",
]
pyproject.toml - Poetry
[]
= "^0.109.0"
[]
= "~7.3.0"
requirements.txt
fastapi>=0.109.0
pydantic>=1.10.0,<2.0.0
pytest~=7.3.0 # dev
Roadmap
- Private registry support - planned support for checking dependencies hosted on private PyPI-compatible registries (e.g. Artifact Registry, etc.)
Contributing
See CONTRIBUTING.md.
Security
See SECURITY.md.
License
Licensed under either of MIT or Apache-2.0 at your option.