Back to directory
IgorBayerl avatar
IgorBayerl / nanovision

nanovision

Cli tool to generate coverage reports in a human readable way

8

Stars

1

Forks

0

Watchers

Apache-2.0

License

alt text
nanovision

The code coverage visualization tool that understands your code

Here is an example report, its a self coverage report of the nanovision project.

For more details check the docs

Build Status Go Report Card License GitHub Downloads (all assets, all releases)


nanovision converts coverage reports (Cobertura, GoCover, GCov) into human-readable visualizations.

View Example Report   |   Read the Docs


nanovision screenshot

Why nanovision?

While many CI tools give you a simple percentage, nanovision helps you understand what is covered and why it matters.

  • High Performance: Written in Go. Fast parsing, low memory footprint.
  • Report Merging: Combine Unit, Integration reports into a single unified view.
  • Patch Coverage: Analyze coverage specifically on new code (using diffs) to stop technical debt before it merges.
  • Deep Analysis: Calculates cyclomatic complexity and method/functions level metrics.
  • Modern UI: Generates a static, html pages that are easy to host anywhere.

Supported Formats

Input Formats Output Formats
Cobertura HTML
Go Cover Text Summary
GCov LCOV
Raw JSON

Installation

Windows

winget install nanovision

Linux

curl -sL https://raw.githubusercontent.com/IgorBayerl/nanovision/main/scripts/install.sh | bash

Or downdload From Releases

Download the binaries for Windows or Linux from the Releases Page.

GitHub Downloads (all assets, all releases)

Quick Start

0. Check nanovision instalation

nanovision -version
nanovision -help

1. Generate a basic HTML report

nanovision -report="coverage.out" -sourcedirs="."

2. Merge multiple reports

Combine coverage from different languages or test suites:

nanovision -report="cobertura.xml;gocover.out" -sourcedirs="src/csharp;src/go"

3. Patch Coverage (Diff Analysis)

Focus only on the lines changed in your branch (great for PR checks):

# 1. Generate a diff file
git diff main > changes.diff

# 2. Run nanovision with the diff flag
nanovision -report="coverage.out" -sourcedirs="." -diff="changes.diff"

Configuration

You can run nanovision entirely via CLI flags, or use a nanovision.yaml file for complex setups (like file filtering, risk thresholds, and excluded paths).

See the Configuration Documentation for details.

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for details on setting up the dev environment (Devcontainer included).

License

Licensed under the Apache 2.0 License.

Credits

Star History

Star History Chart

Releases

Release Notes Features

SARIF report + Problems panel — generate editor-native diagnostics (SARIF 2.1.0) and a collapsible Problems panel in the HTML report, surfacing coverage risks as inline warning...

Feb 25, 2026

Download .zip

Changelog

1663404 Add GDScript static analysis 8e34f41 Add clear logging to cache package dd41aff Enhance cache resilience and logging by integrating structured logging into cache manager initializat...

Nov 29, 2025

Download .zip

Changelog

Fixed diff parsing failing to parse UTF-16 files. Add extra debug and info logs.

Nov 25, 2025

Download .zip

Changelog

Fix perforce diff not being correctly parsed. Testing new release workflow for build and publish to winget

Nov 20, 2025

Download .zip

This is the first release of Nanovision, a command-line tool designed to analyze, and visualize code coverage data across multiple reports. Release Highlights

Multi-Report Parsing: Support for Go Cov...