Vale: Your Style, Our Editor

Vale is a natural language linter that supports plain text, markup (Markdown, reStructuredText, AsciiDoc, and HTML), and source code comments. Vale doesn't attempt to offer a one-size-fits-all collection of rules—instead, it strives to make customization as easy as possible.
Check out project website to learn more!
Highlights
- Supports Markdown, reStructuredText, AsciiDoc, HTML, and source code.
- Extensible through straightforward YAML files.
- Standalone binaries for Windows, macOS, and Linux.
- Expressive, EditorConfig-like configuration.
Features
Vale's functionality is split into extension points (called "checks") that can be customized to perform many different kinds of tasks, including calculating readability, measuring sentence length, enforcing a particular heading style, and identifying undefined acronyms. See the Style Showcase for more advanced examples.
Additionally, since Vale is "syntax aware," you'll never have to worry about syntax-related false positives (e.g., URLs or code blocks). See Creating a style for more information.
Installation
There are a few options to choose from:
-
$ brew tap ValeLint/vale $ brew install vale
-
C:\> choco install vale -
A Windows Installer package (
.msi), which you'll find on the releases page. -
Manually on Windows, macOS, or Linux by downloading an executable from the releases page.
Usage
Run Vale on a single file:
$ vale README.mdRun Vale on files matching a particular glob:
# Only lint Markdown and reStructuredText
$ vale --glob='*.{md,rst}' directoryOr exclude files matching a particular glob:
# Ignore all `.txt` files
$ vale --glob='!*.txt' directoryPipe input to Vale:
$ echo 'this is some very interesting text' | valeRun Vale on text with an assigned syntax:
$ vale --ext=.md 'this is some `very` interesting text'See vale --help and Configuration for more information.
Integrations
- Atom—TimKam/atomic-vale
- Emacs—abingham/flycheck-vale
- Sublime Text—SublimeLinter-contrib-vale
- Visual Studio Code—lunaryorn/vscode-vale
- Vim—via ALE (thanks to @chew-z)
Reference Styles
| Style (source) | Download | Description | Development Status |
|---|---|---|---|
Joblint |
Joblint.zip |
Test tech job posts for issues with sexism, culture, expectations, and recruiter fails. | |
proselint |
proselint.zip |
A linter for English prose that aggregates knowledge about best practices in writing. | |
write-good |
write-good.zip |
Naive linter for English prose for developers who can't write good and wanna learn to do other stuff good too. |
To use one of these styles, you'd copy its files onto your StylesPath and then specify it in your config file:
# This goes in a file named either `.vale` or `_vale`.
StylesPath = path/to/some/directory
MinAlertLevel = warning # suggestion, warning or error
[*.{md,txt}] # Only Markdown and .txt files
# List of styles to load
BasedOnStyles = vale, Joblint
# Style.Rule = {YES, NO, suggestion, warning, error} to
# enable/disable a rule or change its level.
vale.Editorializing = NOSee Configuration and Styles for more information.
