
Vale
CLI按风格指南检查文档用语的写作 linter:可套用 Microsoft、Google 等现成规则包或自写 YAML 规则,解析 Markdown、AsciiDoc 等格式后再检查,完全离线,可接入编辑器与 CI。
Your style, our editor.
A command-line linter for prose. Turn your team's writing guidelines into checks that run
in your editor, in CI, and alongside your code—on macOS, Windows, and Linux, entirely offline.
Docs · Quickstart · Package Explorer · Vale CMS · Blog · Discord
Vale doesn't ship opinions of its own. It's a framework for enforcing your style: a published guide like Microsoft's or Google's, an in-house set of terms, or both. It's run by teams at AWS, NVIDIA, Microsoft, GitLab, and Red Hat, among others who publish their configs.
$ vale sync
SUCCESS Synced 2 package(s) to 'styles'.
$ vale docs/
docs/configure.md
3:7 suggestion Consider using 'use' instead of 'utilize'. Microsoft.Wordiness
3:44 suggestion 'are loaded' looks like passive voice. Microsoft.Passive
9:12 error Use 'Vale CLI' instead of 'Vale cli'. Docs.Terms
docs/install.md
3:40 warning Use 'select' instead of the input-specific verb 'Click'. Microsoft.UIVerbs
4:28 error Did you really mean 'existant'? Vale.Spelling
✖ 2 errors, 1 warning and 2 suggestions in 2 files.
:heart: Sponsors
Hi there! I'm @jdkato, the sole developer of Vale. If you'd like to help me dedicate more time to developing, documenting, and supporting Vale, feel free to donate through GitHub Sponsors or Open Collective. Any donation—big, small, one-time, or recurring—is greatly appreciated!
Spotlights
Mintlify An AI-native documentation platform built for developers. Ships Vale as a built-in CI check. |
Promptless Suggests doc updates when your product changes. Runs Vale on every doc its agents write. |
Sponsors at $1,000 and above get a dedicated page on vale.sh.
Organizations
Everyone who funds Vale, individuals included, is listed on the sponsors page.
Infrastructure
Thanks to GitBook for hosting the documentation.
Why Vale
Most tools see text. Vale sees a document.
- It parses your markup instead of guessing at it. Markdown, AsciiDoc, reStructuredText, HTML, and every other format go through a real parser. A rule can target headings, lists, or table cells, and code spans, URLs, and fenced blocks are skipped before a rule ever runs. See Scopes.
- Your comments are documentation too. Vale lifts comments and docstrings out of source code with tree-sitter grammars, so a comment marker inside a string literal stays code. The Markdown in a Rust doc comment, or the reStructuredText in a Python docstring, is linted as though it were its own file. See Code.
- It finds prose in files that aren't prose. A View says where the writing is in an OpenAPI description, a notebook cell, or a commit message, so Vale lints that and passes over the rest.
- Rules are files, and they read grammar. Extension points in YAML run from a token list to part-of-speech patterns, cross-file relationships, readability formulas, and scripts. A rule can carry its own fix, which an editor applies with one keystroke and an agent applies without deciding anything.
- One binary, nothing alongside it. Written in Go, with no runtime to install and files linted in parallel. See the benchmark on GitLab's documentation.
- Private by design. Nothing leaves your machine: no account, no upload, and no training on your writing.
Install
| macOS | brew install vale |
| Windows | choco install vale · winget install -e --id errata-ai.Vale |
| Linux | sudo snap install vale · sudo pacman -S vale · sudo apt install vale |
| Docker | docker pull jdkato/vale |
| Go | go install github.com/vale-cli/vale/v3/cmd/vale@latest |
Every release also ships prebuilt binaries for each platform. Scoop, MacPorts, FreeBSD ports, conda-forge, the APT archive, and the rest are on the installation page.
Quickstart
Vale needs a configuration file that says where to keep styles and which to apply. Create one at the root of your project:
StylesPath = styles
MinAlertLevel = suggestion
Packages = Microsoft
[*.md]
BasedOnStyles = Vale, Microsoft
Then download the styles and lint something:
vale sync
vale README.md
The Quickstart walks through each step. To skip the reading, open a chat already pointed at vale.sh/AGENTS.md and have an assistant set it up.
Styles
A style is a folder of YAML rules. Start from one that's published—Microsoft, Google, Red Hat, and more are one line in your config away—and browse them all in the Package Explorer. Or write your own:
# styles/Docs/Terms.yml
extends: substitution
message: "Use '%s' instead of '%s'."
level: error
swap:
'Vale cli|vale-cli': Vale CLI
That's the whole rule. See Styles for the rest, and Vale CMS to author a full project—config, rules, vocabularies, and tests—in the browser, with the real engine linting live.
Contributing
Bug reports, feature requests, documentation fixes, and pull requests are all welcome. Start with the contributing guide, which covers setting up a development environment, testing, benchmarking, and the contributor license agreement. This project follows a code of conduct.
License
相关资源

Hugo
CLI用 Go 编写的静态站点生成器,把 Markdown 内容在数秒内构建成文档站、博客或落地页,自带本地预览服务器以及图片、CSS 与 JS 处理管线。
gohugoio/hugo90.1k
mdBook
CLI把一组 Markdown 章节编译成带目录、全文搜索和主题切换的在线书籍,适合写作者连载手册、老师整理讲义和课程教材;agent 可直接改章节文件再构建预览。Rust 官方团队维护,可下载预编译程序,或装好 Rust 工具链后用 cargo 安装。
rust-lang/mdBook22.2k
textlint
CLI可插拔的自然语言检查工具,像检查代码一样按规则检查 Markdown 与纯文本稿件的用词、标点和术语一致性并自动修正,也能作为 MCP 服务运行。规则需另装,生态以日语、英语规则为主;需要 Node.js 20 以上。
textlint/textlint3.2k
lint-md
CLI检查并自动修复中文 Markdown 的排版问题,如中英文之间缺空格、中文语境误用半角标点、空链接等,适合写博客、知识库和技术文档时统一格式。命令行版 @lint-md/cli 由同一团队在 lint-md/cli 仓库维护,需要本机装有 Node.js。
lint-md/lint-md958
AutoCorrect
CLI自动纠正中英文(CJK)混排的空格与全半角标点,识别 Markdown、YAML、源码字符串与注释等 28 种以上文件;lint 模式输出 diff 或 JSON,便于接入 CI 检查文案。
huacnlee/autocorrect1.7k
Fabric
CLI把总结要点、提炼观点、改写润色等常用提示词做成可复用的 pattern,用管道命令调用多家模型或本地 Ollama 处理文本、网页与 YouTube 字幕,也可作为 REST API 服务运行;首次使用需运行 fabric --setup 配置模型。
danielmiessler/Fabric44.3k