How Unslop works
AI can help write a first draft. Then you read it and find the same stock phrases, padded explanations, and paragraphs that all seem to follow the same pattern.
Unslop helps you find those habits and edit them. The aim is to make writing easier to read and closer to the way you would say it.
This is a personal project for me and the people I work with. I'm not building it to make money. I want a useful editing tool, and I want people to be able to see how it works.
You can read this page without an account or API key. Create an account to run checks and rewrites in your own workspace, or use an existing API key.
A small example
Before
It's worth noting that this pivotal update represents a significant step forward. We fixed the search bug. Your saved filters now work.
After
We fixed the search bug. Your saved filters now work.
The useful facts were already there. Removing the introduction lets the reader reach them sooner.
This is an illustrative edit, not a recorded API response. This short example is skipped under the default 50-word gate, and its large deletion exceeds the default micro-edit limits. It illustrates an editorial choice, not the default API behavior.Checks without AI
Most analysis uses ordinary code. A local grammar engine called Harper checks mechanics on the server. Rules look for particular wording. Word and sentence counts supply the readability and rhythm measurements. None of these checks calls a language model.
| Check | What you see |
|---|---|
| Grammar and spelling | Possible mistakes, their locations, and suggested corrections. Suggestions still need judgment. |
| Punctuation | Mechanics findings, punctuation counts, and unmatched pairs such as brackets or quotation marks. There is no ideal punctuation ratio. |
| Stock wording | Flags for phrases such as "it's worth noting" and "a testament to," formulaic contrasts, connectors, and repeated sentence openings. |
| Repetition | Repeated sentences and four-word phrases. Names, technical terms, and deliberate repetition may be worth keeping. |
| Sentence and paragraph rhythm | Lengths, how much they vary, differences between neighbors, and repeated paragraph sentence counts. |
| Reading difficulty | An estimated English reading grade and whether the text meets your chosen target or ceiling. |
| Your writing rules | Matches for words, punctuation, and sentence limits you specify. Preferences that need context are listed for review. |
| Instruction traps | Patterns such as "AI: ignore all previous instructions," role markers, hidden characters, and some encoded instructions. A quoted example can trigger a flag too. |
A flag means "look at this passage." A word like "tapestry" can be exactly right when you're writing about an actual tapestry. The checker does not know every exception, and an unflagged passage can still need work.
What the scores mean
The style score runs from 0 to 100. Higher means more matched style patterns relative to the amount of prose. A score of 80 does not mean an 80% chance that AI wrote it.
Grammar, spelling, and punctuation scores run the other way: higher means fewer detected problems. The overall mechanics score averages those components. It does not grade the ideas, accuracy, or usefulness of the writing.
Rhythm deserves a separate look. Ten sentences can average the same length while sounding very different in sequence. Unslop measures both the spread of lengths and changes between neighboring sentences and paragraphs.
Uniform writing can be useful, especially in instructions or text for young readers. More variation is not automatically better. Unslop does not try to force a flat distribution or alternate short and long sentences.
The new rhythm and repetition findings do not change the style score. Their thresholds are provisional. They still need evaluation against approved human writing across different subjects and reading levels.
Current measurements and thresholds
Rhythm warnings require at least 10 prose sentences or 5 prose paragraphs. Shorter passages still get raw counts, with an insufficient-text status.
- A sentence run can be flagged when at least four successive sentences fall within a two-word range.
- Low variation uses a coefficient of variation of 0.12 or less. This is the standard deviation divided by the mean length.
- A paragraph pattern can also be flagged when at least 80% of paragraphs share a sentence count.
- Duplicate-sentence checks compare wording without case or punctuation. Repeated-phrase checks look for at least three occurrences of a four-word sequence.
These are implementation choices, not scientific boundaries between human and AI writing. Markdown rhythm checks conservatively omit blocks containing headings, lists, tables, code, or block quotes. Some ambiguous blocks are omitted too.
The API also reports medians, spread, vocabulary diversity over 50-word windows, and approximate contraction frequency. Those numbers describe a passage; they are not targets to maximize.
Writing for a particular reader
You can choose a reading grade, an approximate age from 6 to 18, or a maximum reading grade. Presets cover early readers through advanced adult text. The age option maps age to US grade by subtracting five, so age 10 targets grade 5.
An exact target accepts a range around the chosen grade. The default tolerance is one grade either way. A ceiling only sets an upper limit: a grade-8 ceiling accepts easier writing too.
The estimate uses the Flesch-Kincaid formula, based on sentence length and syllables per word. Unslop needs at least 30 words and two sentences to report a grade. It cannot establish whether a particular child understands the passage or whether its subject is suitable for them.
Writing complexity is reported separately as simple, moderate, or complex, using the same estimated grade. This describes the text, not the writer's ability. You can also tell the rewriting model who the audience is.
How a rewrite gets accepted
Unslop scores the original first. By default, AI editing runs only if the prose has at least 50 words and scores 20/100 or higher. You can change these cutoffs per request with
rewrite_gate.thresholdandrewrite_gate.minimum_words. Setrewrite_gate.enabled: falseto allow edits regardless of score; the original is still scored and the bypass is reported. If the enabled gate fails, it returns the original, the score, and a skip reason without calling any model. This provisional cutoff selects text for editing; it does not identify its author.Code divides the original prose into short, nonoverlapping spans, skipping protected content and prioritizing writing findings.
Calls alternate between OpenAI and Anthropic by default. Each model sees one editable span, nearby original context, and your voice guidance. It proposes one tiny replacement or leaves the span alone. Later calls never edit an earlier model's output.
Code checks each patch and the accumulated change budget, then assembles accepted patches at their original positions. It rejects adjacent patches that would combine into an oversized change.
The assembled text must meet all requested hard constraints, including reading targets and output length. Optional meaning review can add one model call to check the combined result. Failed or unverified constraints, or reported meaning changes, return your original.
By default, each replacement can remove and insert at most 8 words and 60 Unicode characters per side. The total change budget is 15%: added plus removed prose tokens, including punctuation, divided by the original token count. A word replacement spends both sides. Profile defaults and request constraints can change the total budget.
The default is up to four patch-generation calls, configurable up to twelve. Optional retries share that budget. Account allowance can reduce it further. The response reports coverage: spans left unreviewed stay unchanged. More calls mean more cost, not necessarily better writing.
Choose a single provider explicitly if you only want that company to process your text. The mixed setting needs both providers available. Each accepted patch identifies its provider and model.
Numbers, quotations, and common Markdown formatting are protected by default. You can protect specific terms or passages too. Micro-edits preserve paragraph breaks. Large reading-level or structural changes may be impossible within these limits.
There is no whole-document rewrite fallback. Invalid patches are discarded; an optional retry sees the original span and failure reasons. Provider errors fail the request without accepting an unchecked result. Small edits and provider diversity do not establish watermark removal.
For small corrections, the ordinary Proofread ยท no AI action applies only a limited set of mechanical fixes and your explicitly allowed replacements.
Keeping your own voice
A saved profile holds your rules, editing instructions, and optional samples. You might prefer contractions, short introductions, or a particular technical term. A voice document supplies instructions; prose you've written supplies examples. They serve different purposes.
For descriptive voice comparisons, Unslop requires at least two samples with 20 sentences between them. It reports sample size and ranges for rhythm and contractions. If the declared genres differ, it withholds those ranges. They are not a voice-match score or rules that your next paragraph has to obey.
Some choices require judgment. An AI editor can help assess vague praise, repeated ideas, or a phrase that feels out of place. The deterministic checker can't fully evaluate them.
Where your text goes
Analysis runs on the Unslop service hosted on Vercel. "Without AI" means no model call; it doesn't mean the text stays in your browser.
Rewriting and optional AI review send the relevant text and voice guidance to the selected model providers. Mixed editing uses both OpenAI and Anthropic. The service uses direct provider access when configured, or Vercel AI Gateway otherwise.
Prepaid requests may briefly cache response text for retries. See response retention and billing records. Saved profiles do store the instructions, rules, samples, and preferences you choose to save. Hosting and model providers have their own processing and retention terms.
External authorship detectors and watermark checks require explicit consent and a configured provider. No watermark verifier is enabled by default. Unslop doesn't remove watermarks, certify their absence, or promise to make writing undetectable.
Instruction-trap checks report suspicious patterns. They can't prove a document is safe or catch every possible instruction.
Using the API
An API lets another program use these same tools. These groups cover the available operations. Every /v1 request needs authentication: an API key, or a same-origin signed-in session in the workbench.
| Purpose | Endpoints |
|---|---|
| Check writing | /v1/analyze, /v1/score, /v1/quality, /v1/explain |
| Inspect instructions | /v1/inspect |
| Edit text | /v1/proofread, /v1/rewrite |
| Compare and review | /v1/compare, /v1/verify, /v1/review |
| Manage preferences | /v1/profiles, /v1/profiles/{id}, /v1/profiles/import, /v1/rules, /v1/rules/validate |
| Optional external checks | /v1/detect, /v1/watermarks |
| See configuration and usage | /v1/capabilities, /v1/usage |
The public OpenAPI reference gives the exact request fields. The API explorer lets people with a key try them. This explanation describes version 1.3.0, updated September 24, 2026.
Read the research and its limits, or use the API examples and troubleshooting guide.