nabokov source on GitHub

A linter for English prose.

Hard sentences, adverbs, passive voice: one warning per line.

draft.md

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.

what it flags

--target

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

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.

try it

$ uvx nabokov draft.md

One command, no setup: uvx fetches nabokov and the language model on first run.

install it for good
$ uv tool install nabokov 
$ nabokov download-model
$ nabokov draft.md

Python 3.12 or newer.

nabokov-editor, the skill

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.