Pysentry
๐ Scan your Python dependencies for known security vulnerabilities with Rust-powered scanner
Install / Use
/learn @nyudenkov/PysentryREADME
PySentry
Help to test and improve ยท Participate in pysentry usage survey
Please, send feedback to nikita@pysentry.com
A fast, reliable security vulnerability scanner for Python projects, written in Rust.
PySentry audits Python projects for known security vulnerabilities by analyzing dependency files and cross-referencing them against multiple vulnerability databases.
Documentation ยท Benchmarks ยท Buy Me a Coffee
Features
- Multiple formats โ
uv.lock,poetry.lock,Pipfile.lock,pylock.toml,pyproject.toml,Pipfile,requirements.txt - Multiple sources โ PyPA Advisory Database, PyPI JSON API, OSV.dev (all enabled by default)
- PEP 792 support โ Detects archived, deprecated, and quarantined packages
- Flexible output โ Human-readable, JSON, SARIF, Markdown
- Fast โ Written in Rust with async processing and caching
Installation
# Using uvx (recommended)
uvx pysentry-rs /path/to/project
# Using pip
pip install pysentry-rs
# Using cargo
cargo install pysentry
# Pre-built binaries available at GitHub Releases
See Installation Guide for all options.
Quick Start
# Scan current directory
pysentry
# Scan specific project
pysentry /path/to/project
# Filter by severity
pysentry --severity high
# Output to JSON
pysentry --format json --output report.json
# Fail on critical vulnerabilities only
pysentry --fail-on critical
# Block quarantined packages (malware protection)
pysentry --forbid-quarantined
See Quickstart Guide for more examples.
Pre-commit
repos:
- repo: https://github.com/pysentry/pysentry-pre-commit
rev: v0.4.3
hooks:
- id: pysentry
# Use compact mode for minimal pre-commit output
# args: ['--compact']
Configuration
PySentry supports TOML configuration via .pysentry.toml or pyproject.toml:
# .pysentry.toml
version = 1
[defaults]
severity = "medium"
fail_on = "high"
[sources]
enabled = ["pypa", "osv"]
[ignore]
ids = ["CVE-2023-12345"]
See Configuration Guide for all options.
Documentation
Full documentation is available at docs.pysentry.com:
Requirements
- For
requirements.txtscanning: Installuv(recommended) orpip-toolsfor dependency resolution - Python: 3.9โ3.14 (for pip/uvx installation)
- Rust: 1.79+ (for cargo installation or building from source)
