Skip to main content

Coverage for coding agents and software factories 🌙

Coverage for coding agents and software factories 🌙

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.

Try the worked example: find an untested session-expiry condition, run an additional test, and compare the results.

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

Inspect assertion evidence (JS/TS)

After a run, inspect what existing assertions appear to check:

npx supercov runs latest assertions --limit 5
npx supercov runs latest assertions --pragmas --json
npx supercov runs latest assertions --evidence /tests --limit 5 --json

This npm-only query uses the run archive and matching source; it adds no new test-time instrumentation. It requires a compatible project TypeScript compiler API (5.8.3 and native 7.0.2 are tested). Results are candidates, not proof that changes are safe or a verified assertion percentage. Follow assertion-evidence.md for provenance, optional assertion hints, pagination, and limitations.

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 parameterized tests; expect assertions link the evidence they check
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

Free and open source

MIT licensed. Inspect, extend, and run it anywhere.

Release files for supercov-cli 0.0.43

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for supercov-cli 0.0.43
File
supercov_cli-0.0.43-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
supercov_cli-0.0.43-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
supercov_cli-0.0.43-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
supercov_cli-0.0.43-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
supercov_cli-0.0.43-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
supercov_cli-0.0.43-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details
supercov_cli-0.0.43-py3-none-macosx_11_0_x86_64.whl Python 3 none macOS 11.0+ x86-64 Details
supercov_cli-0.0.43-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 44.2 MB

Release files / supercov_cli-0.0.43-py3-none-win_arm64.whl

Download URL supercov_cli-0.0.43-py3-none-win_arm64.whl
Size 5.2 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
db8741c276859cf2c0cd79e5e0c265d9ba948578a4e0cb6c3ac23e3e33846c0d
BLAKE2b-256 checksum
How to use checksums
97d32b66e7522a58fe5b95beeb55d11d0ce40065a22e76cf31a46177d9b46480
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / supercov_cli-0.0.43-py3-none-win_amd64.whl

Download URL supercov_cli-0.0.43-py3-none-win_amd64.whl
Size 5.6 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
1dc1ff1570ef50c36cd85be0420ea87f8ee23c182337b844fd3fec3af1305981
BLAKE2b-256 checksum
How to use checksums
7056797424cb981f552673476c885b401cd33bfb8ba9c8d6e7b6ce14a23665f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / supercov_cli-0.0.43-py3-none-musllinux_1_2_x86_64.whl

Download URL supercov_cli-0.0.43-py3-none-musllinux_1_2_x86_64.whl
Size 5.9 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
c6dded5efeca7c72809fe5a2004a14f537e29dff7580050ef1e568668fba6744
BLAKE2b-256 checksum
How to use checksums
8b0aa9b5f9004da6773813e5a5db9b8088e2a49a77eaf08fab59dec46ecf7704
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / supercov_cli-0.0.43-py3-none-musllinux_1_2_aarch64.whl

Download URL supercov_cli-0.0.43-py3-none-musllinux_1_2_aarch64.whl
Size 5.5 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
8265cbb0bd6847d66a7e837709b83ac3ce6feac28a28a1d0acd423327ab38ee4
BLAKE2b-256 checksum
How to use checksums
ef64d35cbea615071ed689de1399df487924f19feb1fa21d0be23e641ccecc1f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / supercov_cli-0.0.43-py3-none-manylinux_2_28_x86_64.whl

Download URL supercov_cli-0.0.43-py3-none-manylinux_2_28_x86_64.whl
Size 5.8 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
4a5d6ba493ce630b7c1831acb977a13b273fa1f48a5c3c5cabbdfbdaa11b7a28
BLAKE2b-256 checksum
How to use checksums
d222d556a62e08f0ad88b58d9e8c33f63b3305370fffb7e731dd53dfddad6f77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / supercov_cli-0.0.43-py3-none-manylinux_2_28_aarch64.whl

Download URL supercov_cli-0.0.43-py3-none-manylinux_2_28_aarch64.whl
Size 5.5 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
91d8171e8c3c79ff9b0da52da694cfb3b94d9605321a53e823d832e2db9169dc
BLAKE2b-256 checksum
How to use checksums
74a74034d59fb931b975c22412eb1f46c2e84a38e7dab407902501a88455ca72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / supercov_cli-0.0.43-py3-none-macosx_11_0_x86_64.whl

Download URL supercov_cli-0.0.43-py3-none-macosx_11_0_x86_64.whl
Size 5.6 MB
Tags Python 3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
eb07238a19ca75284ce89d3fd208d85eabe58f428d246407b62a63a5b1a58bcc
BLAKE2b-256 checksum
How to use checksums
03433be87276f561778ad121d2380d5e93ba594e7a8bf981f4058a5a83f2eec1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release files / supercov_cli-0.0.43-py3-none-macosx_11_0_arm64.whl

Download URL supercov_cli-0.0.43-py3-none-macosx_11_0_arm64.whl
Size 5.1 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
781316d6cdff7c2c5fbbcdf51529308b070065e85a467cf4c53d64254f4df8fe
BLAKE2b-256 checksum
How to use checksums
9fbde26016aa8dec7958112dbb3f9fcc3326d9666344aaddb38b592136c3af53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 9, 2026.

Transparency log

Release history Release notifications | RSS feed

2.0.1

8 release files

2.0.0

8 release files

1.2.0

8 release files

1.1.1

8 release files

1.1.0

8 release files

1.0.1

8 release files

1.0.0

8 release files

0.0.55

8 release files

0.0.54

8 release files

0.0.53

8 release files

0.0.52

8 release files

0.0.51

8 release files

0.0.50

8 release files

0.0.49

8 release files

0.0.48

8 release files

0.0.47

8 release files

0.0.46

8 release files

0.0.45

8 release files

0.0.44

8 release files

This release

0.0.43 This release

8 release files

0.0.10

1 release 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