For the complete documentation index, see llms.txt. This page is also available as Markdown.

Quickstart

Get Vale running on your project in about five minutes.

This walks through a first working setup. Each step links to the page that covers it properly, so read on where you want the detail.

1. Install Vale

Use your package manager—brew install vale, choco install vale, or one of the others on the Installation page—then check it worked:

$ vale --version

2. Create a .vale.ini

Vale doesn't ship with opinions of its own. It needs a configuration file saying where to keep styles and which to apply, so create one in the root of your project:

.vale.ini
StylesPath = styles
MinAlertLevel = suggestion

Packages = Microsoft

[*.md]
BasedOnStyles = Vale, Microsoft

Four things are happening:

  • StylesPath is the folder Vale will keep downloaded styles in. Add it to your .gitignore.

  • MinAlertLevel is the lowest severity worth reporting.

  • Packages names what to download—here, Microsoft's writing style guide.

  • [*.md] applies the styles that follow it to Markdown files. Vale is built in; Microsoft is the package.

See .vale.ini for everything the file accepts.

3. Download the styles

Run this again whenever you change Packages. See Packages for other ways to name one, including a URL or a local path.

4. Lint something

You can pass a directory instead of a file, or a glob:

5. Read the output

Each line is one alert:

The rule name is the useful part: it's <style>.<rule>, and it's how you turn one off. To silence that rule for Markdown, name it in your config:

Severity matters for automation. Only error sets a non-zero exit code, so a CI job fails on errors and passes with warnings and suggestions:

See MinAlertLevel for changing what gets reported, and BasedOnStyles for enabling and disabling rules.

Setting up with a coding agent

If an AI assistant is doing the setup, give it AGENTS.md rather than this page. It covers the same four steps, plus the things that are easy to get wrong without reading further: only error sets a non-zero exit code, --output=JSON is the format to parse, and a term that trips spell check belongs in a vocabulary rather than in a disabled rule.

Save it in the root of your repository, where most assistants read it automatically.

For task-shaped work — fixing alerts, triaging a first run, adding a vocabulary — there are agent skills to copy in alongside it. In Claude Code, the skills, an edit-time linting hook, and the Vale CMS MCP server install together as one plugin:

The skills and the hook run the CLI you just installed and need no account. The hook lints each prose file as your assistant writes it and hands back only error-level alerts, so a mistake is fixed in the same turn it was made. The MCP server is the one paid piece — it belongs to Vale CMS and gives an assistant the engine itself to check a rule against, rather than the docs about it.

Where to go next

  • Browse the Package Explorer for styles beyond Microsoft.

  • Write your own rules with Styles and the checks reference.

  • Narrow what Vale reads using Scopes.

Last updated