Skip to main content

granka

Проверка русского текста на норму государственного языка прямо из терминала. Бесплатно, без регистрации, без зависимостей.

Вы пишете текст с локальным агентом, говорите ему «проверь норму» — он зовёт granka и читает разбор. Или запускаете сами, руками.

pipx install granka
granka norm article.md

Без установки вообще: uvx granka norm article.md.

Годится и pip install granka, если вы работаете внутри окружения. На маке с Homebrew команды pip может не быть, а установка в системный Python — закрыта; там берите pipx или uvx, они для того и сделаны.

Гранка · норма государственного языка

Текст: article.md · 328 знаков · тип: публичная потребительская информация

Найдено: 1

  Кешбэк — есть русский аналог · 4 раза
    заменить на: возврат части суммы
    Слово зафиксировано в словаре, но есть общеупотребительный русский аналог —
    по ч.6 ст.1 ФЗ-53 это спорная зона, проверьте уместность.
    строки: 1, 3, 7

Латиница: 2 вхождения (CRM, AI-ассистент) — показать: --latin

Проверено по 10 словарям из 11 в официальном перечне (183 387 ключей).
Латиница свёрнута в счётчик: 2. Это помощник, а не юридическое заключение:
покрытие словарей частичное, часть заимствований проверка не видит.
Пустой результат означает «мы не нашли», а не «нарушений нет».

Осталось сегодня: 29 344 знака (обновится 27.08 в 00:00 UTC).

Что именно проверяется

С 1 марта 2026 года действует статья 10.1 закона о защите прав потребителей: информация для потребителя должна быть на русском языке. Иностранное слово допустимо, если у него нет общеупотребительного русского аналога и оно зафиксировано в нормативных словарях (ч. 6 ст. 1 ФЗ-53). Условия действуют вместе, и второе — вопрос факта, а не вкуса.

Инструмент отвечает именно на вопрос факта:

  • заимствование без словарной фиксации — слова нет в нормативной базе;
  • слово с русским аналогом — в словаре есть, но аналог существует;
  • латиница — допустима только как товарный знак или фирменное наименование.

Ни грамматики, ни орфографии, ни стиля здесь нет.

Тип текста решает строгость

Статья 10.1 применима к потребительской информации, а не ко всякому тексту. Поэтому у проверки есть режимы:

granka norm offer.md                    # public — потребительская информация (по умолчанию)
granka norm banner.md --type ad         # реклама
granka norm memo.md   --type internal   # внутренний документ
granka norm notes.md  --type other      # прочий текст

На внутреннем документе и технической заметке проверка мягче: то же слово даёт наблюдение, а не юридическую формулировку.

Ключи

Ключ Что делает
--type тип текста: public, ad, internal, other
--latin показать латиницу находками, а не счётчиком
--json отдать ответ сервиса целиком
--fail-on-findings вернуть код 5, если что-то найдено
--url другой адрес сервиса (или переменная GRANKA_URL)

Текст можно передать потоком: cat article.md | granka norm.

Коды возврата

Код Что означает
0 проверка выполнена и получена целиком
1 ошибка вызова: нет текста, файл не прочитан, испорченный ответ
2 исчерпан дневной лимит
3 сервис недоступен, не отвечает или выключен
4 текст больше, чем принимается за один раз
5 найдены замечания, и запрошен --fail-on-findings

Ноль не означает «текст соответствует закону». Он означает, что проверка доведена до конца. Отказ никогда не притворяется чистым результатом: если сервис не ответил, вы увидите код 3 и строку «Проверка НЕ выполнена», а не пустой отчёт.

Для агентов

В пакете лежит навык для Claude Code — skills/granka-norm. Поставить вместе с плагином:

/plugin marketplace add slvfmts/granka-cli
/plugin install granka

После этого «проверь норму в этом файле» работает без дополнительных объяснений.

Агенту удобнее --json: там те же находки в машинном виде, со смещениями, основанием по каждому слову и остатком дневного лимита.

Границы

Покрытие словарей частичное: 10 словарей из 11 в официальном перечне, 183 387 ключей. Часть заимствований проверка не видит — пустой отчёт означает «мы не нашли», а не «нарушений нет». Инструмент не заменяет юриста и не выдаёт заключений.

Лимиты и приватность

Бесплатно и без регистрации: 30 000 знаков в сутки на адрес, до 20 000 знаков за один раз. Остаток и время сброса приходят в каждом ответе.

Текст нигде не сохраняется: проверка идёт локальной функцией на сервере, в базу уходит только счётчик знаков. Подробно — PRIVACY.md.

Лицензия

MIT. Клиент открыт; сервис проверки — https://granka.editors.one.

Metadata

Release files for granka 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for granka 0.1.0
File Size Uploaded
granka-0.1.0.tar.gz 17.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for granka 0.1.0
File Interpreter ABI Platform
granka-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 29.8 kB

Release files / granka-0.1.0.tar.gz

Download URL granka-0.1.0.tar.gz
Size 17.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c15e39d9fc43d60b064ec29e81720cc6b511910c7a7c945e9d35267abf5c1dc3
BLAKE2b-256 checksum
How to use checksums
158b3dc722bd2b4dc4b23c2d12389532be55d7c51593953782bf714005decd75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log

Release files / granka-0.1.0-py3-none-any.whl

Download URL granka-0.1.0-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cda31ce1df96e16310e85725a7825cc1ffaec2ca283ef325c16fc61787091ef1
BLAKE2b-256 checksum
How to use checksums
df7d8cd1bda3dd5ae51716a5cf8d7f5ea4029e06c794d873a1489264f79792d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page