Vale CMS Need more than a rule playground? Explore
OPEN SOURCE · MIT · 6K STARS

Your style.
Our editor.

GitHub stars
6K
downloads
13.2M
teams listed
167

Vale brings code-like linting to prose. Turn a team’s style guide, a house voice, or a journal’s author guidelines into checks that run in your editor and alongside your code.

macOS, Windows & Linux · Runs offline

01Your guideline

Writing guide · Terminology

The product is Vale CLI. Don’t write Vale cli or vale-cli.

02A rule you own

styles/Docs/Terms.yml

extends: substitution
message: "Use '%s' instead of '%s'."
level: error
action:
  name: replace
swap:
  'Vale cli|vale-cli': Vale CLI
  'style ?guide': style guide
  'e-?mail': email
03Feedback where you write

docs/install.md

  1. # Installation
  2. Vale cli runs on macOS, Windows, and Linux.
error Use 'Vale CLI' instead of 'Vale cli'. Docs.Terms
Encode your guidelines in YAML, or start with a published style: Microsoft, Google, or Red Hat. Browse them all in the Explorer.

Why Vale

Most tools see text. Vale sees a document.

Check the writing in context. Target a heading, a comment, or a description, while leaving the code around it alone.

01Scopes

Your document has structure.
Your rules should too.

Apply different checks to headings, lists, and table cells. Vale parses the markup first, so code blocks and link URLs stay out of the way.

Explore markup and scopes
guide.mdWhat Vale sees
# Getting startedheading
Write with your team’s voice.paragraph
- Keep instructions clear.list
[Read the guide](https://example.com)URL skipped
```sh
vale docs/
```
code skipped

Check the prose. Preserve the code.

12 markup formats

  • Markdown
  • AsciiDoc
  • reStructuredText
  • MDX
  • MyST
  • Quarto
  • Typst
  • HTML
  • XML
  • DITA
  • Org
  • QDoc

02Code

The comments count, too.

Extract comments with tree-sitter grammars, then check the Markdown inside them. A comment marker inside a string stays code.

Markdown inside a doc comment
/// Creates a person with the given name. paragraph
///
/// # Examples heading
/// ``` code skipped
/// let person = Person::new("name");
/// ```
pub fn new(name: &str) -> Person { not a comment

19 languages

  • Go
  • Rust
  • Python
  • Ruby
  • C++
  • C
  • JavaScript
  • TypeScript
  • TSX
  • Java
  • Haskell
  • Julia
  • Lua
  • PHP
  • R
  • QML
  • Protobuf
  • YAML
  • CSS
Explore code comments

03Views

Find prose in unexpected places.

A View selects the writing inside structured files. Check an API description, a notebook cell, or a commit message with rules for that context.

Select the description
openapi: 3.1.0
info:
title: Example API
version: 1.0.0
description: Manage your projects. description
paths:
/projects: {}

Beyond documents

  • OpenAPI
  • Jupyter
  • Commit messages
  • Transcripts
  • Docstrings
  • JSON
  • YAML
  • TOML
Explore Views

04Speed

Built for the whole repository.

One Go binary. Parallel checks. No separate runtime.

See the benchmark

GitLab documentation · one run

Markdown pages
2,827
Rules applied
82
Start to finish
<20s

Distribution

Where Vale is downloaded

Seven registries publish a download count, and each counts a different window, so they sit side by side here rather than in one total.

13.2M
downloads to date
GitHub Releases, Docker Hub, conda-forge, Chocolatey · the channels reporting a lifetime total
6K
stars on GitHub
vale-cli/vale
63
contributors
across the main repository

Sources: GitHub, Docker Hub, PyPI, npm, conda-forge, Homebrew, Chocolatey, WinGet, Snapcraft, and Repology · updated 2026-08-28

From the blog

Notes from building Vale.

Releases, the standard library, and prose linting in the age of agents. Every post ships with Vale's own report on it.

  • A Vale rule that replaces the Git term "working copy" with the Lore term "working tree".

    How Epic Games keeps Lore from sounding like Git

    Lore is Epic's open source version control system, and its docs run a 62-rule Vale style whose job is to make a new product speak its own language. The config, the rules, and the script that runs them.

    0 alerts 5 min

  • The GOV.UK crest over the public sector's orbit pattern.

    How GOV.UK turned its style guide into a build step

    The UK government's plain-English rules, packaged as a Vale style, run by ten GOV.UK One Login repositories, and wired into an Android app's Gradle build so the source comments are checked too.

    0 alerts 5 min

  • Linting the four kinds of documentation

    Diataxis is a Vale package for the four kinds of documentation in Diátaxis: tutorials, how-to guides, reference, and explanation, each checked against the job it claims to do.

    0 alerts 6 min

A few lines of config.
A consistent first draft.

Start with an existing style guide. Keep the configuration in your project so everyone runs the same checks.

  1. Install Vale.Choose a package for your operating system.
  2. Pick your styles.Save this as .vale.ini in your project.
  3. Sync, then lint.Download the styles and check your docs.
StylesPath = styles
MinAlertLevel = suggestion
Packages = Microsoft

[*.md]
BasedOnStyles = Vale, Microsoft
$ vale sync
$ vale docs/
Make it your own with a YAML rule
extends: substitution
message: "Use '%s' instead of '%s'."
level: warning
swap:
  utilize: use
Learn to write rules →