Skip to main content

PatchRadar

Python CI PyPI Docker

PatchRadar 🛡️

Know when your software is vulnerable — before attackers do.

PatchRadar monitors CVE feeds in realtime and alerts you when a new vulnerability affects your software stack. No more manually checking NVD, MSRC, or Snyk — just add your software and let PatchRadar watch for you.

Python CalVer License PyPI CodSpeed


✨ Features

  • 🔍 Realtime CVE monitoring — scans NVD, MSRC and Debian Security Tracker for new vulnerabilities
  • 📋 Personal watchlist — add any software you want to monitor
  • 🎨 Beautiful web UI — dark theme dashboard with charts and filters
  • 💻 CLI first — full command line interface for automation
  • 📊 CVSS scoring — color-coded severity (Critical / High / Medium / Low)
  • 🐧 Debian Security Tracker — monitors open CVEs for Debian/Ubuntu packages
  • 💾 Local SQLite — all data stored locally, no cloud, no account needed
  • 🐍 Python 3.11+ — modern async architecture with httpx and FastAPI

🚀 Installation

pip install patchradar

📖 Usage

CLI

# Add software to your watchlist
patchradar add proxmox
patchradar add bitwarden
patchradar add "windows 10"

# Show your watchlist
patchradar list

# Scan for CVEs (last 30 days)
patchradar scan --days 30

# Show latest CVEs in terminal
patchradar status

# Remove software
patchradar remove proxmox

Web UI

patchradar serve
# Open http://localhost:8000

NVD API key (optional)

NVD limits clients without an API key to 5 requests per 30 seconds; a key raises it to 50. A long scan needs several requests per keyword — NVD refuses any date range wider than 120 days, so --days 730 is split into seven windows — and a watchlist of any size will reach the keyless limit. PatchRadar paces its requests to stay under whichever limit applies, which makes a keyless scan slower rather than incomplete.

export NVD_API_KEY=your-key   # https://nvd.nist.gov/developers/request-an-api-key
patchradar scan --days 365

The key is sent as a request header, never in the URL. If a source fails for every entry in the watchlist, the scan says so after the total rather than leaving one warning per entry: a count of CVEs that came from one source out of two is not the same as a complete scan.


📡 Sources

Source Type Status
NVD CVE Database ✅ Active
MSRC Microsoft Patch Tuesday ✅ Active
Debian Security Linux packages 🔜 Coming soon
CISA KEV Known Exploited Vulnerabilities 🔜 Coming soon

🗓️ Versioning

PatchRadar uses CalVer — YYYY.MM.PATCH.


⚡ Benchmarks

Performance is tracked continuously with CodSpeed. The benchmarks live in benchmarks/ and cover the CVE collectors, the SQLite layer, the API endpoints and the CLI table rendering.

pip install --group dev -e .
pytest benchmarks/                       # correctness check, no measurement
codspeed run --mode simulation -- pytest benchmarks/ --codspeed

🤝 Contributing

Contributions are welcome! Feel free to open issues or pull requests.


📄 License

MIT — see LICENSE for details.


Built with ❤️ by maksimtech

Release files for patchradar 2026.40

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for patchradar 2026.40
File Size Uploaded
patchradar-2026.40.tar.gz 169.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for patchradar 2026.40
File Interpreter ABI Platform
patchradar-2026.40-py3-none-any.whl Python 3 none any Details

Total release size: 218.5 kB

Release files / patchradar-2026.40.tar.gz

Download URL patchradar-2026.40.tar.gz
Size 169.5 kB
Tags Source
SHA-256 checksum
How to use checksums
433ca7708cd7d5d2e54c8bfab97a9ca62cab3137f8d23f638061c4371659caf1
BLAKE2b-256 checksum
How to use checksums
2086f1e0b87ab56b2076d47e721fce056881cff65fa1f5303c122c1b84c6c640
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / patchradar-2026.40-py3-none-any.whl

Download URL patchradar-2026.40-py3-none-any.whl
Size 49.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1c5ae34589b9bdccd095b556b3d8f8d95de4a1f6baebe506097a29db96197b2c
BLAKE2b-256 checksum
How to use checksums
7ff44a181e857b2399df28d48818409df3ee21a00567d6eef3320c89e3980167
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page