skillfed

curlylint

{{ 🎀}} Experimental HTML templates linting for Jinja, Nunjucks, Django templates, Twig, Liquid

curlylint v0.13.1 101.3K downloads/30d#12,947 on PyPI256
Permissive license MIT DORMANT released

What it is and what it does

Curlylint is a command-line linter for HTML templates written in curly-brace template languages—Jinja, Nunjucks, Django templates, Twig, and Liquid. It parses template syntax and HTML structure together to detect issues that a plain HTML linter would miss. The tool focuses on accessibility checks, flagging common patterns that create barriers for users with disabilities.

The package is built on parsy for parsing, attrs for data structures, click for CLI, and toml for configuration files. It started as a fork of jinjalint and is classified as Alpha software. While the project is dormant (no releases since March 2022), it remains archived-free on GitHub and has no known security vulnerabilities.

Use it for:

  • Lint Django template files in a CI/CD pipeline to catch accessibility violations before deployment.
  • Check Jinja templates in a static site generator or Flask application for common HTML issues.
  • Validate Nunjucks or Twig templates in a web project to enforce accessibility standards.
  • Integrate template linting into a pre-commit hook to catch issues during development.
  • Audit existing template codebases for accessibility problems across multiple template languages.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Lints HTML templates in Jinja, Nunjucks, Django, Twig, and Liquid, checking for accessibility and common template issues via command-line tool.

Yes, if you actively lint templates in one of the five supported languages and need accessibility-focused checks. The low install friction and permissive license make it easy to try. However, dormancy since 2022 means no active maintenance—use it for existing projects but verify compatibility with your template engine versions and be prepared to maintain a fork if critical issues arise.

Install

curlylint on PyPI

pip

pip install curlylint

uv

uv add curlylint

poetry

poetry add curlylint

Installing curlylint

Before you install

Low install friction with six runtime dependencies. Maintenance is dormant—last release was 2022-03-30 and no commits since 2024-01-28—so expect no active bug fixes or feature development.

License in practice

MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions, provided you retain the license notice.

Quickstart

pip install curlylint
curlylint template-directory/

Requires Python 3.6 or later.

Verify before relying

  • Whether dormant status and 1598 days since last release affect real-world usability with current template engine versions.
  • Scope and maturity of accessibility checks relative to other linters in this space.
  • Whether the tool handles all syntax variants of the five supported template languages equally well.

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.6)
Install friction low — pure-Python wheel
Runtime dependencies 6 — parsy, attrs, click, toml, pathspec, dataclasses
Maintenance dormant — 1,598 days since the last release
Last repo commit
First released
Downloads 101,315/month — #12,947 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: curlylint-0.13.1-py3-none-any.whl

Keywords: curlylint, linter, linting, jinja, jinja2, django templates, twig, nunjucks, liquid, templates, html

Development Status :: 3 - AlphaEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Quality AssuranceTyping :: Typed

Tags

html template linterjinja lintingdjango template linteraccessibility lintingtemplate syntax checkernunjucks lintertwig template linting
template-lintingaccessibilitycli-tool

More Quality Assurance packages