htmlhint/HTMLHint

⚙️ The static code analysis tool you need for your HTML

3,306

stars

1,106

commits

JavaScript

primary language

Sep 10, 2026

updated

htmlhint.com
analysis
code-analysis
code-quality
hint
html
htmlhint
javascript

README


HTMLHint — static analysis for HTML
HTMLHint

The static code analysis tool you need for your HTML.

npm Version Open Source Security Foundation (OpenSSF) best practices: Passing npm count MIT License

  How To UseContributingWebsite

Table of Contents

📟 Installation and Usage

HTMLHint requires Node.js 20 or later.

There are two ways to install HTMLHint: globally and locally.

Local Installation and Usage

In case you want to include HTMLHint as part of your project, you can install it locally using npm:

npm install htmlhint --save-dev

After that, You can run HTMLHint on any file or directory like this:

./node_modules/.bin/htmlhint www/index.html
./node_modules/.bin/htmlhint www/**/*.html

Or, you can use HTMLHint programmatically.

For ESM:

import { HTMLHint } from 'htmlhint'
const htmlVerificationHints = HTMLHint.verify(localHtmlContent)
console.log('htmlVerificationHints', htmlVerificationHints) // this logs a list of `Hint`s which contain information on all linting errors

For CommonJS:

const { HTMLHint } = require('htmlhint')

const htmlVerificationHints = HTMLHint.verify(localHtmlContent)
console.log('htmlVerificationHints', htmlVerificationHints) // this logs a list of `Hint`s which contain information on all linting errors

Global Installation and Usage

If you want to make HTMLHint available to tools that run across all of your projects, you can install HTMLHint globally using npm:

npm install htmlhint -g

After that, you can run HTMLHint on any file like this:

htmlhint www/index.html
htmlhint www/**/*.html

You can even launch HTMLHint to analyze an URL:

htmlhint https://htmlhint.com/

📃 Example output

🔧 Configuration

Search .htmlhintrc file in current directory and all parent directories:

htmlhint
htmlhint test.html

Custom config file:

htmlhint --config htmlhint.conf test.html

Custom rules:

htmlhint --rules tag-pair,id-class-value=underline index.html

Inline rules in test.html:

<!--htmlhint tag-pair,id-class-value:underline -->
<html>
  <head>
    ...
  </head>
</html>

📙 Docs

  1. How to use
  2. All Rules
  3. Changelog
  4. How to Develop

© License

MIT License

💪🏻 Contributors

This project exists thanks to all these people. Contribute. HTMLHint Contributors

🏅 Backers

Thank you to all our backers! Become a backer.

Backers

🎖 Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. Become a sponsor.

Sponsor

Contributors

(top 30 of 70)

dependabot[bot]

398 commits

coliff

191 commits

yaniswang

175 commits

thedaviddias

77 commits

htmlhint/HTMLHint

⚙️ The static code analysis tool you need for your HTML

3,306

stars

1,106

commits

JavaScript

primary language

Sep 10, 2026

updated

htmlhint.com
analysis
code-analysis
code-quality
hint
html
htmlhint
javascript

README


HTMLHint — static analysis for HTML
HTMLHint

The static code analysis tool you need for your HTML.

npm Version Open Source Security Foundation (OpenSSF) best practices: Passing npm count MIT License

  How To UseContributingWebsite

Table of Contents

📟 Installation and Usage

HTMLHint requires Node.js 20 or later.

There are two ways to install HTMLHint: globally and locally.

Local Installation and Usage

In case you want to include HTMLHint as part of your project, you can install it locally using npm:

npm install htmlhint --save-dev

After that, You can run HTMLHint on any file or directory like this:

./node_modules/.bin/htmlhint www/index.html
./node_modules/.bin/htmlhint www/**/*.html

Or, you can use HTMLHint programmatically.

For ESM:

import { HTMLHint } from 'htmlhint'
const htmlVerificationHints = HTMLHint.verify(localHtmlContent)
console.log('htmlVerificationHints', htmlVerificationHints) // this logs a list of `Hint`s which contain information on all linting errors

For CommonJS:

const { HTMLHint } = require('htmlhint')

const htmlVerificationHints = HTMLHint.verify(localHtmlContent)
console.log('htmlVerificationHints', htmlVerificationHints) // this logs a list of `Hint`s which contain information on all linting errors

Global Installation and Usage

If you want to make HTMLHint available to tools that run across all of your projects, you can install HTMLHint globally using npm:

npm install htmlhint -g

After that, you can run HTMLHint on any file like this:

htmlhint www/index.html
htmlhint www/**/*.html

You can even launch HTMLHint to analyze an URL:

htmlhint https://htmlhint.com/

📃 Example output

🔧 Configuration

Search .htmlhintrc file in current directory and all parent directories:

htmlhint
htmlhint test.html

Custom config file:

htmlhint --config htmlhint.conf test.html

Custom rules:

htmlhint --rules tag-pair,id-class-value=underline index.html

Inline rules in test.html:

<!--htmlhint tag-pair,id-class-value:underline -->
<html>
  <head>
    ...
  </head>
</html>

📙 Docs

  1. How to use
  2. All Rules
  3. Changelog
  4. How to Develop

© License

MIT License

💪🏻 Contributors

This project exists thanks to all these people. Contribute. HTMLHint Contributors

🏅 Backers

Thank you to all our backers! Become a backer.

Backers

🎖 Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. Become a sponsor.

Sponsor

Contributors

(top 30 of 70)

dependabot[bot]

398 commits

coliff

191 commits

yaniswang

175 commits

thedaviddias

77 commits

Languages

JavaScript

45.3%

TypeScript

28.4%

MDX

20.2%

CSS

2.9%

Astro

1.7%

HTML

1.4%