Hard sentences, adverbs, passive voice: one warning per line.
The rollout was quietly delayed by the team, in order to fully polish the launch.
$ nabokov --format=flake8 draft.md
draft.md:1:13: NB302 passive voice: 'was quietly delayed by the team'
draft.md:1:17: NB301 adverb 'quietly' — consider a stronger verb
draft.md:1:46: NB401 wordy: 'in order to' → to
draft.md:1:58: NB301 adverb 'fully' — consider a stronger verb
4 issues in 1 file
Code gets review. Prose gets a shrug.
nabokov reads your draft and prints each problem as a warning. Every check has a code, so you can select or silence it. Run it on a file, a folder, or piped text.
The Hemingway Editor, a writing app, inspired the rule set. nabokov runs the checks with spaCy, a library that understands English grammar. It knows a verb from a noun, so fewer false alarms.
One bar does not fit every text. --target names your reader. Plain language wants accessible. Expert docs want technical. Prose with a voice gets essay. The default is normal.
Each target sets the style budgets too. An essay earns more adverbs than a manual. Under budget, findings stay advisory; over it, they turn into warnings.
$ nabokov --target essay draft.md
AI text has an accent. The --ai flag hunts for it. Buzzwords, chatbot filler, the "not this, but that" reflex. Plus sentences that all sound the same.
The list of signs comes from Wikipedia's guide to spotting AI writing.
$ uvx nabokov draft.md
One command, no setup: uvx fetches nabokov and the language model on first run.
$ uv tool install nabokov
$ nabokov download-model
$ nabokov draft.md
Python 3.12 or newer.
Static rules see form, not meaning. The repo ships nabokov-editor, a skill that teaches AI agents to edit prose. It replaces the scattered humanizer, unslop, and anti-slop prompts. Your agent runs the linter, fixes the findings, then reads for what rules miss:
Fixes keep the meaning. Big edits wait for your approval.
# Claude Code
/plugin marketplace add viewflow/nabokov
/plugin install nabokov@viewflow
# Cursor, Codex, Gemini CLI, and other agents
$ npx skills add viewflow/nabokov
Then ask your agent to de-slop a file.