Get started with Vale, a syntax-aware linter for prose built with speed and extensibility in mind.
In general, the recommended approach on all platforms is to use a package manager such as Homebrew (macOS) or Chocolatey (Windows):
choco install vale
See Chocolatey for more information.
brew install vale
See Homebrew for more information.
This will ensure that Vale is available on your
$PATH and allow you to stay
up to date with new releases.
Archives of precompiled binaries are available for Windows, macOS, and
Linux. To use one of these, you’ll need to download the archive for your
platform, extract it to a local directory, and (optionally) add the extracted
directory to your
An example of this process for Linux is given below:
wget https://github.com/errata-ai/vale/releases/download/v2.15.4/vale_2.15.4_Linux_64-bit.tar.gz mkdir bin && tar -xvzf vale_2.15.4_Linux_64-bit.tar.gz -C bin export PATH=./bin:"$PATH"
Vale is available on Docker Hub at jdkato/vale:
docker pull jdkato/vale
Vale requires three components: a
.vale.ini config file, a
directory (specified in the config file), and a document or directory to lint.
Here’s an example of calling Vale with locally-defined components (assuming
$(pwd)/fixtures/styles/demo contains a config file):
docker run --rm -v $(pwd)/styles:/styles \ --rm -v $(pwd)/fixtures/styles/demo:/docs \ -w /docs \ jdkato/vale .
By default, the image supports HTML, Markdown, AsciiDoc, and reStructuredText content. If you need support for DITA as well, you’ll need to add the relevant dependencies—for example,
# Choose a version to pin: FROM jdkato/vale:v2.15.2 # Copy a local installation of the DITA Open Toolkit: COPY bin/dita-ot-3.6 / ENV PATH="/dita-ot-3.6/bin:$PATH" ENTRYPOINT ["/bin/vale"]