Coverage for coding agents working overnight.
Supercov gives your coding agent the next useful test to write. It runs the test command you already use, records local coverage evidence, and turns uncovered paths into small, actionable queries. Your agent writes a focused test, reruns the suite, proves what improved, and keeps going while useful gaps remain.
No account, config file, import, custom reporter, or hosted service is required. Supercov is local, free, open source, and MIT licensed.
Website · Documentation · npm · GitHub
Supported by Supercorp.
Start with the suite you already have
npx supercov -- npm test
Everything after -- is your test command. Supercov runs it without changing your source, tests, runner configuration, or normal build output.
Then ask what is still uncovered:
npx supercov runs latest gaps --limit 10
After your agent adds a test, rerun the complete suite and prove the gain:
npx supercov -- npm test
npx supercov diff <previous-run-id> latest
Use whichever complete test command the repository already trusts:
npx supercov -- npx playwright test
npx supercov -- pnpm test:e2e
npx supercov -- cargo test
npx supercov -- cargo nextest run
npx supercov -- pytest
npx supercov -- python -m unittest
npx supercov -- bundle exec rspec
Give Supercov a job
Paste one of these prompts into Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, or any coding agent that can run terminal commands.
Write the first useful test
Measure code coverage with `npx supercov`. Use the coverage evidence to choose
one useful missing test. Only edit tests. Run the repository's complete test
suite through Supercov again and report what improved.
Use leftover tokens on coverage
Measure code coverage with `npx supercov` and write tests til 100%. Only edit
tests. Keep going while useful gaps remain.
Run the repository's complete test suite through Supercov. Use
`npx supercov runs latest gaps --limit 5` to choose one useful target at a
time. Write a focused test, rerun the same complete suite, and use
`npx supercov diff <previous-run-id> latest` to verify the gain.
Never weaken assertions or change application code to make coverage easier.
Stop if the suite fails, the evidence is incomplete, or no useful gaps remain.
The agent loop
- Run the real suite. Supercov executes the command after
--in an isolated workspace. - Find one useful gap. Short, paginated queries show uncovered files, lines, branches, decisions, and value paths without loading a large HTML report into context.
- Write one focused test. The coding agent changes tests—not application code or coverage configuration.
- Rerun and prove the gain.
diffshows exactly what the new test covered. - Repeat while useful gaps remain. Failed tests, incomplete evidence, or ambiguous scope stay visible instead of being rounded away.
Supercov supplies the coverage signal and evidence. It does not host, schedule, or replace your coding agent.
Use leftover tokens on coverage
Before a reset—or overnight—turn idle agent time into coverage that stays with the repository. Each pass closes a small number of useful gaps and finishes with evidence that the tests still pass and coverage improved.
Use it in a software factory
Add Supercov as a repeatable quality loop in an automated software factory. Your factory schedules the work; Supercov gives each agent a bounded next task and an immutable record of the result.
Every pass runs the real suite, chooses an uncovered path, writes a focused test, reruns, and proves the gain. Fresh executable evidence lets agents keep iterating around the clock while failed tests and regressions stop the loop before they ship.
Coverage agents can act on
From lines and branches to MC/DC, every gap becomes a concrete test target. Supercov measures:
- lines, statements, functions, and branches;
- MC/DC independence witnesses;
- optional-chain, default-value, and logical-assignment paths;
try/catchand zero-iteration control-flow paths; and- per-test provenance where the runner exposes exact test boundaries.
The denominator comes from source structure before the run, so adding or removing tests cannot silently change what 100% means. Ambiguous source scope, uninstrumented code, and missing evidence remain visible as completeness blockers.
Install for your language
The same binary ships through each language's own package manager, at the same version, from one release:
npx supercov -- npm test # npm
uvx --from supercov-cli supercov -- pytest # PyPI
gem install supercov && supercov -- bundle exec rspec # RubyGems
cargo binstall supercov && supercov -- cargo test # crates.io
pip install supercov-cli and gem install supercov install a wheel or gem that carries the binary for your platform; nothing is compiled. cargo binstall downloads that same binary from the GitHub release, while plain cargo install supercov builds it from source and needs Rust 1.95.
Supported languages
| Language | Status | Start with |
|---|---|---|
| JavaScript | Available | npx supercov -- npm test |
| TypeScript | Available | npx supercov -- npm test |
| Rust | Available | npx supercov -- cargo test |
| Python | Available | npx supercov -- pytest |
| Ruby | Available | npx supercov -- rspec |
| Zig | Coming soon | — |
| PHP | Coming soon | — |
| C | Coming soon | — |
Supercov requires Node.js 22 or newer. Rust support currently uses Rust 1.95; cargo-nextest 0.9.138 and 0.9.140 are supported. Python support requires CPython 3.12 or newer and measures pytest and unittest runs. Ruby support requires Ruby 3.3 or newer (3.4 or newer for full measurement) and measures RSpec, Minitest, test-unit and Cucumber runs.
Supported operating systems and architectures
The CLI is a single native binary. npx supercov selects the build for the machine it runs on; nothing is compiled during installation.
| Operating system | Architectures | Notes |
|---|---|---|
| macOS | arm64 (Apple silicon), x64 (Intel) | macOS 11 or newer |
| Linux | arm64, x64 | glibc 2.28 or newer (Debian 10, Ubuntu 18.10, RHEL 8 and later), or musl (Alpine); chosen automatically |
| Windows | arm64, x64 | Windows 10 or newer |
JavaScript, TypeScript, Python, Ruby and Rust suites are verified on Linux, macOS and Windows -- CPython 3.12, 3.13 and 3.14, and Ruby 3.3, 3.4 and 4.0 on every one. Containers, VMs, and remote executors run the same Linux builds. Every release publishes the same binaries to npm, PyPI (supercov-cli, a wheel per platform) and RubyGems (supercov, a gem per platform except arm64 Windows, which Ruby has no platform for), and the source to crates.io (supercov).
Supported test suites
Supercov uses exact per-test attribution where an adapter is available. For other supported runners, it reports aggregate structural coverage instead of guessing which test covered a path.
| Runner | Coverage attribution |
|---|---|
| Playwright | Exact per test, worker, retry, outcome, action, and assertion phase |
| Vitest | Exact per test, with setup execution kept separate |
| Jest | Exact per test, including concurrent and parameterized tests |
node:test |
Exact per test |
| AVA and Mocha | Aggregate structural coverage |
| Cargo's standard libtest runner | Exact test, attempt, and passing-assertion identity |
| rustdoc doctests | Exact per doctest |
| cargo-nextest | Exact test, attempt, retry, and binary identity |
| RSpec | Exact example and before/example/after phase identity |
| Minitest and test-unit | Exact test and setup/test/teardown identity |
| Cucumber | Exact scenario and hook-phase identity |
Supercov works with Vite, Next, Turbopack, Webpack, esbuild, SWC, and projects with no build step. One command can collect evidence from several supported runners into a single run.
See Supported languages and test suites for exact compatibility and attribution boundaries.
Read the result
# Recent runs and the latest summary
npx supercov runs --limit 5
npx supercov runs latest
# The most useful open coverage obligations
npx supercov runs latest gaps --limit 10
# Details for a file or source location
npx supercov runs latest file app/checkout/session.ts
npx supercov runs latest decision app/checkout/session.ts:64
npx supercov runs latest line app/checkout/session.ts:64
# What changed between two runs
npx supercov diff <previous-run-id> latest
Collections accept --limit and --offset and print a copyable next-page command. Machine-readable output is available with --json when an integration needs it.
Local, private, and zero-edit
Everything Supercov writes lives under one hidden .supercov/ directory: run evidence in .supercov/runs/<run-id>/ and the isolated build cache in .supercov/workspaces/. It ignores itself in Git, so there is nothing to add to your .gitignore.
The Supercov CLI does not contact a Supercov service during a coverage run. Package tools such as npx may contact the npm registry to download Supercov when it is not already cached.
Supercov does not rewrite your source files, tests, imports, reporter list, runner configuration, dependency tree, or normal build output. An existing user-created supercov/ directory is never adopted.
npx supercov clean --dry-run # preview cleanup
npx supercov clean --keep 20 # keep the 20 newest runs
npx supercov clean # remove all runs and the build cache
Documentation
- Getting started
- Agent workflow
- Troubleshooting
- CLI reference
- Supported languages and test suites
- Understanding coverage
- Runs and evidence
- Files, privacy, and cleanup
- Trusting a result
- Speed and storage
Free and open source
MIT licensed. Inspect, extend, and run it anywhere.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file supercov_cli-0.0.42-py3-none-win_arm64.whl.
File metadata
- Download URL: supercov_cli-0.0.42-py3-none-win_arm64.whl
- Upload date:
- Size: 4.9 MB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d4bcc58805c48eca2e172822c758a6e16032ffb2a805cb9308940b0380f3077
|
|
| MD5 |
ac0508f7cd34eeb2f12760d447b15fc6
|
|
| BLAKE2b-256 |
f9ca49bff6e133563def69f1a267c6bedb0ceb2b545eb036b54f28cf3d93190b
|
Provenance
The following attestation bundles were made for supercov_cli-0.0.42-py3-none-win_arm64.whl:
Publisher:
publish.yml on supercorp-ai/supercov
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
supercov_cli-0.0.42-py3-none-win_arm64.whl -
Subject digest:
3d4bcc58805c48eca2e172822c758a6e16032ffb2a805cb9308940b0380f3077 - Sigstore transparency entry: 2753427806
- Sigstore integration time:
-
Permalink:
supercorp-ai/supercov@c974c9a202b93655beaa2382d01b511d94f62d93 -
Branch / Tag:
refs/tags/v0.0.42 - Owner: https://github.com/supercorp-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c974c9a202b93655beaa2382d01b511d94f62d93 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file supercov_cli-0.0.42-py3-none-win_amd64.whl.
File metadata
- Download URL: supercov_cli-0.0.42-py3-none-win_amd64.whl
- Upload date:
- Size: 5.3 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ebe987bf00a5aa31b7031cdd5e3c957019afc50b10b7d3b09427508427f58f0
|
|
| MD5 |
0d362dba9aaee7e8f32483df7702d5a4
|
|
| BLAKE2b-256 |
bf193c8b679a215d6436569342855be1556632399e441c29049f3172478704eb
|
Provenance
The following attestation bundles were made for supercov_cli-0.0.42-py3-none-win_amd64.whl:
Publisher:
publish.yml on supercorp-ai/supercov
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
supercov_cli-0.0.42-py3-none-win_amd64.whl -
Subject digest:
2ebe987bf00a5aa31b7031cdd5e3c957019afc50b10b7d3b09427508427f58f0 - Sigstore transparency entry: 2753427824
- Sigstore integration time:
-
Permalink:
supercorp-ai/supercov@c974c9a202b93655beaa2382d01b511d94f62d93 -
Branch / Tag:
refs/tags/v0.0.42 - Owner: https://github.com/supercorp-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c974c9a202b93655beaa2382d01b511d94f62d93 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file supercov_cli-0.0.42-py3-none-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: supercov_cli-0.0.42-py3-none-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 5.6 MB
- Tags: Python 3, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4b405e993733ec7cd019c1154a6c079bbbfd1217018d8a3000e7701bf1e6367
|
|
| MD5 |
b323c16b117aac374d41a812519f11fb
|
|
| BLAKE2b-256 |
80646643c739b8c18187eef080de8dcc22debbe1dc99899c2d23f6f34ae3d0ca
|
Provenance
The following attestation bundles were made for supercov_cli-0.0.42-py3-none-musllinux_1_2_x86_64.whl:
Publisher:
publish.yml on supercorp-ai/supercov
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
supercov_cli-0.0.42-py3-none-musllinux_1_2_x86_64.whl -
Subject digest:
a4b405e993733ec7cd019c1154a6c079bbbfd1217018d8a3000e7701bf1e6367 - Sigstore transparency entry: 2753427797
- Sigstore integration time:
-
Permalink:
supercorp-ai/supercov@c974c9a202b93655beaa2382d01b511d94f62d93 -
Branch / Tag:
refs/tags/v0.0.42 - Owner: https://github.com/supercorp-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c974c9a202b93655beaa2382d01b511d94f62d93 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file supercov_cli-0.0.42-py3-none-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: supercov_cli-0.0.42-py3-none-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 5.2 MB
- Tags: Python 3, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1617107971d76a345e75c9e888504b6f177e4c334409ba8936e250533ad883a
|
|
| MD5 |
da13b6fe1d5e96ca330457db50ce5477
|
|
| BLAKE2b-256 |
c67e7ab634ed340a32e9c58e13265f52da1e77dc9dc2a17d1eef2a2c44fd80a4
|
Provenance
The following attestation bundles were made for supercov_cli-0.0.42-py3-none-musllinux_1_2_aarch64.whl:
Publisher:
publish.yml on supercorp-ai/supercov
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
supercov_cli-0.0.42-py3-none-musllinux_1_2_aarch64.whl -
Subject digest:
e1617107971d76a345e75c9e888504b6f177e4c334409ba8936e250533ad883a - Sigstore transparency entry: 2753427809
- Sigstore integration time:
-
Permalink:
supercorp-ai/supercov@c974c9a202b93655beaa2382d01b511d94f62d93 -
Branch / Tag:
refs/tags/v0.0.42 - Owner: https://github.com/supercorp-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c974c9a202b93655beaa2382d01b511d94f62d93 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file supercov_cli-0.0.42-py3-none-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: supercov_cli-0.0.42-py3-none-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.5 MB
- Tags: Python 3, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fcbc7c388b481ad33f8f7e59e900485db491b831301e148e5ebc58bbe5dd940d
|
|
| MD5 |
ebed10477856aeec1abb348bd03c09e6
|
|
| BLAKE2b-256 |
9f54cd30965fe83a9ca52e875efa3dd2e3270019c842eac5210b104a576d9e2d
|
Provenance
The following attestation bundles were made for supercov_cli-0.0.42-py3-none-manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on supercorp-ai/supercov
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
supercov_cli-0.0.42-py3-none-manylinux_2_28_x86_64.whl -
Subject digest:
fcbc7c388b481ad33f8f7e59e900485db491b831301e148e5ebc58bbe5dd940d - Sigstore transparency entry: 2753427862
- Sigstore integration time:
-
Permalink:
supercorp-ai/supercov@c974c9a202b93655beaa2382d01b511d94f62d93 -
Branch / Tag:
refs/tags/v0.0.42 - Owner: https://github.com/supercorp-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c974c9a202b93655beaa2382d01b511d94f62d93 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file supercov_cli-0.0.42-py3-none-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: supercov_cli-0.0.42-py3-none-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 5.2 MB
- Tags: Python 3, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a654442641aa6df07c9d62f40b487de2906fd664d5b0fbde253561a66827f71
|
|
| MD5 |
77c6b4a8481bf7fb93b713921c606078
|
|
| BLAKE2b-256 |
d47f41aac7cb31cb8b8cfe251ebc068068ffbd5dc177a8e6193e5ff38ef37ebf
|
Provenance
The following attestation bundles were made for supercov_cli-0.0.42-py3-none-manylinux_2_28_aarch64.whl:
Publisher:
publish.yml on supercorp-ai/supercov
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
supercov_cli-0.0.42-py3-none-manylinux_2_28_aarch64.whl -
Subject digest:
6a654442641aa6df07c9d62f40b487de2906fd664d5b0fbde253561a66827f71 - Sigstore transparency entry: 2753427871
- Sigstore integration time:
-
Permalink:
supercorp-ai/supercov@c974c9a202b93655beaa2382d01b511d94f62d93 -
Branch / Tag:
refs/tags/v0.0.42 - Owner: https://github.com/supercorp-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c974c9a202b93655beaa2382d01b511d94f62d93 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file supercov_cli-0.0.42-py3-none-macosx_11_0_x86_64.whl.
File metadata
- Download URL: supercov_cli-0.0.42-py3-none-macosx_11_0_x86_64.whl
- Upload date:
- Size: 5.3 MB
- Tags: Python 3, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb80d74d4c0ff62dc0f0cdf14119afa00ef4be4d039f69deb4316f578f10b322
|
|
| MD5 |
d63aa62fc349ca64e1df745d6264066f
|
|
| BLAKE2b-256 |
cbae8128e0d86ea35390529515735e365f375ac37ec83c7e585488eff929d02c
|
Provenance
The following attestation bundles were made for supercov_cli-0.0.42-py3-none-macosx_11_0_x86_64.whl:
Publisher:
publish.yml on supercorp-ai/supercov
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
supercov_cli-0.0.42-py3-none-macosx_11_0_x86_64.whl -
Subject digest:
bb80d74d4c0ff62dc0f0cdf14119afa00ef4be4d039f69deb4316f578f10b322 - Sigstore transparency entry: 2753427837
- Sigstore integration time:
-
Permalink:
supercorp-ai/supercov@c974c9a202b93655beaa2382d01b511d94f62d93 -
Branch / Tag:
refs/tags/v0.0.42 - Owner: https://github.com/supercorp-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c974c9a202b93655beaa2382d01b511d94f62d93 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file supercov_cli-0.0.42-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: supercov_cli-0.0.42-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 4.9 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
207d65b4c3e15e994a75a07669420f7d4f63fad3d77c343db81e2b002f56f9f9
|
|
| MD5 |
f63d27ac7b7ad73d947e63870b54c0e1
|
|
| BLAKE2b-256 |
ea77a147b6802bf66ac2decd9a822a0c37c9fb18c5e7fa844cd8478094b27b66
|
Provenance
The following attestation bundles were made for supercov_cli-0.0.42-py3-none-macosx_11_0_arm64.whl:
Publisher:
publish.yml on supercorp-ai/supercov
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
supercov_cli-0.0.42-py3-none-macosx_11_0_arm64.whl -
Subject digest:
207d65b4c3e15e994a75a07669420f7d4f63fad3d77c343db81e2b002f56f9f9 - Sigstore transparency entry: 2753427852
- Sigstore integration time:
-
Permalink:
supercorp-ai/supercov@c974c9a202b93655beaa2382d01b511d94f62d93 -
Branch / Tag:
refs/tags/v0.0.42 - Owner: https://github.com/supercorp-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c974c9a202b93655beaa2382d01b511d94f62d93 -
Trigger Event:
workflow_dispatch
-
Statement type: