What is Vale?
Vale is a command-line tool that brings code-like linting to prose. Written in Go, it’s designed to be fast, cross-platform, and highly customizable. Unlike traditional grammar checkers, Vale understands markup formats and can enforce your organization’s specific style guidelines.Lightning Fast
Built with performance in mind, Vale can lint thousands of files in seconds. Benchmarks show it’s significantly faster than alternatives like textlint and proselint.
Markup-Aware
Native support for Markdown, AsciiDoc, reStructuredText, HTML, XML, and Org. Vale intelligently excludes code snippets and understands document structure.
Extensible Rules
Create custom rules using simple YAML files. No programming required. Choose from 12 built-in rule types to enforce any style guideline.
No Dependencies
Stand-alone binary with zero dependencies. No need to install Python, Node.js, or any runtime environment.
Key Features
Syntax-Aware Linting
Vale parses markup formats at the AST level, avoiding false positives in code blocks, frontmatter, and other non-prose content. It can scope rules to specific elements like headings, links, or blockquotes.
Flexible Configuration
Configure Vale using
.vale.ini files that can live in your project root or home directory. Set different styles for different file types, control which rules apply where, and adjust severity levels.Style as Code
Vale rules are written in YAML and can be version-controlled alongside your content. Share styles across teams, contribute to community styles, or build your own from scratch.
Why Vale?
Most linters for prose fall into one of two categories:- Opinionated tools that enforce a fixed set of rules you can’t customize
- Extensible tools that require you to write JavaScript, Python, or Java to create rules
How Vale Works
Vale processes your content in three stages:Parse
Vale reads your file and determines its format (Markdown, HTML, etc.). It then parses the content into an abstract syntax tree (AST), identifying prose elements versus code, metadata, and other non-prose content.
Scope
Based on your configuration and each rule’s scope, Vale determines which rules apply to which parts of the document. A rule scoped to
heading only checks headings, while text checks all prose.Vale’s Architecture
Vale is organized into several internal packages, each handling specific functionality:check: Loads and validates YAML rules, compiles regex patterns, and manages the rule execution enginecore: Defines core data structures likeFile,Alert, andConfig, and handles INI configuration parsinglint: Manages the linting process, including format detection, AST parsing, and rule applicationnlp: Provides natural language processing capabilities for readability metrics and tokenizationspell: Implements spell checking with support for Hunspell dictionaries
What You Can Build
Style Guides
Enforce your organization’s style guide: AP, Chicago, Microsoft, Google, or your own custom guidelines.
Terminology Management
Maintain consistent terminology across your documentation. Define accepted terms and flag deprecated alternatives.
Readability Standards
Set readability targets using metrics like Flesch-Kincaid, Gunning Fog, or custom formulas.
Inclusive Language
Identify and suggest alternatives for language that may not be inclusive or could be insensitive.
Comparison with Other Tools
Vale stands out among prose linters:| Feature | Vale | textlint | proselint | write-good |
|---|---|---|---|---|
| Extensible | Yes (YAML) | Yes (JavaScript) | No | Yes (JavaScript) |
| Markup Support | Markdown, AsciiDoc, RST, HTML, XML, Org | Markdown, AsciiDoc, RST, HTML | Plain text only | Plain text only |
| Spell Checking | Yes | Via plugins | No | No |
| Performance | Excellent | Good | Good | Good |
| Dependencies | None | Node.js | Python | Node.js |
| License | MIT | MIT | BSD 3-Clause | MIT |
Benchmarks show Vale is significantly faster than alternatives. On a corpus of 1,500 Markdown files, Vale completes in under 2 seconds while comparable tools take 10-30 seconds.
Real-World Usage
Vale is used by documentation teams at:- GitLab: Enforcing their documentation style guide across thousands of pages
- Spotify: Maintaining consistency in technical documentation
- Homebrew: Ensuring formula descriptions follow conventions
- Linode: Checking technical tutorials and guides
- And hundreds more: From startups to enterprises
Next Steps
Installation
Install Vale on macOS, Linux, or Windows in minutes.
Quick Start
Get Vale running on your first project in under 5 minutes.
Core Concepts
Learn about styles, scoping, and configuration.
Writing Rules
Create your first custom Vale rule.
Community and Support
GitHub
Source code, issues, and discussions
Package Hub
Pre-built style packages for popular style guides
Rule Explorer
Browse and test rules interactively