Cleaning AI generated text means stripping the typographic fingerprints that AI assistants leave in their output — em dashes, smart quotes, hidden Unicode characters, double spaces and stray blank lines — while leaving every word and sentence structure exactly as the model wrote it. The goal is not to rewrite the draft or disguise the writing voice. The goal is to normalize the formatting so the text reads as if it had been typed on a plain keyboard. AI assistants consistently produce a recognizable set of formatting fingerprints: U+2014 em dashes used where a human would have used a comma, U+2018 and U+2019 smart quotes around contractions, the U+2026 single-character ellipsis, invisible zero-width spaces that survive copy and paste, and runs of double spaces or extra blank lines that come from the way chat windows wrap text. None of those touch what the text says, but all of them make the output instantly recognizable as machine-produced. Cleaning them out — without touching the wording — is what separates typography normalization from rewriting.

What Cleaning AI Generated Text Actually Means
Most readers who search how to clean AI generated text are looking for something closer to formatting normalization than to rewriting. AI assistants paste back the same words and grammar they generated, but the surface characters carry telltale fingerprints: smart quotes that word processors accept but plain text editors strip, an em dash where a human would have written a comma, an ellipsis character that renders as one glyph but counts as three when you copy it, and invisible code points that came from the model's tokenizer. None of that is part of what the model meant to say. All of it is part of what the model emitted. Cleaning means taking the second part out without touching the first.
That distinction matters because the same phrase — "clean AI text" — is also used to mean something else: rewriting the wording to sound less like a model output, varying sentence structure, or paraphrasing whole paragraphs. Those are writing tasks, and the right tool for them is a rewriting tool. Cleaning typography is a formatting task, and it can be done deterministically by walking every code point in the input and applying a fixed substitution table. That is what a rule-based cleaner does — a deterministic substitution pass that preserves the author's actual wording.
The Six Formatting Rules You Can Toggle
The AI Text Cleaner ships with six rules, each one an independent switch, so you can straighten smart quotes without touching dashes, or strip hidden characters while leaving paragraph spacing exactly as it is. Every run reports how many characters each rule changed, so you can see what happened instead of trusting a silent rewrite.
| Rule | Targets | Result |
|---|---|---|
| Dashes | Em dash U+2014, en dash U+2013, horizontal bar U+2015; hyphen stand-ins U+2010, U+2011, U+2012 | Sentence dashes → hyphen, comma, or single space (your choice); hyphen stand-ins always → plain hyphen; minus sign U+2212 untouched |
| Quotes | U+2018 through U+201F plus prime and double prime marks | Straight apostrophe and straight double quote; guillemets and CJK brackets left alone |
| Ellipsis | U+2026 single character | Three ordinary full stops |
| Invisible characters | Zero-width space, BOM, soft hyphen, word joiner, combining grapheme joiner, left-to-right and right-to-left marks, invisible math operators, Unicode Tags block, supplementary variation selectors, bidirectional embeddings, overrides and isolates | Removed entirely |
| Spacing | Runs of two or more spaces or tabs; trailing spaces at end of every line | Single space; lines trimmed |
| Blank lines | Multiple blank lines between paragraphs; blanks at start or end of the text; carriage returns, U+2028 and U+2029 separators | One blank line maximum; everything folded to LF |
The dash rule is the most consequential. Large language models default to U+2014 em dashes in running prose — often more frequently than a human writer would — and they use U+2013 en dashes and U+2015 horizontal bars in similar roles. The cleaner treats all three as sentence dashes and lets you pick what replaces them: a plain hyphen, a comma, or a single space. The hyphen stand-ins — U+2010, U+2011 and U+2012 — are visually identical to a keyboard hyphen, but they are different code points and copy-paste as different code points. They always collapse to one hyphen regardless of the dash replacement choice, because turning the hyphen of "left-to-right" into a comma would corrupt the word rather than clean it. The mathematical minus sign U+2212 is left alone on purpose: rewriting it would change the meaning of an equation. A run of several dashes collapses to a single replacement rather than a row of hyphens, and the spacing around the dash is repaired so you never end up with a double space or a space before a comma.
The invisible-character rule is the one that matters most for pasted chat output. It strips the zero-width space, byte order mark, soft hyphen, word joiner, combining grapheme joiner, left-to-right and right-to-left marks, the invisible mathematical operators, the Unicode Tags block, and the supplementary variation selectors. It also removes the bidirectional embeddings, overrides and isolates behind the Trojan Source vulnerability — invisible control characters that survive copy and paste and can reorder how a line renders. Every fixed-width and no-break space becomes an ordinary space, so later find-and-replace and word counts behave.
How to Clean AI Generated Text in Three Steps
- Paste the AI-generated text into the box, or select Load sample to see a typical example.
- Tick the rules you want and pick whether dashes become a hyphen, a comma or a space.
- Select Clean text, check the per-rule change counts, then copy the cleaned result.
A few notes on each step. The paste accepts up to one million characters, which covers everything from a short email to a full long-form draft. Load sample is the fastest way to see what a typical AI paste looks like before you run your own text through it. When ticking rules, you can turn any individual rule off — useful when you want smart quotes straightened but paragraph spacing preserved, or when you want invisible characters stripped but dashes left intact. The per-rule change counts that appear after the run tell you exactly how many characters each rule modified, so you can verify the cleaner did what you asked instead of trusting a silent rewrite. If you want a walk-through of the same six rules applied to a sample paste, the guide on cleaning AI text by stripping em dashes and hidden Unicode runs through a worked example.
What the Cleaner Deliberately Preserves
Three invisible characters are kept on purpose, and they matter more than they look. The zero-width joiner (U+200D) holds multi-person emoji sequences together; strip it and the family emoji splits into separate people. The zero-width non-joiner (U+200C) is grammatically required in Persian, Arabic and several Indic scripts; removing it changes how the script ligates and can break words apart. Variation selector 16 — one of U+FE00 to U+FE0F — is what makes an emoji render as an emoji on platforms that distinguish text presentation from emoji presentation; strip it and the glyph reverts to the black-and-white text variant. All three look invisible to most readers and feel like obvious cleanup targets, but removing any of them would corrupt valid text rather than clean it.
The mathematical minus sign is preserved for the same reason: U+2212 means minus, and rewriting it to a hyphen would change the meaning of an equation. Guillemets and CJK brackets are preserved because they are not AI artifacts — they are legitimate punctuation in non-English text. Every code point in these keep-lists was checked against the Unicode Character Database and cross-checked against a second authoritative source, and ranges are taken whole rather than sampled.
Why Browser-Side Cleaning Matters for Unpublished Drafts
The cleanup runs entirely in the browser. The text is never uploaded, never stored, never sent to an API and never attached to an account. For anyone cleaning a draft before it goes to a client, a journal, a hiring manager, or a professor, that matters: the document never leaves the tab. It also means the cleaner keeps working when the network is slow, dropped, or behind a corporate proxy that blocks third-party upload endpoints. The input cap of one million characters is a guardrail against pasting an entire book and freezing the tab; it is not a server-side limit because there is no server. Implementation folds every line ending to LF first, then applies the six rules in a fixed order over code points verified against the Unicode Character Database, PropList and DerivedCoreProperties, counting every replacement so the reported change totals match the output exactly.
Cleaning Typography Is Not the Same as Hiding AI
This is worth saying clearly. Normalizing dashes, quotes, ellipsis characters, invisible code points, and whitespace does not make text "undetectable." It does not change sentence structure, vocabulary, paragraph length distribution, or any of the higher-level features that AI classifiers actually look at. A cleaner that fixes typography can remove the visible signals a person uses to recognize a model output at a glance, but it cannot remove the statistical fingerprint of the model's writing itself. If the underlying goal is to produce text that fools a detector, the answer is to rewrite the text — and the right tool for that is a rewriting tool, not a typography normalizer. The AI Text Cleaner makes no claim that cleaned text will pass any AI detector, and the per-rule change counts it reports are a way to verify what was actually changed — not a guarantee about what was not.
If you're weighing options, How to Clean AI Generated Text Free and See Each Change covers this in detail.