# Vale

> A markup-aware, open-source command-line linter for prose that enforces editorial style guides across docs in any format, entirely offline.

Vale is an open-source, MIT-licensed command-line tool that brings code-like linting to written prose. Built in Go by [@jdkato](https://github.com/jdkato) and maintained under the `vale-cli` GitHub organization, it runs entirely offline with no account or data upload required. The project has accumulated over 6,000 GitHub stars and ships across GitHub Releases, Docker Hub, PyPI, Homebrew, Chocolatey, WinGet, and Snap Store.

## What It Is

Vale is a prose linter — a tool that statically analyzes written text the same way a code linter analyzes source code. Unlike generic grammar checkers, Vale understands document structure: it parses markup formats rather than treating everything as plain text, so it can apply rules selectively to headings, paragraphs, or list items while automatically skipping code blocks, URLs, and footnotes. Rules are defined in YAML and organized into shareable packages called "styles," making it easy to enforce a consistent editorial voice across an entire documentation set.

## Markup and Code Awareness

Vale's core differentiator is its parser-level understanding of content. It supports twelve markup formats — Markdown, AsciiDoc, reStructuredText, MDX, MyST, Quarto, Typst, HTML, XML, DITA, Org, and QDoc — each processed through a real parser rather than a regex pattern. For source code, Vale uses tree-sitter grammars to extract comments from nineteen languages (Go, Rust, Python, Ruby, C++, JavaScript, TypeScript, Java, and more), linting doc comments as if they were standalone Markdown files while leaving string literals and identifiers untouched.

## Extension Points

Vale's rule system goes well beyond simple word lists. It offers twelve extension types:

- **existence** — flag unwanted words or phrases
- **substitution** — suggest replacements
- **sequence** — match part-of-speech patterns (noun, verb, etc.) rather than literal strings
- **conditional** — require one pattern only when another is present (e.g., acronym expansions)
- **consistency** — flag when two acceptable variants appear in the same file
- **metric** — apply arithmetic formulas like Flesch-Kincaid grade level across the whole document
- **script** — drop into Tengo (a Go-like scripting language) for arbitrary logic

Rules are a few lines of YAML and can be bundled into packages distributed via the Vale Package Explorer.

## Integrations and Ecosystem

Vale runs wherever prose gets written. Editor integrations include VS Code (and Cursor/Windsurf), Neovim via nvim-lspconfig, JetBrains IDEs, Sublime Text, Zed, Emacs, Obsidian, Vim/ALE, Oxygen XML, and Qt Creator. For CI/CD, it ships a GitHub Actions workflow (`vale-cli/vale-action`), pre-commit hooks, and a Language Server Protocol (LSP) server compatible with any LSP-capable editor. Documentation platforms Mintlify and Promptless ship Vale as a built-in check. Pre-packaged style guides for Microsoft, Google, Red Hat, and thirteen more are installable with a single command.

## Adoption Signal

The vale.sh homepage lists public configurations and writeups from organizations including Amazon Web Services (EKS User Guide), Microsoft (Documentarian toolkit), Discord (API docs), GitLab (required CI check), Grafana Labs (Writers' Toolkit), NVIDIA (NeMo Agent Toolkit), Docker, Red Hat, and Datadog — all sourced directly from the vendor's adopters page. The project reports over 9.8 million lifetime GitHub Release downloads and 2.2 million Docker Hub pulls, per the vale.sh distribution stats page.

## Update: v3.19.0

The latest release is **v3.19.0**, published on 2026-08-26, on the `v3` default branch. The project shows active maintenance with recent pushes and 59 contributors listed on the homepage. Vale CMS — a hosted authoring layer for building and maintaining style guides in the browser with the real Vale engine linting live — is available as a companion product at cms.vale.sh.

## Features
- Markup-aware parsing for 12 formats (Markdown, AsciiDoc, RST, MDX, HTML, XML, DITA, etc.)
- Code comment linting via tree-sitter grammars for 19 languages
- 12 rule extension types including sequence, conditional, consistency, metric, and script
- Offline operation — no account, no upload, no data leaves the machine
- Pre-packaged style guides for Microsoft, Google, Red Hat, and 13+ more
- Single binary with no runtime dependencies
- Language Server Protocol (LSP) server for editor integration
- GitHub Actions workflow for CI/CD integration
- Pre-commit hook support
- Tengo scripting for custom rule logic
- Part-of-speech pattern matching
- Readability formula rules (e.g., Flesch-Kincaid)
- Cross-file consistency checks
- Vocabulary and dictionary management
- Vale Studio for browser-based rule authoring
- Vale CMS for hosted style guide management

## Integrations
VS Code, Cursor, Windsurf, Neovim, JetBrains IDEs, Sublime Text, Zed, Emacs, Vim, Obsidian, Oxygen XML, Qt Creator, GitHub Actions, pre-commit, Docker, Mintlify, Promptless, Homebrew, Chocolatey, WinGet, Snap Store, PyPI, conda-forge

## Platforms
WINDOWS, MACOS, LINUX, WEB, API, VSC_EXTENSION, JETBRAINS_PLUGIN, CLI

## Pricing
Open Source

## Version
v3.19.0

## Links
- Website: https://vale.sh
- Documentation: https://docs.vale.sh
- Repository: https://github.com/errata-ai/vale
- EveryDev.ai: https://www.everydev.ai/tools/vale
