pymarkdownlnt
A GitHub Flavored Markdown compliant Markdown linter.
What it is and what it does
PyMarkdown is a command-line Markdown linter that parses documents according to GitHub Flavored Markdown and CommonMark specifications, then applies structure-aware rules to check for style and formatting issues. Unlike simple regex-based linters, it understands document structure—headings, lists, links, and other block elements—and makes rule decisions based on parsed tokens rather than raw text patterns.
The tool is built around a rule engine that loads and runs focused checks (like heading level validation or list indentation rules) and supports optional extensions for parsing variations. It runs on Windows, macOS, and Linux, requires Python 3.10 or later, and is designed to fit into existing workflows like static analysis pipelines, pre-commit hooks, or dependency management systems. Configuration is available for customizing which rules apply to your project.
Use it for:
- Enforce consistent Markdown style in documentation repositories before commits or CI builds.
- Validate technical documentation against GFM and CommonMark standards in automated pipelines.
- Check Markdown files in a project directory for structural and formatting violations as part of code review.
- Integrate into pre-commit workflows to catch Markdown issues before they reach version control.
- Customize linting rules for project-specific Markdown guidelines without complex setup.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyMarkdown is a GitHub Flavored Markdown linter that analyzes document structure using a spec-compliant parser to enforce consistent Markdown style rules across files.
Yes. PyMarkdown is actively maintained, has low install friction, carries no known vulnerabilities, and offers structure-aware linting based on standardized specs—a meaningful step up from line-based pattern matching. Install it if you want automated Markdown quality checks in your project or CI pipeline.
Install
pymarkdownlnt on PyPI
pip
pip install pymarkdownlntuv
uv add pymarkdownlntpoetry
poetry add pymarkdownlntInstalling pymarkdownlnt
Before you install
Low install friction with a pure Python wheel distribution. The project is actively maintained with recent releases and shows consistent commit activity. Five runtime dependencies are all lightweight utilities.
License in practice
MIT license permits unrestricted use, modification, and distribution in both open-source and commercial projects with minimal restrictions.
Quickstart
pip install pymarkdownlnt
pymarkdown scan .
Requires Python 3.10 or later.
Verify before relying
- Whether custom rule plugins can be written by users or if rules are fixed to the built-in set.
- Performance characteristics when linting large Markdown document collections.
- Whether the linter integrates with common CI/CD platforms or pre-commit hooks beyond what the description mentions.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — typing-extensions, application-properties, application-file-scanner, columnar, py-walk |
| Maintenance | actively maintained — 33 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,508,368/month — #3,827 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pymarkdownlnt-0.9.39-py3-none-any.whl
Keywords: markdown, linter, markdown linter
Tags
More Application Frameworks packages
FastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
textualTextual is a Python framework for building…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
mcpBuild and connect to Model Context Protocol…
permissive · top 1,000 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
markdown-it-pyrsA Rust-backed Python Markdown parser that…
permissive · top 15,000 on PyPI
tree-sitter-markdownProvides a tree-sitter grammar for parsing…
permissive · top 5,000 on PyPI
mdformatMdformat is a CommonMark-compliant command-line…
permissive · top 5,000 on PyPI
rumdlA Rust-based Markdown linter and formatter that…
permissive · top 5,000 on PyPI
yamllintyamllint checks YAML files for syntax errors,…
copyleft · top 1,000 on PyPI
multimarkConverts Markdown to HTML, LaTeX, groff man,…
permissive · top 15,000 on PyPI
j2lintj2lint validates Jinja2 template syntax and…
permissive · top 15,000 on PyPI
markdown-it-pyA Python markdown parser that converts markdown…
permissive · top 100 on PyPI
markoMarko is a pure Python markdown parser that…
permissive · top 5,000 on PyPI
PyTestArchPyTestArch lets you define and test…
permissive · top 15,000 on PyPI