Vale
Джозеф Като (jdkato), проект vale-cli · лицензия MIT
Проверяет статьи и документацию по вашим правилам стиля и находит канцелярит с подсказкой замены, запретные слова, пустые усиления и длинное тире. Замечания идут по строкам.
✓ Проверено 13.10.2026: Ubuntu 24.04 (x86_64) в одноразовом контейнере Docker на сервере, от root: Vale 3.24.0 из архива выпуска на GitHub, без других установок. Что именно проверяли
Какую задачу решает
Проверяет тексты по правилам стиля, которые вы пишете сами, и находит канцелярит с подсказкой замены, слова под запретом, лишние усилители, тире там, где у вас принят дефис, и разнобой в написании терминов. Агент прогоняет черновик статьи, документацию или заметки в Markdown перед публикацией и получает список замечаний с номером строки.
- Читает папку или отдельные файлы Markdown, HTML и обычный текст. В Markdown по документации пропускает блоки кода, строчный код и адреса ссылок, пропуск блока кода мы видели в прогоне.
- Правила хранит в файлах YAML внутри проекта, например «замени это слово на то» или «найди эти слова». В нашем прогоне правила с русскими словами сработали, слово внутри другого слова («неуникальный») правило не задело.
- Список терминов в двух файлах: accept.txt с правильными написаниями и reject.txt со словами под запрет, каждое найденное слово из reject.txt идёт как ошибка.
- Отдаёт замечания таблицей для человека, строками или в JSON для агента. Код выхода 1 говорит, что нашлись ошибки (замечания с пометкой error), 0 - что их нет, 2 - что сама проверка не запустилась. С ключом --no-exit код 0 и при найденных ошибках.
- Командой vale test проверяет сами правила на коротких примерах, это появилось в 3.24.0. Готовые наборы правил (Microsoft, Google, write-good и другие) по документации ставит командой vale sync, мы ставили так свой набор из локального архива.
Пример результата
Говоришь агенту
В папке docs лежат черновики в Markdown. Заведи в проекте .vale.ini и стиль House: канцелярит с заменой (осуществляет, в настоящее время, данный), список пустых усилений, среди них «уникальный», правило на длинное тире, слово «имейл» в список запретных. Проверь папку и покажи замечания по строкам.
Что получится
Мы прогнали этот сценарий на тестовых файлах. По черновику вышло 7 замечаний, из них 5 ошибок, код выхода 1: «осуществляет» с подсказкой «делает», «в настоящее время» с подсказкой «сейчас», «Данный», два слова из списка усилений, длинное тире и «имейл». Строку в блоке кода и слово «неуникальный» программа не тронула. Чистый файл прошёл с итогом «0 errors, 0 warnings and 0 suggestions», код 0. Сами черновики программа не правила, контрольные суммы до и после совпали.
Паспорт
- Кто делает
- Джозеф Като (jdkato), проект vale-cli
- Сайт
- vale.sh
- Исходный код
- github.com/vale-cli/vale
- Инструкция
- docs.vale.sh/topics/installation
- Лицензия
- MIT
- Версия
- 3.24.0 на 13.10.2026
- Системы
- macOS · Windows · Linux
- Где работает
- На компьютере, на сервере и в контейнере
- Цена
- Бесплатно
- Проверка
- Проверено 13.10
Установить агентом
Установи программу «Vale». Работай по шагам и после каждого коротко говори, что сделал.
Что это за программа (каталог smyslokod.ru, официальные источники сверены 13.10.2026):
- официальный сайт: https://vale.sh/
- исходный код: https://github.com/vale-cli/vale
- инструкция по установке: https://docs.vale.sh/topics/installation
- актуальная версия на 13.10.2026: 3.24.0
- лицензия: MIT
- для работы нужно (в отдельных случаях): Asciidoctor - через него Vale читает файлы AsciiDoc, по документации без него их не проверить
- для работы нужно (в отдельных случаях): Docutils (rst2html) - даёт команду rst2html, которой Vale разбирает reStructuredText
- для работы нужно (в отдельных случаях): xsltproc - нужен, если проверяете XML: Vale переводит его в текст через эту программу
Правила:
1. Ничего не устанавливай и не меняй, пока я не скажу «да» на твой план.
2. Ставь только способами из этого промпта. Сторонние сборки, скрипты с форумов и из чужих репозиториев не бери.
3. Мои проекты не трогай: не меняй их файлы, виртуальные окружения и списки зависимостей (package.json, requirements.txt, pyproject.toml).
4. Команды с sudo, правку профиля оболочки (~/.zshrc, ~/.bashrc) и переменной PATH делай только после моего отдельного «да» на каждую.
5. Не проси у меня пароли и ключи и не выводи их. Если нужен пароль администратора, дай команду, я выполню её сам.
6. Файлы .vale.ini и стиль в проекте заводи только по «да» и покажи их человеку. vale sync запускай отдельным «да»: команда качает правила из сети и заменяет одноимённые стили в StylesPath.
7. Для разбора бери --output=JSON. Код 1 означает найденные ошибки по правилам, код 2 говорит о сломанной настройке.
8. Тексты по замечаниям правь только в тех файлах, которые назвал человек, и покажи, что поменял.
9. Ключ NLPEndpoint в .vale.ini не добавляй: с ним текст уходит на чужой адрес.
Шаги:
0. Определи, где ты работаешь: мой компьютер, сервер или контейнер. Какая система и процессор, какие менеджеры пакетов есть (Homebrew, apt, winget, uv, pipx). Ставить нужно туда, где ты сам запускаешь команды.
- на компьютере: работает в терминале без окна, замечания печатает прямо туда.
- на сервере: подходит для проверки текстов перед выкладкой и в CI. Ошибки по правилам дают код 1, на него можно настроить остановку сборки.
- в контейнере: мы проверяли в контейнере Ubuntu 24.04 от root. Проект выпускает и свой образ Docker jdkato/vale, его мы не запускали.
1. Проверь, не стоит ли программа уже: vale --version ; which -a vale. Если стоит и запускается, ничего не ставь и переходи к шагу 5.
2. Обязательных зависимостей у программы нет, то, что нужно в отдельных случаях, перечислено выше. Проверь свободное место на диске: нужно Архив для Linux x86-64 весит 13 052 499 байт, файл vale внутри 55 963 072 байт (около 53,4 МиБ), больше программа ничего не ставит. vale.exe в архиве для Windows весит 56 706 048 байт. Скачанные наборы правил лежат в папке StylesPath проекта, их размер зависит от набора. Сколько займёт установка через Homebrew, мы не мерили..
3. Составь план: каким одним способом из списка ниже будешь ставить, что появится на диске и сколько места займёт, что поменяется в системе и как потом удалить. Покажи план и жди моего «да».
Способы из официальных источников:
- macOS, Homebrew: brew install vale (так советует документация, формула на 13.10.2026 ставит 3.24.0. Ни установку, ни удаление через Homebrew мы не проверяли)
- Windows, winget: winget install -e --id errata-ai.Vale (так советует документация, в каталоге winget на 13.10.2026 есть 3.24.0. Удаляют командой winget uninstall по документации winget. Ни установку, ни удаление мы не проверяли)
- Linux, готовый файл с GitHub: mkdir -p ~/.local/bin && curl -fsSL -o /tmp/vale.tgz https://github.com/vale-cli/vale/releases/download/v3.24.0/vale_3.24.0_Linux_64-bit.tar.gz && echo "867534ddb678abca7f214bc4706ead0922bd5252ffe8035fc227013f66c8b214 /tmp/vale.tgz" | sha256sum -c - && tar -xzf /tmp/vale.tgz -C ~/.local/bin vale && rm /tmp/vale.tgz (это архив для x86-64, для ARM64 на странице выпуска лежит vale_3.24.0_Linux_arm64.tar.gz со своей суммой. Архив 13 052 499 байт, сумму мы сверили с файлом checksums со страницы выпуска. Команда кладёт один файл vale в ~/.local/bin, эта папка должна быть в PATH. Мы ставили ровно так, за 1 секунду)
4. Установи по согласованному плану. Если что-то идёт не так, как в плане, остановись и спроси.
5. Проверь результат:
- vale --version: программа запускается без ошибки;
- Сделай тестовый проект: .vale.ini с StylesPath = styles и словарём Terms, стиль House с правилами на канцелярит с заменой, пустые усиления и длинное тире, accept.txt и reject.txt со словом «имейл». Положи в docs черновик с нарушениями, блоком кода и словом «неуникальный» и чистый файл. Проверь папку с выводом JSON и сверь каждое замечание, коды выхода 1 и 0, режим только ошибок, --no-exit, код 2 на несуществующей настройке, vale test для правил, vale sync из локального архива. Сверь контрольные суммы исходных файлов до и после. Делай это во временной папке и не трогай мои файлы.
export PATH=$HOME/.local/bin:$PATH
vale --version
vale ls-dirs
cd proj
vale --output=JSON docs/
vale docs/clean.md
vale --no-color docs/draft.md
vale --minAlertLevel=error --output=line docs/draft.md
vale --no-exit --output=line docs/draft.md
vale --config=missing.ini docs/draft.md
vale test styles
cd /work/proj2 && vale sync --plain-progress && vale --output=line docs/a.md
- если ты работаешь в папке моего проекта, покажи git status: от установки в проекте не должно появиться изменений.
6. Итог одним сообщением: что установлено, какой версии и куда, сколько места заняло, что поменялось в системе и как всё удалить (macOS, Homebrew: brew uninstall vale; Windows, winget: winget uninstall -e --id errata-ai.Vale; Linux, готовый файл с GitHub: rm -f ~/.local/bin/vale).
Если на любом шаге ошибка, не чини наугад: покажи текст ошибки и скажи, что, по-твоему, случилось. Частые проблемы: https://smyslokod.ru/cli/vale#problemyПромпт собран из официальных инструкций, сверенных 13.10.2026. Агент сначала проверит, что уже стоит, покажет план с местом на диске и способом удаления и без твоего «да» ничего не поставит.
Как ставят вручную
Способы из официальных источников, у каждого ссылка на первоисточник.
macOS · Homebrew · источник
brew install vale
так советует документация, формула на 13.10.2026 ставит 3.24.0. Ни установку, ни удаление через Homebrew мы не проверяли
Windows · winget · источник
winget install -e --id errata-ai.Vale
так советует документация, в каталоге winget на 13.10.2026 есть 3.24.0. Удаляют командой winget uninstall по документации winget. Ни установку, ни удаление мы не проверяли
Linux · готовый файл с GitHub · источник
mkdir -p ~/.local/bin && curl -fsSL -o /tmp/vale.tgz https://github.com/vale-cli/vale/releases/download/v3.24.0/vale_3.24.0_Linux_64-bit.tar.gz && echo "867534ddb678abca7f214bc4706ead0922bd5252ffe8035fc227013f66c8b214 /tmp/vale.tgz" | sha256sum -c - && tar -xzf /tmp/vale.tgz -C ~/.local/bin vale && rm /tmp/vale.tgz
это архив для x86-64, для ARM64 на странице выпуска лежит vale_3.24.0_Linux_arm64.tar.gz со своей суммой. Архив 13 052 499 байт, сумму мы сверили с файлом checksums со страницы выпуска. Команда кладёт один файл vale в ~/.local/bin, эта папка должна быть в PATH. Мы ставили ровно так, за 1 секунду
Как удалить
- macOS, Homebrew:
brew uninstall vale - Windows, winget:
winget uninstall -e --id errata-ai.Vale - Linux, готовый файл с GitHub:
rm -f ~/.local/bin/vale
Что нужно для работы
- Asciidoctor (в отдельных случаях) - через него Vale читает файлы AsciiDoc, по документации без него их не проверить
- Docutils (rst2html) (в отдельных случаях) - даёт команду rst2html, которой Vale разбирает reStructuredText
- xsltproc (в отдельных случаях) - нужен, если проверяете XML: Vale переводит его в текст через эту программу
Системы
- macOS - документация советует Homebrew, есть готовые архивы для Intel и Apple Silicon. На Mac мы не проверяли.
- Windows - winget по документации проекта, есть готовые архивы для x64 и ARM64. На Windows мы не проверяли.
- Linux - мы проверяли на Ubuntu 24.04 x86-64: готовый файл из архива выпуска, отдельные библиотеки ставить не пришлось. Архив есть и для ARM64.
Где запускать
Ставить нужно туда, где работает агент: на твой компьютер, сервер или в контейнер.
- На компьютере - работает в терминале без окна, замечания печатает прямо туда.
- На сервере - подходит для проверки текстов перед выкладкой и в CI. Ошибки по правилам дают код 1, на него можно настроить остановку сборки.
- В контейнере - мы проверяли в контейнере Ubuntu 24.04 от root. Проект выпускает и свой образ Docker jdkato/vale, его мы не запускали.
Сколько ресурсов нужно
- Место на диске
- Архив для Linux x86-64 весит 13 052 499 байт, файл vale внутри 55 963 072 байт (около 53,4 МиБ), больше программа ничего не ставит. vale.exe в архиве для Windows весит 56 706 048 байт. Скачанные наборы правил лежат в папке StylesPath проекта, их размер зависит от набора. Сколько займёт установка через Homebrew, мы не мерили.
- Память
- Память мы не мерили. Проверка двух тестовых файлов заняла 193 мс вместе с запуском программы.
- Видеокарта
- Видеокарта не нужна.
- Сеть
- Для установки нужна сеть: архив скачивается с github.com, в нашем прогоне соединения шли к 140.82.121.4 и 185.199.108-111.133 (адреса GitHub). Внутри контейнера netwatch записал его DNS 127.0.0.11. Во время проверки текстов соединений не было. vale sync ходит в сеть, когда пакет назван по имени или адресом: список имён берёт из library.json на GitHub, архивы качает по ссылкам из него. Из локального архива vale sync в нашем прогоне сеть не тронул.
Лицензия и платные замены
Лицензия MIT. Свободная лицензия, текст лежит в репозитории и в архиве выпуска. У автора есть сервис Vale CMS с бесплатным и платными тарифами, сама программа и правила бесплатные. Текст лицензии
Цена: Бесплатно. Программа и правила бесплатные, лицензия MIT. У автора есть сервис Vale CMS для правки правил в браузере. Тариф Free бесплатный, Pro стоит 19 долларов в месяц, Site 1000 долларов в год. Сервер MCP при нём по документации относится к платной части. Для работы программы сервис не нужен.
Платные замены
- Markup AI (ранее Acrolinx) - Корпоративная система проверки текстов по правилам стиля и списку терминов компании. Цены на сайте нет, доступ через заявку на показ.
Бесплатные замены
- LanguageTool - Проверяет орфографию, пунктуацию и грамматику, в том числе русского текста. Vale по документации занят прежде всего правилами стиля, грамматику лучше проверять отдельной программой.
О чём помнить
- Безопасность. Агент запускает vale в терминале сам (exec). Программа читает файлы, которые ей передали, файл настройки .vale.ini из папки проекта или выше по дереву, общую настройку из папки пользователя и правила из StylesPath (read). Сама проверка печатает замечания, в нашем прогоне исходные файлы после неё совпали по sha256. Команда vale sync пишет в StylesPath проекта (write): создаёт папку, удаляет и пересобирает в ней .vale-config, стиль с тем же именем заменяет целиком (acts). Входа в учётные записи и ключей программа не просит.
- Файлы AsciiDoc, reStructuredText, XML, DITA и Typst Vale по исходному коду разбирает чужими программами из PATH и запускает их сам (exec), это asciidoctor и ruby, rst2html и python, xsltproc, dita, typst2vast. Markdown, HTML и обычный текст он читает без посторонней помощи.
- Чужие наборы правил подключай с оглядкой, vale sync скачивает их по имени или по любой ссылке на архив. Правила script на языке Tengo выполняются при проверке, по исходному коду 3.24.0 им доступны только модули text, fmt и math, без файлов и сети. Если в .vale.ini есть ключ NLPEndpoint, текст уходит на этот адрес запросом POST: в чужой настройке проверь этот ключ до запуска.
- Встроенная проверка орфографии Vale.Spelling работает со словарём американского английского, русские слова пропускает: на нашем русском тексте она не дала ни одного замечания. Русский словарь Hunspell по документации подключают ключом dictionaries, мы это не проверяли. Сообщения встроенных правил на английском, например «Avoid using 'имейл'».
- Код 1 означает, что в тексте нашлись ошибки по правилам, программа при этом отработала. Предупреждения и подсказки код выхода не меняют. Сбой настройки даёт код 2.
Частые проблемы
E100 [--config] Runtime error ... path 'missing.ini' does not exist ... Execution stopped with code 2.
Нет файла настройки по указанному пути. В прогоне программа вернула код 2 и ничего не проверила. Проверь путь в --config или запусти vale из папки, где лежит .vale.ini.
The StylesPath '...' doesn't exist.
По документации путь StylesPath считается от папки самого файла .vale.ini и папка должна существовать. Мы получили эту ошибку в первом прогоне, когда положили настройку в папку выше проекта. Создай папку или поправь путь. vale sync создаёт её сам, если в настройке есть Packages.
Слово из reject.txt не отмечено, хотя стиль House включён
Слова из словаря проверяет встроенный стиль Vale (правило Vale.Avoid), а его не включили в BasedOnStyles. Мы на этом ошиблись в первом прогоне. Добавь Vale в BasedOnStyles: BasedOnStyles = Vale, House.
Проверка
✓ Проверено 13.10.2026: Ubuntu 24.04 (x86_64) в одноразовом контейнере Docker на сервере, от root: Vale 3.24.0 из архива выпуска на GitHub, без других установок.
- Когда
- 13.10.2026
- Среда
- Ubuntu 24.04 (x86_64) в одноразовом контейнере Docker на сервере, от root: Vale 3.24.0 из архива выпуска на GitHub, без других установок
- Объём
- Установили и прогнали задачу на тестовых данных
- Что именно сделали
- Одноразовый контейнер Ubuntu 24.04 без данных и ключей. Скачали архив vale_3.24.0_Linux_64-bit.tar.gz со страницы выпуска, сверили sha256 с суммой выпуска и положили файл vale в ~/.local/bin. vale --version вывел «vale version 3.24.0».
- Скрипт прогона сам сделал тестовый проект: .vale.ini, стиль House из четырёх правил на русском, словарь с запретным словом «имейл», черновик в Markdown с нарушениями и блоком кода и чистый файл.
- Проверили папку docs с выводом JSON за 193 мс. Код выхода 1, 7 замечаний, из них 5 ошибок, каждое скрипт сверил по строке и тексту. Подсказка замены пришла в виде «Пиши 'делает' вместо 'осуществляет'.». Строку в блоке кода и слово «неуникальный» программа не отметила.
- Чистый файл прошёл с кодом 0. Режим только ошибок убрал из вывода пустые усиления, ключ --no-exit дал код 0. Несуществующая настройка дала ошибку E100 и код 2.
- Команда vale test прогнала два примера для правила канцелярита, оба прошли. vale sync поставил набор правил из локального архива, правило из него нашло восклицательный знак в заголовке, соединений не было.
- Встроенная проверка орфографии на русском тексте не дала замечаний. С WordTemplate без границ слова правило поймало «уникальный» внутри «неуникальный».
- Исходные файлы после всех проверок совпали по sha256. Во время проверки текстов netwatch соединений не записал. Каждый результат скрипт сверил сам и только после этого напечатал TASK_OK.
- Удалили файл vale и проверили, что команда больше не находится. Контейнер после прогона удалён вместе с тестовыми файлами.
| Дата | Версия | Объём | Где | Итог |
|---|---|---|---|---|
| 13.10.2026 | 3.24.0 | задача | контейнер, Linux | получилось |
«Проверено» ставим, только когда сами поставили программу и прогнали её на задаче. Сверка ссылок и вывод версии так не называются.
Похожие программы
- PandocПереводит документы из формата в формат: Markdown в Word и PDF, Word в Markdown. Агенту нужен, чтобы отдавать результат так, как его ждут люди.
- HugoПревращает тексты в Markdown в статичный сайт или блог: HTML-страницы, карта сайта и лента RSS. Показывает сайт на компьютере, папку public кладут на хостинг статичных сайтов.
- TypstСобирает PDF из текстовой разметки: счёт, КП, отчёт. Данные берёт из JSON или CSV и сама считает итоги по формулам шаблона.
Программу делают её авторы. Мы сверяем официальные источники и описываем, что ей нужно, но код остаётся чужим. Перед установкой посмотри план агента: что он поставит и что поменяет в системе.