{"id":13409770,"url":"https://github.com/errata-ai/vale","last_synced_at":"2026-01-11T23:54:28.291Z","repository":{"id":37244279,"uuid":"81020247","full_name":"errata-ai/vale","owner":"errata-ai","description":":pencil: A markup-aware linter for prose built with speed and extensibility in mind.","archived":false,"fork":false,"pushed_at":"2025-04-17T00:45:23.000Z","size":75351,"stargazers_count":4773,"open_issues_count":58,"forks_count":166,"subscribers_count":32,"default_branch":"v3","last_synced_at":"2025-05-06T17:14:10.892Z","etag":null,"topics":["linter","linting","vale"],"latest_commit_sha":null,"homepage":"https://vale.sh","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/errata-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"open_collective":"vale","github":"jdkato"}},"created_at":"2017-02-05T20:34:36.000Z","updated_at":"2025-05-06T14:37:11.000Z","dependencies_parsed_at":"2023-02-16T01:30:50.621Z","dependency_job_id":"a6bbf906-6e65-4939-9a9d-ed03fbe23d08","html_url":"https://github.com/errata-ai/vale","commit_stats":{"total_commits":1624,"total_committers":48,"mean_commits":"33.833333333333336","dds":0.0431034482758621,"last_synced_commit":"e4548caa4110300ce553ab8d985bd940b5d49b8f"},"previous_names":["valelint/vale","jdkato/vale"],"tags_count":184,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/errata-ai%2Fvale","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/errata-ai%2Fvale/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/errata-ai%2Fvale/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/errata-ai%2Fvale/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/errata-ai","download_url":"https://codeload.github.com/errata-ai/vale/tar.gz/refs/heads/v3","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253476329,"owners_count":21914542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linter","linting","vale"],"created_at":"2024-07-30T20:01:03.270Z","updated_at":"2026-01-11T23:54:28.285Z","avatar_url":"https://github.com/errata-ai.png","language":"Go","readme":"# Vale: Your style, our editor [![Build status](https://ci.appveyor.com/api/projects/status/snk0oo6ih1nwuf6r?svg=true)](https://ci.appveyor.com/project/jdkato/vale) [![GitHub All Releases](https://img.shields.io/github/downloads/errata-ai/vale/total?logo=GitHub\u0026color=ff69b4)](https://github.com/errata-ai/vale/releases) [![Docker Pulls](https://img.shields.io/docker/pulls/jdkato/vale?color=orange\u0026logo=docker\u0026logoColor=white)](https://hub.docker.com/r/jdkato/vale) [![Chocolatey](https://img.shields.io/chocolatey/dt/vale?color=white\u0026label=chocolatey\u0026logo=chocolatey)](https://community.chocolatey.org/packages/vale) [![Homebrew](https://img.shields.io/homebrew/installs/dy/vale?color=yellow\u0026label=homebrew\u0026logo=homebrew)](https://formulae.brew.sh/formula/vale) [![Gurubase](https://img.shields.io/badge/Gurubase-Ask%20Vale%20Guru-006BFF)](https://gurubase.io/g/vale)\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eVale\u003c/b\u003e is a command-line tool that brings code-like linting to prose. It's \u003cb\u003e\u003ca href=\"#mag-at-a-glance-vale-vs-\"\u003efast\u003c/a\u003e\u003c/b\u003e, \u003cb\u003ecross-platform\u003c/b\u003e (Windows, macOS, and Linux), and \u003cb\u003ehighly customizable\u003c/b\u003e.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"75%\" alt=\"A demo screenshot.\" src=\"https://vale.sh/media/mac.png\"\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e\u003ca href=\"https://vale.sh/docs/vale-cli/installation/\"\u003eDocs\u003c/a\u003e\u003c/th\u003e\n\u003cth\u003e\u003ca href=\"https://studio.vale.sh/\"\u003eVale Studio\u003c/a\u003e\u003c/th\u003e\n\u003cth\u003e\u003ca href=\"https://vale.sh/hub/\"\u003ePackage Hub\u003c/a\u003e\u003c/th\u003e\n\u003cth\u003e\u003ca href=\"https://vale.sh/explorer/\"\u003eRule Explorer\u003c/a\u003e\u003c/th\u003e\n\u003cth\u003e\u003ca href=\"https://vale.sh/generator/\"\u003eConfig Generator\u003c/a\u003e\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003c/table\u003e\n\u003c/div\u003e\n\n## :heart: Sponsors\n\n\u003e Hi there! I'm [@jdkato](https://github.com/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](https://github.com/sponsors/jdkato) or [Open Collective](https://opencollective.com/vale). Any donation\u0026mdash;big, small, one-time, or recurring\u0026mdash;is greatly appreciated!\n\n### Organizations\n\n\u003ca href=\"https://opencollective.com/vale\"\u003e\u003cimg src=\"https://opencollective.com/vale/organizations.svg?width=890\"\u003e\u003c/a\u003e\n\n### Other\n\n\u003e Thanks to [DigitalOcean][1] for providing hosting credits for [Vale Studio][2].\n\n\u003cp\u003e\n  \u003ca href=\"https://www.digitalocean.com/\"\u003e\n    \u003cimg src=\"https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_blue.svg\" width=\"201px\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n### Individuals\n\n\u003ca href=\"https://opencollective.com/vale\"\u003e\u003cimg src=\"https://opencollective.com/vale/individuals.svg?width=890\"\u003e\u003c/a\u003e\n\n## :boom: Key Features\n\n- [x] **Support for markup**: Vale has a rich understanding of many [markup formats](https://vale.sh/docs/topics/scoping/#formats), allowing it to avoid syntax-related false positives and intelligently exclude code snippets from prose-related rules.\n\n- [x] A **highly customizable** [extension system](https://vale.sh/docs/topics/styles/): Vale is capable of enforcing _your style_\u0026mdash;be it a standard [editorial style guide](https://github.com/errata-ai/styles#available-styles) or a custom in-house set of rules (see [examples][6]).\n\n- [x] **Easy-to-install**, stand-alone binaries: Unlike other tools, Vale doesn't require you to install and configure a particular programming language and its related tooling (such as Python/pip or Node.js/npm).\n\nSee the [documentation](https://vale.sh) for more information.\n\n## :mag: At a Glance: Vale vs. `\u003c...\u003e`\n\n\u003e **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.\n\n### Functionality\n\n| Tool       | Extensible           | Checks          | Supports Markup                                                         | Built With | License      |\n| ---------- | -------------------- | --------------- | ----------------------------------------------------------------------- | ---------- | ------------ |\n| Vale       | Yes (via YAML)       | spelling, style | Yes (Markdown, AsciiDoc, reStructuredText, HTML, XML, Org)              | Go         | MIT          |\n| textlint   | Yes (via JavaScript) | spelling, style | Yes (Markdown, AsciiDoc, reStructuredText, HTML, Re:VIEW)               | JavaScript | MIT          |\n| RedPen     | Yes (via Java)       | spelling, style | Yes (Markdown, AsciiDoc, reStructuredText, Textile, Re:VIEW, and LaTeX) | Java       | Apache-2.0   |\n| write-good | Yes (via JavaScript) | style           | No                                                                      | JavaScript | MIT          |\n| proselint  | No                   | style           | No                                                                      | Python     | BSD 3-Clause |\n| Joblint    | No                   | style           | No                                                                      | JavaScript | MIT          |\n| alex       | No                   | style           | Yes (Markdown)                                                          | JavaScript | MIT          |\n\nThe 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).\n\nExtensibility means that there's a built-in means of creating your own rules without modifying the original source code.\n\n### Benchmarks\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd width=\"50%\"\u003e\n            \u003ca href=\"https://user-images.githubusercontent.com/8785025/97052257-809aa300-1535-11eb-83cd-65a52b29d6de.png\"\u003e\n                \u003cimg src=\"https://user-images.githubusercontent.com/8785025/97052257-809aa300-1535-11eb-83cd-65a52b29d6de.png\" width=\"100%\"\u003e\n            \u003c/a\u003e\n        \u003c/td\u003e\n        \u003ctd width=\"50%\"\u003e\n            \u003ca href=\"https://user-images.githubusercontent.com/8785025/97051175-91e2b000-1533-11eb-9a57-9d44d6def4c3.png\"\u003e\n                \u003cimg src=\"https://user-images.githubusercontent.com/8785025/97051175-91e2b000-1533-11eb-9a57-9d44d6def4c3.png\" width=\"100%\"\u003e\n            \u003c/a\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd width=\"50%\"\u003e\n          This benchmark has all three tools configured to use their implementations of the \u003ccode\u003ewrite-good\u003c/code\u003e rule set and Unix-style output.\n        \u003c/td\u003e\n        \u003ctd width=\"50%\"\u003eThis benchmark runs Vale's implementation of \u003ccode\u003eproselint\u003c/code\u003e's rule set against the original. Both tools are configured to use JSON output.\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd width=\"50%\"\u003e\n            \u003ca href=\"https://user-images.githubusercontent.com/8785025/97053402-c5bfd480-1537-11eb-815b-a33ab13a59cf.png\"\u003e\n                \u003cimg src=\"https://user-images.githubusercontent.com/8785025/97053402-c5bfd480-1537-11eb-815b-a33ab13a59cf.png\" width=\"100%\"\u003e\n            \u003c/a\u003e\n        \u003c/td\u003e\n        \u003ctd width=\"50%\"\u003e\n            \u003ca href=\"https://user-images.githubusercontent.com/8785025/97055850-7b8d2200-153c-11eb-86fa-d882ce6babf8.png\"\u003e\n                \u003cimg src=\"https://user-images.githubusercontent.com/8785025/97055850-7b8d2200-153c-11eb-86fa-d882ce6babf8.png\" width=\"100%\"\u003e\n            \u003c/a\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd width=\"50%\"\u003e\n          This benchmark runs Vale's implementation of Joblint's rule set against the original. Both tools are configured to use JSON output.\n        \u003c/td\u003e\n        \u003ctd width=\"50%\"\u003eThis benchmark has all three tools configured to perform only English spell checking using their default output styles.\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\nAll benchmarking was performed using the open-source [hyperfine](https://github.com/sharkdp/hyperfine) tool on a MacBook Pro (2.9 GHz Intel Core i7):\n\n```\nhyperfine --warmup 3 '\u003ccommand\u003e'\n```\n\nThe corpus IDs in the above plots\u0026mdash;`gitlab` and `ydkjs`\u0026mdash;correspond to the following files:\n\n- A [snapshot][7] of GitLab's open-source documentation (1,500 Markdown files).\n\n- A [chapter][8] from the open-source book _You Don't Know JS_.\n\n[1]: https://www.digitalocean.com/open-source/credits-for-projects\n[2]: https://studio.vale.sh/\n[3]: https://appwrite.io/oss-fund\n[4]: https://appwrite.io/\n[5]: https://page.famewall.io/vale\n[6]: https://vale.sh/#users\n[7]: https://gitlab.com/gitlab-org/gitlab/-/tree/7d6a4025a0346f1f50d2825c85742e5a27b39a8b/doc\n[8]: https://raw.githubusercontent.com/getify/You-Dont-Know-JS/1st-ed/es6%20%26%20beyond/ch2.md\n","funding_links":["https://opencollective.com/vale","https://github.com/sponsors/jdkato"],"categories":["Go","others","Содержание:","Sharing","nlp","Tools","Spell Checking and Linting"],"sub_categories":["Markdown, редактура","Regex"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferrata-ai%2Fvale","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferrata-ai%2Fvale","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferrata-ai%2Fvale/lists"}