Vale is a command-line tool that brings code-like linting to prose. It's fast, cross-platform (Windows, macOS, and Linux), and highly customizable.
At a Glance: Vale vs.
NOTE: While all of the options listed below are open-source (CLI-based) linters for prose, their implementations and features vary significantly. And so, the "best" option will depends on your specific needs and preferences.
|Tool||Extensible||Checks||Supports Markup||Built With||License|
|Vale||Yes (via YAML)||spelling, style||Yes (Markdown, AsciiDoc, reStructuredText, HTML, XML)||Go||MIT|
|RedPen||Yes (via Java)||spelling, style||Yes (Markdown, AsciiDoc, reStructuredText, Textile, Re:VIEW, and LaTeX)||Java||Apache-2.0|
The exact definition of "Supports Markup" varies by tool but, in general, it means that the format is understood at a higher level than a regular plain-text file (for example, features like excluding code blocks from spell check).
Extensibility means that there's a built-in means of creating your own rules without modifying the original source code.
All benchmarking was performed using the open-source hyperfine tool on a MacBook Pro (2.9 GHz Intel Core i7):
$ hyperfine --warmup 3 '<command>'
The corpus IDs in the above plots—
ydkjs—correspond to the following files:
A snapshot of GitLab's open-source documentation (1,500 Markdown files).
A chapter from the open-soure book You Don't Know JS.