vermin
Concurrently detect the minimum Python versions needed to run code
Decision gist · record as of 2026-08-14
Yes. Vermin is a mature, actively maintained tool with no external dependencies, permissive licensing, and strong test coverage. It solves a concrete problem—determining minimum Python version requirements—with a comprehensive ruleset and multiple integration points. Install it if you need to verify or enforce Python version compatibility in your projects.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.0 or later to run Vermin itself; the tool can still detect Python 2.x features in the code it analyzes.
- Installation is straightforward with no runtime dependencies.
- The package is actively maintained, with a recent release and an active repository.
License · maintenance · safety
MIT (permissive) — MIT license permits unrestricted use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.
last release 2025-11-20 (267 days) · last repo commit 2026-05-17 · 524 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 501,234 downloads/mo, #6,316 on PyPI
Alternatives
Verify before relying
pip install vermin
vermin /path/to/your/project- Whether the 4140 rules, 190 modules, and other detection metrics remain current with Python 3.14 and beyond.
- How accurately the heuristics for union types and fstring self-doc detection perform in real-world codebases.
- Whether the tool scales well for very large projects or monorepos.
What it is and what it does
Vermin is a command-line tool that scans Python source code to determine the minimum Python version required to run it. It works by parsing code into an abstract syntax tree (AST) and matching language features against an internal ruleset covering Python 2.0–2.7 and 3.0–3.14. The tool has no external dependencies and can run on Python 3.0 or later, even when analyzing code that uses Python 2.x syntax.
The package is designed for developers who need to know or enforce minimum version requirements for their projects. It detects a wide range of language features—from basic syntax like f-strings and async/await to advanced constructs like pattern matching, type aliases, and generic classes. It integrates with CI/CD pipelines and pre-commit hooks, and supports configuration files for specifying target versions. The project is well-tested with thousands of unit and integration tests.
Use it for
- Check a project's minimum Python version requirement before publishing or deploying to ensure compatibility claims are accurate.
- Enforce minimum version constraints in CI/CD pipelines by failing builds when code uses features beyond the target version.
- Integrate as a pre-commit hook to catch version-incompatible features before they are committed.
- Audit legacy codebases to identify which Python versions they actually support, independent of documentation.
- Guide refactoring decisions by showing which modern language features are available at a given minimum version.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Vermin is a mature, actively maintained tool with no external dependencies, permissive licensing, and strong test coverage. It solves a concrete problem—determining minimum Python version requirements—with a comprehensive ruleset and multiple integration points. Install it if you need to verify or enforce Python version compatibility in your projects.
Install
vermin on PyPI
Before you install
Installation is straightforward with no runtime dependencies. The package is actively maintained, with a recent release and an active repository. It runs on modern Python versions and is well-tested across Linux, macOS, and Windows.
Requires Python 3.0 or later to run Vermin itself; the tool can still detect Python 2.x features in the code it analyzes.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install vermin
vermin /path/to/your/project
Verify before relying
- Whether the 4140 rules, 190 modules, and other detection metrics remain current with Python 3.14 and beyond.
- How accurately the heuristics for union types and fstring self-doc detection perform in real-world codebases.
- Whether the tool scales well for very large projects or monorepos.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.0 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 267 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 501,234 / month, #6,316 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersProgramming Language :: PythonProgramming Language :: Python :: 3.0Topic :: Software DevelopmentTopic :: Utilities |
Evidence: vermin-1.8.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “minimum python version detection”
- verminVermin analyzes Python source code to detect the minimum Python…
- chrome-versionDetects the version of Chrome installed on Windows, Linux, or macOS…
- PyMatchingPyMatching is a fast Python/C++ library for decoding quantum error…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also detect_agent · safety · yamllint · dodgy · flake8-polyfill · types-smorest · lib-detect-testenv · pyconfigurator · future-fstrings · fawltydeps