The Nu Html Checker (vnu) is an open-source developer tool that catches mistakes in HTML, CSS, and SVG, usable as a command-line program, an HTTP service, or a Java library.
What is the Nu Html Checker?
The Nu Html Checker (vnu) is a standards validator that checks HTML, CSS, and SVG documents for conformance to web standards and reports errors and warnings. It is the engine behind validator.w3.org/nu and is developed in the validator/validator repository on GitHub. The checker accepts input from files, directories, URLs, or direct HTTP requests and produces human-readable error messages.
Key Features
- Multi-format validation — Validates HTML, CSS, and SVG in a single tool, catching unintended markup mistakes.
- Command-line batch checking — Accepts FILES, DIRECTORY, or URL arguments, so you can check many documents in one run from a terminal or script.
- HTTP service / REST API — Deploy as a standalone web server (using the precompiled binaries or vnu.jar) or as a WAR file in a servlet container like Apache Tomcat; exposes a REST API for checking documents over HTTP.
- Portable Java jar — vnu.jar runs on any system with Java 17 or above; the pre-compiled Linux, Windows, and macOS binaries include an embedded Java runtime and require no separate Java installation.
- Docker image — Official image at ghcr.io/validator/validator; run it with
docker run -it --rm -p 8888:8888 ghcr.io/validator/validator:latest. - Package manager installs — Install via npm as
vnu-jar, via Homebrew asvnu, or run with jbang. - Build automation integrations — Grunt plugin (grunt-html), Gulp plugin (gulp-html), and Maven plugin for HTML validation are available for CI/CD pipelines.
- Embedded Java API — Add the
nu.validator:validatorartifact to Maven or Gradle to validate HTML programmatically in your own Java code.
Who is it for?
- Web developers — validate HTML, CSS, and SVG files or live URLs before deployment to catch mistakes that could affect rendering or standards compliance.
- Build and DevOps engineers — integrate validation into automated build pipelines using the command-line client, Grunt/Gulp plugins, or Docker containers.
- QA engineers — use the REST API to validate pages as part of automated testing frameworks, or run the HTTP client against a local or remote validator instance.
- Java developers — embed validation directly in unit tests or applications using the nu.validator:validator Maven dependency.
Use cases
- Catching markup regressions: Validate every HTML file in a build output directory with a single command, skipping non-HTML files with
--skip-non-html. - Deploying a private validation service: Use the Docker image to run a self-hosted version of the Nu Html Checker on port 8888 for your team.
- Automating validation in CI: Add the Maven plugin or Gulp/Grunt plugins to your build so that invalid HTML fails the build.
- Learning web standards: Paste a URL into validator.w3.org/nu or run the checker locally to see exactly where your HTML deviates from WHATWG/W3C specs.
How does it work?
Run the checker from the command line with java -jar ~/vnu.jar [OPTIONS]... FILES|DIRECTORY|URL... or via Docker, for example docker run --rm -v /var/www/html:/data ghcr.io/validator/validator:latest vnu --skip-non-html /data. The checker parses each document, compares it against the relevant standards, and prints messages for each error or warning. You can also start it as a local HTTP service and use the bundled HTTP client for faster repeated checks.
Pricing
The Nu Html Checker is free and open source. All release artifacts — the precompiled binaries, vnu.jar, vnu.war, and Docker image — are available without charge from GitHub.
FAQ
Is the Nu Html Checker free?
Yes, the Nu Html Checker is free and open source. You can download the binaries, jar, war, or Docker image without paying a license fee, and the source code is available on GitHub.
What does the Nu Html Checker check?
It validates HTML, CSS, and SVG documents for conformance to web standards, catching unintended mistakes such as incorrect nesting, invalid attributes, or malformed CSS.
Do I need Java to run it?
Only if you use the vnu.jar or vnu.war packages — those require Java 17 or above. The precompiled Linux, Windows, and macOS binaries include an embedded Java runtime and run without any existing Java installation.
How do I validate a whole directory?
Pass the directory as the target argument, e.g., java -jar vnu.jar /path/to/directory, or use the Docker command with a mounted volume: docker run --rm -v /var/www/html:/data ghcr.io/validator/validator:latest vnu --skip-non-html /data.
Can I run it as a web service?
Yes, you can run it as a standalone web server using the precompiled binaries or vnu.jar, or deploy vnu.war inside a servlet container such as Apache Tomcat. Once running, it exposes a REST API on port 8888 by default.








