Skip to main content

Supercov: Coverage for coding agents working overnight

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

  1. Run the real suite. Supercov executes the command after -- in an isolated workspace.
  2. Find one useful gap. Short, paginated queries show uncovered files, lines, branches, decisions, and value paths without loading a large HTML report into context.
  3. Write one focused test. The coding agent changes tests—not application code or coverage configuration.
  4. Rerun and prove the gain. diff shows exactly what the new test covered.
  5. 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/catch and 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 and attempt 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

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

supercov_cli-0.0.40-py3-none-win_arm64.whl (4.9 MB view details)

Uploaded Python 3Windows ARM64

supercov_cli-0.0.40-py3-none-win_amd64.whl (5.2 MB view details)

Uploaded Python 3Windows x86-64

supercov_cli-0.0.40-py3-none-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

supercov_cli-0.0.40-py3-none-musllinux_1_2_aarch64.whl (5.2 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

supercov_cli-0.0.40-py3-none-manylinux_2_28_x86_64.whl (5.5 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

supercov_cli-0.0.40-py3-none-manylinux_2_28_aarch64.whl (5.1 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

supercov_cli-0.0.40-py3-none-macosx_11_0_x86_64.whl (5.3 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

supercov_cli-0.0.40-py3-none-macosx_11_0_arm64.whl (4.8 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file supercov_cli-0.0.40-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for supercov_cli-0.0.40-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 5d341561614a3dfd56d571ded1c28f3bfbfb998932de1cfaacb3f602557244a7
MD5 114f37b4482f9d77e950516abf109bc7
BLAKE2b-256 aefb108733aaf45e81b8834182bda66ffee5c8e4290bc3ba11ef1e150087374e

See more details on using hashes here.

Provenance

The following attestation bundles were made for supercov_cli-0.0.40-py3-none-win_arm64.whl:

Publisher: publish.yml on supercorp-ai/supercov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file supercov_cli-0.0.40-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for supercov_cli-0.0.40-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 2e7e35c3f5955a539256ede7da0a1ac2a79ec5ffc897592321255160b75a9e6e
MD5 4ac0d0b4431b68ef9327f5fcf7180d00
BLAKE2b-256 b58e3f494157ec657e564e58b54e46e3f5124d1e62ae66b930b3589bf2e885d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for supercov_cli-0.0.40-py3-none-win_amd64.whl:

Publisher: publish.yml on supercorp-ai/supercov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file supercov_cli-0.0.40-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for supercov_cli-0.0.40-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 66183db51737af992ece5f750ac80796bb06f7fcea293dc32e91b31783ed4d4b
MD5 7501064a8bf510f9b4d3477816b434a9
BLAKE2b-256 18b56792352a08870cae177eee64c0a2ee1f81e0ac17328310d31d2e5e1e79dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for supercov_cli-0.0.40-py3-none-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on supercorp-ai/supercov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file supercov_cli-0.0.40-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for supercov_cli-0.0.40-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8b129d2b90ae3307cdffdaaaeac12f85471c59996eae724c79de002ffb2fdb08
MD5 57ce1a143f2dcb0aa0c2132c16479fcd
BLAKE2b-256 6af199524b1edb999eb1044887bc157fc3c5cebe8604f19499f0df3eb7ca9100

See more details on using hashes here.

Provenance

The following attestation bundles were made for supercov_cli-0.0.40-py3-none-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on supercorp-ai/supercov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file supercov_cli-0.0.40-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for supercov_cli-0.0.40-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3149941e8ac8bc4ab21f33094703bdf5adc11a24084a385996794ba4ec51cdce
MD5 4d9c84edf375fc9e89bbb8b63f429e7c
BLAKE2b-256 8ed8420a509bca8778d398940be71849ccc444693a0737a2633bd49350589991

See more details on using hashes here.

Provenance

The following attestation bundles were made for supercov_cli-0.0.40-py3-none-manylinux_2_28_x86_64.whl:

Publisher: publish.yml on supercorp-ai/supercov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file supercov_cli-0.0.40-py3-none-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for supercov_cli-0.0.40-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 11ef8d029a7fbfec17c3a2caead5b357c078ca864717f88df4dd7a69f210a6a3
MD5 7fd929ffaa36a4efc77ae06962d057a2
BLAKE2b-256 6d86dac413f5f78c8f38d1ae5424829c8df202c34911405df7ba25d997bbce23

See more details on using hashes here.

Provenance

The following attestation bundles were made for supercov_cli-0.0.40-py3-none-manylinux_2_28_aarch64.whl:

Publisher: publish.yml on supercorp-ai/supercov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file supercov_cli-0.0.40-py3-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for supercov_cli-0.0.40-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d0633016975fb6f8bf731d802a4a0d78694a42719b9fa0da3990b1fc358ac1e1
MD5 ec3510d3c761e079b85fffe3ea1eef9e
BLAKE2b-256 e1b8d35e3daacbcd75b4b017f1749d8bd1822e5c74530b6db2632461a3325473

See more details on using hashes here.

Provenance

The following attestation bundles were made for supercov_cli-0.0.40-py3-none-macosx_11_0_x86_64.whl:

Publisher: publish.yml on supercorp-ai/supercov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file supercov_cli-0.0.40-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for supercov_cli-0.0.40-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d168f82df8a1195e3592ac7b35fda324ea98e2e8ada91c66cb431849c8c4f0c
MD5 d81c0476debfba729e64ebf942c63e1d
BLAKE2b-256 b43a285e88d274247769de5b1dd00820e1154fd3a805dedfda11c35c1b9c4b8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for supercov_cli-0.0.40-py3-none-macosx_11_0_arm64.whl:

Publisher: publish.yml on supercorp-ai/supercov

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.0.42

8 files

0.0.41

8 files

This release

0.0.40 This release

8 files

0.0.39

8 files

0.0.38

8 files

0.0.37

8 files

0.0.10

1 file

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