slipcover
Near Zero-Overhead Python Code Coverage
What it is and what it does
SlipCover measures code coverage—which lines and branches of your Python code actually execute during a test run—while keeping runtime overhead near zero. Unlike traditional coverage tools that use Python's tracing API and can double execution time, SlipCover uses just-in-time bytecode instrumentation on Python 3.9–3.11, or the sys.monitoring API on Python 3.12+, to track execution with minimal slowdown. It integrates directly with pytest and other test runners without requiring plugins, and supports configuration via pyproject.toml for per-project settings.
The tool is designed for developers who need coverage data to guide testing, identify dead code, or support fuzzing workflows but can't tolerate the performance penalty of traditional coverage tools. It reports coverage in multiple formats (text, JSON, XML, LCOV) and can merge results from parallel test execution with pytest-xdist.
Use it for:
- Measure test coverage on large test suites without doubling execution time, making it practical for continuous integration pipelines.
- Identify untested code paths in performance-critical Python applications where traditional coverage overhead is prohibitive.
- Support property-based testing and fuzzing workflows that require frequent coverage measurements during test generation.
- Find dead code in mature projects by running SlipCover over your full codebase and filtering for zero-coverage modules.
- Enforce coverage thresholds in CI/CD with the fail-under option while keeping build times reasonable.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
SlipCover is a fast code coverage tool that tracks which parts of a Python program execute and which don't, using just-in-time bytecode instrumentation or the sys.monitoring API to minimize runtime overhead.
Yes. SlipCover is worth installing if you need code coverage but have been avoiding it due to performance overhead. It's actively maintained, has no known vulnerabilities, low install friction, and works with modern Python versions (3.9–3.14). The permissive Apache license poses no restrictions. Install it if coverage speed matters to your workflow; skip it only if you have no coverage requirement or are already satisfied with your current tool's performance.
Install
slipcover on PyPI
pip
pip install slipcoveruv
uv add slipcoverpoetry
poetry add slipcoverInstalling slipcover
Before you install
Low install friction with only two runtime dependencies (tabulate and tomli). The package is actively maintained with a recent release and no known vulnerabilities, making it straightforward to add to a project.
License in practice
Licensed under Apache Software License (permissive), so you can use, modify, and distribute SlipCover freely in both open-source and commercial projects without significant legal constraints.
Quickstart
pip install slipcover
python3 -m slipcover myscript.py
# Or with pytest:
python3 -m slipcover -m pytest
Requires Python 3.9 or later; on Python 3.12+ uses sys.monitoring API instead of bytecode rewriting for better efficiency.
Verify before relying
- Exact overhead reduction compared to Coverage.py on your specific workload (varies by program structure and Python version)
- Whether branch coverage mode is fully stable across all supported Python versions
- Compatibility with other coverage-consuming tools beyond pytest and pytest-xdist
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (<3.15,>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — tabulate, tomli |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 149,915/month — #10,978 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: slipcover-1.1.0-py312-none-any.whl
Keywords: coverage, testing
Tags
More Quality Assurance packages
Coverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
ruffRuff is a Python linter and code formatter…
permissive · top 1,000 on PyPI
pexpectPexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
blackBlack reformats Python source code to a…
permissive · top 1,000 on PyPI
pytest-xdistpytest-xdist distributes pytest tests across…
permissive · top 1,000 on PyPI
cfn-lintValidates AWS CloudFormation templates in YAML…
permissive · top 1,000 on PyPI
gcovrGcovr processes GCC code coverage data and…
permissive · top 5,000 on PyPI
covdefaultsA coverage plugin that automatically applies…
permissive · top 15,000 on PyPI
diff-coverCompares test coverage reports against git…
permissive · top 1,000 on PyPI
django-coverage-pluginA coverage.py plugin that measures test…
permissive · top 5,000 on PyPI
coverage-thresholdValidates Python code coverage against…
permissive · top 15,000 on PyPI
fastcovFastcov generates code coverage reports in…
permissive · top 15,000 on PyPI
dbt-coverageMeasures documentation and test coverage of dbt…
permissive · top 15,000 on PyPI
interrogateInterrogate scans a Python codebase to measure…
permissive · top 5,000 on PyPI
coverage_enable_subprocessInstalls a .pth file that automatically enables…
permissive · top 15,000 on PyPI