Istanbul
Istanbul is an open-source JavaScript coverage tool that instruments code with counters, showing how tests exercise a project.
What Istanbul is
Istanbul is an open-source JavaScript coverage tool that instruments code with counters, showing how tests exercise a project. It handles ES5 and ES2015+ JavaScript, with first-class ES6 and later support through babel-plugin-istanbul. Coverage includes lines, statements, functions, and branches. Reports can be emitted as terminal text, HTML, or lcov output, with reporters supplied directly or through npm packages. The nyc command-line interface supports subprocess instrumentation and works with most JavaScript test frameworks, including tap, mocha, and AVA. Listed integrations include nyc, c8, Jest, and node-tap; c8 uses Istanbul reports for V8 coverage. Source-mapped coverage is listed for Babel and TypeScript projects. Coverage gates are supported, but pull-request annotations are not. Istanbul can be installed as a development dependency and run before a mocha command. Advanced documentation covers source instrumentation, process trees, __coverage__ reports, and alternative reporters. The project uses the Revised BSD License.
Good
- Supports ES5 and ES2015+ JavaScript
- Measures line, statement, function, and branch coverage
- Provides text, HTML, and lcov reports
- nyc supports subprocess instrumentation
- Coverage gates are available
Watch out
- No pull-request annotations
Who it suits
Istanbul suits JavaScript and TypeScript projects that need coverage across several measurement types and report formats. It fits teams using frameworks such as Jest, mocha, tap, or AVA.
Verdict
Istanbul provides broad JavaScript coverage measurement with multiple report formats and testing integrations. Check whether its lack of pull-request annotations matters to your workflow.
The facts
Each one read from Istanbul's own pages, with the date it was checked.
What it does
- Advanced features
- Advanced documentation links to source instrumentation, process tree information, reports from a __coverage__ object and alternative reporters.checked 11 Oct 2026
- CLI use
- The quick start installs nyc as a development dependency and shows running it before mocha in a test script.checked 11 Oct 2026
- Configurable reports
- The nyc README says reporters can be built in or supplied by an npm package, and defaults to text output.checked 11 Oct 2026
- ES2015+ support
- The site lists first-class ES6/ES2015+ support through babel-plugin-istanbul.checked 10 Oct 2026
- ES6 support
- The site lists first class ES6/ES2015+ support through babel-plugin-istanbul.checked 11 Oct 2026
- Integrations
- Listed integrations are nyc, c8, Jest and node-tap; c8 uses Istanbul reports to display V8 coverage.checked 11 Oct 2026
- JavaScript support
- The site says Istanbul instruments ES5 and ES2015+ JavaScript.checked 10 Oct 2026
- License
- The Istanbul site identifies its license as Revised BSD License.checked 11 Oct 2026
- Open source project
- The Istanbul GitHub organization describes Istanbul as a JavaScript code coverage tool that computes statement, line, function and branch coverage.checked 11 Oct 2026
- Other framework support
- The homepage says nyc works with testing frameworks including tap, mocha, and AVA.checked 10 Oct 2026
- Purpose
- Istanbul instruments JavaScript code with line counters to track how well unit tests exercise a codebase.checked 11 Oct 2026
- Reports
- Istanbul provides reporters with terminal and HTML output.checked 11 Oct 2026
- Setup
- The quick start installs nyc as a development dependency with npm and shows using it before a mocha test command.checked 10 Oct 2026
- Subprocesses
- The site lists support for instrumenting subprocesses through the nyc command line interface.checked 11 Oct 2026
- Support
- The contributing page directs users to report bugs by opening an issue in the appropriate GitHub repository.checked 10 Oct 2026
- Supported JavaScript
- The site says Istanbul instruments ES5 and ES2015+ JavaScript.checked 11 Oct 2026
- Test frameworks
- The nyc client works with most JavaScript testing frameworks, and the site names tap, mocha and AVA as examples.checked 11 Oct 2026
- Testing integrations
- The integrations page lists nyc, c8, Jest, and node-tap as tools that integrate with Istanbul APIs for JavaScript test coverage.checked 10 Oct 2026
- Tutorials
- The tutorials cover AVA, ES2015+, Jest, mocha, Intern, IoT.js, tap and TypeScript.checked 11 Oct 2026
Where it runs
- Source mapped coverage
- The nyc README lists source mapped coverage for Babel and TypeScript projects.checked 11 Oct 2026
Alternatives to Istanbul
- 1

Codecov
Free planOpen sourceWebAPIExtensionLinux8.0From $5 a month - 2
Avidemux
Free planOpen sourceWebLinuxmacOSWindows7.3Free plan - 3
Coverage.py
Free planOpen sourceAPILinuxmacOSSelf-hosted7.3Free plan - 4

Coveralls
Free planWebAPILinuxSelf-hosted6.8From $10 a month - 5
ReportGenerator
Free planLinuxmacOSWindows6.8$79 one-time - 6
gcov
Free planLinuxmacOSWindows6.5Free plan
