humanizer-ru: a Russian-language AI-text cleaner for Claude Code, Cursor and Codex
humanizer-ru: очеловечить русский AI-текст для Claude Code, Cursor, Codex и других AI-агентов. 64 признака нейросети, 21 жёсткий бан, сканер в комплекте. | Remove AI-generation markers from Russian text: open-source skill for Claude Code, Cursor, Codex and other agents.
At a glance
- What is it?
- humanizer-ru is an MIT-licensed agent skill that flags 64 markers of machine-written Russian and applies 21 hard bans, with a Python scanner shipped in the same repository. It is a local editor, not a rewriter, and it does not work on English text.
- Who is it for?
- Adopt humanizer-ru if your working language is Russian and your agent already writes or edits Russian prose: the scanner, the 21 hard bans and the audit mode are the parts worth installing first, and the eval harness gives you a way to check the edit against the source.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The Russian marker set that English humanizers miss
The README opens with a blunt claim: the English humanizer project it links to does not work on Russian text. The argument is that Russian AI markers have their own character. Bureaucratese (the README's example is "осуществление внедрения"), calques from English syntax such as "стоит отметить, что", and the missing particles "же", "ведь" and "вот" that carry ordinary spoken Russian. Those do not overlap with English patterns, so a rule set tuned on English prose has nothing to catch here.
The project also argues that the marker set moved on. Claude and GPT-4/5, per the README, learned to imitate depth with short chopped sentences, pseudo-Socratic questions and a pseudo-therapeutic register. That is a distinct layer, and the README says no other humanizer covers it. Category L in the repository is where those 2025-2026 fingerprints live.
Who it is for: people writing Russian inside an AI agent. The README names Claude Code, Cursor, Codex, Copilot and Cline, and the install path is a single npx command. If you write Russian marketing copy, documentation or articles with an agent and then publish them, this is the target audience. If you write English, the project has nothing for you.
How the skill splits editing from rewriting
The design choice that matters is that humanizer-ru edits locally rather than rewriting. The skill marks specific places in the text, and for each one it gives a quote, what is blocking the reader, and an action: leave it, cut the shell, say it more plainly, remove the duplicate. It then removes hard bans and markers in priority order A through D, and checks the result against the source on claims: who did what, degree of certainty, conditions, numbers with units.
The README is explicit that liveliness is not added. Emotions, particles, images and facts that are not in the source do not go into the text. That is a constraint, not a licence to write in your style, and it is the opposite of what most humanizer tools do.
The evidence for that choice is a paired run of 195 blind evaluations in September 2026, documented in eval/LOCAL_EDIT_CHECK.md. According to that file, quotas for "voice" produce someone else's intonation and staged rhetoric, while local editing barely breaks meaning. That is a self-reported internal evaluation, not an independent benchmark, and the README does not present it as one.
There are four modes. Editing is the default: scanner diagnostics, markup, edit, verification, then a report of "was N, now M". Audit only diagnoses and leaves the text alone. Point editing works on one category. The fourth mode runs silently on the agent's own Russian drafts against the hard-ban table before you see them, and the README states that someone else's text is never silently edited: your message, a file, a quote or someone else's code only go through the explicit modes, and you see the edit. Saying "не правь" disables the mode for the rest of the conversation.
Installing humanizer-ru and running a first audit
The README gives one command for any supported agent. The CLI finds installed agents and asks where to put the skill.
npx skills add ilyautov/humanizer-ruIn Claude Code the README offers a plugin route instead, so updates arrive through the plugin command.
/plugin marketplace add ilyautov/humanizer-ru
/plugin install humanizer-ru@ilyautov-pluginsThe scanner also ships as a Python package, and this is where the naming needs care. The PyPI project is ru-humanizer, because the README notes that the name humanizer-ru on PyPI is taken. The package requires Python 3.10 or newer and depends on razdel and pymorphy3. It exposes two console scripts: ru-humanizer for the CLI and ru-humanizer-mcp for the MCP server.
pip install ru-humanizer
ru-humanizer --helpA first real use, based on the modes the README describes, is to run audit mode on a piece of your own text before letting anything be changed. The README does not print the exact CLI invocation for audit mode, so check ru-humanizer --help for the flag rather than guessing at one. What you should see is a cleanliness score from 0 to 100 and highlights on the detected phrases. The same scanner runs in the browser at the project's demo page, which is the fastest way to see the output shape before installing anything.
The scanner, the 21 bans and what they do not promise
The scanner is the deterministic part of the project. It produces a cleanliness score from 0 to 100 and highlights the phrases it found. The README says it is calibrated against a corpus, and the PyPI description adds that the CLI and MCP server carry the same scanner that ships with the skill, without a copy of the code. The pyproject file confirms this: package-dir points humanizer_metrics at skills/humanizer-ru/scripts, so the module in the wheel and the module in the skill are the same file.
The 21 hard bans are a separate mechanism from the 64 markers. They are constructions with an absolute prohibition, from "В современном мире..." and "Стоит отметить, что..." through marketing clichés like "Раскрыть потенциал" and "Открывает новые горизонты". The README's before-and-after example crams three hard bans into one sentence to show the effect.
The limitation is stated by the project itself. The README says the tool aims at what GPTZero, DivEye and RuBERT measure and that it raises perplexity and burstiness. It does not claim a detector will pass your text, and nothing in the repository material supports a guarantee. Treat the score as a diagnostic, not a certificate. A second limit is structural: the scanner is Russian-specific. The morphology layer depends on pymorphy3, and the pattern list is written around Russian constructions, so pointing it at English text produces noise rather than signal.
Calibration against the author's voice, and where it stops
If you give the skill samples of your own writing, it records rhythm, vocabulary, punctuation and tone, and keeps its replacements inside those bounds. The README frames this as a restriction rather than permission to write in your manner. That is a sensible boundary: style transfer is where humanizer tools usually start inventing, and this one refuses to.
The practical consequence is that calibration is only as good as the samples. A handful of short paragraphs will not describe a voice, and the README does not say how many samples are enough. If your samples are themselves AI-assisted, you are calibrating against the thing you are trying to remove.
The eval harness is the part that makes this testable. The repository has an eval directory with metrics before and after, and the README points to LOCAL_EDIT_CHECK.md for the paired blind evaluation. The heavier dependencies for that harness, including torch and transformers, live in eval/requirements-eval.txt and are deliberately kept out of the core requirements. So the scanner installs light, and measuring the editor costs you a separate, heavier install.
Why this is the wrong tool for English or non-Russian work
The obvious alternative is the English humanizer the README links to, blader/humanizer. The difference in approach is not cosmetic. That project targets English AI markers, and humanizer-ru's own argument is that the two marker sets do not intersect: calques, bureaucratese and missing particles are Russian phenomena, and the 2025-2026 pseudo-therapeutic and chopped-sentence patterns were catalogued here for Russian output. If your text is English, blader/humanizer is the one aimed at your problem, and installing humanizer-ru will give you a scanner that misreads your prose.
A second alternative is to skip the tool and use a generic detector. That is a different job. A detector tells you a probability; humanizer-ru tells you which phrase is the problem and what to do about it, and the audit mode is essentially a detector with a reason attached. If all you want is a number, the demo scanner in the browser is enough and you do not need the skill installed.
A third case where this is the wrong tool: text you did not write and are not allowed to change. The README is careful here. Silent editing applies only to the agent's own Russian drafts, never to your message, a file, a quote or someone else's code. If your workflow is to clean up third-party Russian text at scale, this skill's explicit modes are the only path, and it will ask for your attention each time.
Maintenance, licence and the upgrade path
The repository is not archived, and the last push was on 2026-09-14, one day before this writing, with three releases that same day: v3.26.0 "Сканер сам по себе", v3.26.1 and v3.26.2. The release names are in Russian and the changelog is the place to read them. That cadence means the marker list is being revised often, which is the point of the project and also the cost: the 64 markers and 21 bans are a moving target, and a text you cleaned last month may score differently today.
The version is single across the repository. The pyproject file states that scripts/bump_release.py carries the version into the Python package, so the skill, the npm package and the PyPI package are meant to move together at 3.26.2. If you install through the Claude Code plugin route, the README says updates arrive through /plugin. If you install through npx, updating means re-running the add command.
Licensing is MIT for the repository and the Python package, with a LICENSE file at the root and license-files declared in pyproject. MIT is permissive and places few obligations on reuse, but the repository also carries TERMS.md, PRIVACY_POLICY.md and SECURITY.md, and those are separate documents from the licence. Read them before deploying the skill somewhere that processes other people's text; this is not legal advice, and the terms file is the authority.
Editorial conclusion
Adopt humanizer-ru if your working language is Russian and your agent already writes or edits Russian prose: the scanner, the 21 hard bans and the audit mode are the parts worth installing first, and the eval harness gives you a way to check the edit against the source. Do not adopt it for English or other non-Russian text, and do not treat it as a bypass for detectors, because the README itself says the scanner targets what GPTZero, DivEye and RuBERT measure rather than guaranteeing an outcome. Before trusting it on anything you publish, run audit mode on a sample of your own text, then run the local-edit mode and diff the result against the original for numbers, units, conditions and certainty. The PyPI package is named ru-humanizer, not humanizer-ru, so install the right one.
Frequently asked questions
Does humanizer-ru work on English text?
No. The README states that the English humanizer does not work for Russian text and builds the same argument in reverse: the 64 markers are Russian phenomena such as bureaucratese, calques and missing particles, and the morphology layer depends on pymorphy3. For English output you want the English project the README links to.
What is the difference between the skill and the ru-humanizer package on PyPI?
The PyPI project is named ru-humanizer because the name humanizer-ru was taken, and its description says it carries the same scanner as the skill without a copy of the code. The pyproject file confirms this by pointing package-dir at skills/humanizer-ru/scripts, so the module in the wheel and in the skill is one file. The package exposes ru-humanizer for the CLI and ru-humanizer-mcp for the MCP server.
Will humanizer-ru get my text past GPTZero or RuBERT?
The README does not promise that. It says the tool aims at what GPTZero, DivEye and RuBERT measure and that it raises perplexity and burstiness, and it presents a cleanliness score from 0 to 100 rather than a pass or fail. Treat the score as a diagnostic and check the output yourself.
Community notes