CheckOps
c8
c8 is an ISC-licensed code coverage tool for Node.js that uses V8's built-in coverage instead of instrumentation, producing Istanbul-compatible reports for any test runner.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
c8 outputs coverage reports using Node.js’s built-in V8 coverage. Rather than rewriting your code with instrumentation, as nyc/Istanbul does, c8 sets NODE_V8_COVERAGE, lets V8 record what ran, and converts the result to Istanbul’s format. That means fewer moving parts, native support for ES modules and TypeScript run through loaders, and no Babel plugin.
Usage is a prefix to any command: c8 node test.js, c8 mocha or c8 node --test. Reports use Istanbul reporters, so you get text summaries, HTML, lcov for Codecov or Coveralls, and more. Options include include/exclude globs, --all to report files that were never loaded, and thresholds via --check-coverage with --lines, --branches and --functions. The latest release, v12.0.0, was published on 14 July 2026.
The source code is at bcoe/c8 on GitHub under the ISC licence, with about 2,100 stars; the most recent commit was on 28 October 2026.
It works well with the built-in Node.js test runner.
Features
- Native V8 coverage: No source instrumentation.
- Works with any runner: Prefix any Node.js command.
- Istanbul reporters: text, HTML, lcov, JSON and more.
- Thresholds: Fail builds below coverage targets.
Pros
- Free to use: Open source under the ISC licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 28 October 2026.
Cons
- Node.js only: Browser coverage needs other tools.
- Different numbers: Results can differ slightly from Istanbul-instrumented coverage.
Usage and Links (Example)
npm install --save-dev c8
npx c8 --reporter=text --reporter=lcov mocha
npx c8 --check-coverage --lines 85 --branches 80 node --test
.c8rc.json:
{ "all": true, "include": ["src/**"], "reporter": ["text", "html", "lcov"] }
Resources:
Pricing
c8 is free and open source under the ISC licence.
Recommended for?
- Node.js projects using ESM or native runners that want simple coverage.
- Teams moving off nyc to avoid instrumentation.
Conclusion
c8 is the simplest way to get accurate coverage for modern Node.js code, using V8’s native support with familiar Istanbul reports.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with c8 side by side.
Nnyc (Istanbul)nyc is the ISC-licensed command-line interface for Istanbul, the long-standing JavaScript code coverage tool that instruments code to report line, branch, function and statement coverage.Compare with c8
CCodecovCodecov by Sentry is a code coverage reporting service that shows coverage for any language, CI and code host in pull request comments and dashboards, with flags, carryforward, test analytics for flaky tests and AI test generation.Compare with c8
CCoverallsCoveralls is a hosted code coverage history and statistics service that integrates with your CI to report repository, file and line-by-line coverage with pull request notices; free for open source with paid plans for private repos.Compare with c8
NNode.js Test Runner (node:test)The Node.js test runner is the built-in `node:test` module, stable since Node.js 20, providing describe/it tests, mocking, snapshots, coverage and reporters with no extra dependencies.Compare with c8
MMochaMocha is a long-running, MIT-licensed JavaScript test framework for Node.js and browsers, with BDD and TDD interfaces, async support, hooks, parallel mode and a large reporter ecosystem.Compare with c8
Nnode-tapnode-tap (the `tap` package from tapjs) is a full-featured Node.js test framework built on the Test Anything Protocol, with TypeScript support, built-in coverage, snapshots, mocking and a plugin system.Compare with c8