Back to all tools
Free · runs in your browser

Text cleaner

Paste messy text and switch on only the fixes you want. Every pass is a separate toggle that reports what it changed, so nothing is removed behind your back — and nothing is uploaded.

One-click presets

Each one switches on the passes that source needs and switches the rest off. Adjust anything afterwards.

Cleanup passes
Direction for smart quotes and dashes
Characters in
0
Characters out
0
Changes made
0
0 words in, 0 out

What changed

Paste some text above, or load the example, and every enabled pass will report what it did here.

Everything here runs on your device. Nothing you paste is uploaded.

What a text cleaner is for

Text picks up damage every time it moves. A chatbot answer arrives with em dashes, curly quotes and the occasional zero-width space. A PDF paste arrives as a column of 42-character lines with words snapped in half by hyphens. A meeting export arrives wrapped in timestamps and speaker labels. A spreadsheet cell arrives with tabs in it. An email chain arrives with three blank lines between every paragraph.

None of that is a writing problem, and none of it needs a model to fix. It is find-and-replace, applied in the right order, by rules you can read. This page is those rules as eleven switches, each one showing a live count of what it touched, all of them running in your own browser.

The eleven passes

  • Remove hidden characters — zero-width spaces and joiners, byte-order marks, soft hyphens, bidi direction marks and stray control codes. Non-breaking spaces become ordinary spaces, so search, word counts and diffs stop behaving strangely.
  • Smart quotes and dashes — curly quotes to straight, em and en dashes to hyphens, the ellipsis character to three dots. It runs in reverse too, if what you want is typeset text rather than plain text.
  • Collapse spaces and tabs — runs of spaces or tabs inside a line become one space, and trailing whitespace goes. Indentation at the start of a line is deliberately left alone so lists and code survive.
  • Collapse blank lines — three or more newlines in a row become one blank line. Paragraphs stay separated; the canyons between them do not.
  • Fix punctuation spacing — deletes the space in “word , word”, adds the missing one in “end.Next”, “first,second” and “part...next”.
  • Line breaks — either rejoin lines that were hard-wrapped mid-sentence, or strip every break and get one continuous paragraph.
  • Repair split words — rejoins a word a PDF broke across a line with a hyphen, so “documenta-” and “tion” become one word again.
  • Remove timestamps — bracketed stamps, cue timings, parenthesised stamps and a bare time opening a line.
  • Remove speaker labelsSPEAKER 1:, JOHN:, John Doe: and the >> chevrons used in captions.
  • Remove filler words — um, uh, you know, I mean, sort of, and the rest, each one its own chip.
  • Sentence-case ALL CAPS — self-limiting: it only acts when at least 80 per cent of the letters are uppercase, so it cannot quietly lowercase an acronym.

The three presets

Pasted from ChatGPT

Switches on hidden characters, the ASCII conversion, space collapsing and blank-line collapsing. This is the combination that removes the tells of machine-written text: the em dash where a comma would do, the curly quotes, the occasional zero-width character that survives the copy and shows up later as a mangled byte in a CMS. It changes punctuation and invisible characters only — the words are yours to edit.

Meeting transcript

Timestamps, speaker labels and filler words, then the punctuation those removals leave behind. Stripping “we, um, should ship” naively gives you “we, should ship”; this repairs the orphaned comma, closes up the double spaces and puts the capital back at the start of a sentence that began with a filler.

Pasted from PDF

Rejoins hard-wrapped lines, repairs words split across a break by a hyphen, fixes punctuation spacing and collapses the doubled spaces that justified text leaves behind. Use it on anything copied out of a paper, a report, a slide deck or a print layout.

Removing line breaks without destroying the paragraphs

“Remove line breaks” usually means two different things. Sometimes you want one unbroken paragraph — for a form field, a spreadsheet cell, a CSV, a chat message. Sometimes you want the paragraphs back, and the line breaks inside them gone. The line breaks pass has a switch for each.

The rejoining mode is conservative on purpose. It joins a line onto the one above only when that line ended mid-sentence — not on a full stop, question mark, colon, semicolon, closing quote or bracket. A blank line always starts a new paragraph, a bullet or a numbered item is never swallowed into the line above it, and a line that is nothing but a number is treated as a marker rather than a sentence. Text with one sentence per line therefore keeps its shape, because every one of those lines ends in a full stop.

Hidden characters, and why they matter

Zero-width spaces, byte-order marks and soft hyphens have no glyph. You cannot see them, your spell-checker ignores them, and they break things quietly: a search that should match and does not, a word count that is off by one, a slug with a stray character in it, a CSV column that will not parse, a duplicate that is not detected as a duplicate. Non-breaking spaces are the everyday version of the same problem — they look exactly like a space and behave like a letter.

The counter next to that toggle is the useful part: if it says nine, nine invisible characters came in with the text you pasted.

Filler words are a judgement call

Every filler is its own chip, and three of them start switched off. “Like”, “actually” and “right” are real English words at least as often as they are verbal tics: “a tool like this”, “it actually shipped”, “turn right at the lights”. Removing them by default would quietly change what a transcript says, which is worse than leaving a tic in.

Matching is whole-word and case-insensitive, so “likely”, “factually”, “German” and “album” are never touched by the chips for like, actually, er and um. Multi-word fillers are removed before single-word ones, so “kind of” goes as a phrase instead of leaving a stranded “of”.

The order the passes run in

The order is fixed, and it is not the order of the checkboxes. Invisible characters and typography are normalised first, so every later rule sees real characters. Transcript furniture — timestamps, then speaker labels — comes off next, because a sentence-level rule cannot reason about a line beginning 00:04:12 SPEAKER 2:. Filler removal and casing follow. Structural changes — repairing split words, then joining or stripping line breaks — come after that. Spacing is last, so it tidies whatever everything else left behind.

Questions people ask

Is anything I paste uploaded?

No. Every pass is JavaScript running in this tab. There is no server call, no file upload and no storage — which also means there is no undo beyond your own clipboard, so keep the original until you are happy with the result.

Will it fix my grammar or rewrite my sentences?

No, and that is deliberate. This is find-and-replace with rules you can read, not a model rewriting your text. Your words come out in the order you put them in.

Why did a heading disappear?

Almost always the speaker-label pass: a title-case heading ending in a colon has the same shape as John Doe:. Shouted clauses are protected — “THE PLAN IS SIMPLE: WE SHIP FRIDAY” survives, because a label never contains words like “the” or “is” — but a two-word title-case heading can still be caught. Switch that pass off and delete the handful of real labels by hand.

Can I clean a Word document or a PDF?

Not the file itself — this tool takes text. Open the document, select all, copy, and paste it here. Nothing is uploaded either way.

Does it work in other languages?

The hidden-character, spacing, blank-line, line-break and quote passes are language-neutral and safe on any script. The filler list, the speaker-label patterns and the sentence-casing rules are English-specific.

Is there a size limit?

No hard cap. Everything is recomputed on each keystroke, so a book-length paste may feel slightly less instant while you type; ordinary documents, transcripts and articles are immediate.

Related tools

If what you have is specifically a transcript — cue numbers, [inaudible] markers, one speaker per line — the transcript cleaner is the narrower tool for that job. For subtitle files, start with the SRT to VTT converter, which understands cue boundaries properly. Once the text is clean, the word counter tells you what you are left with, and the sentence counter shows you the shape of it.

Where VoiceSnap Pro fits

Most of the mess this page cleans up exists because text was captured for one purpose and reused for another. VoiceSnap Pro skips a step: you hold one keyboard shortcut, speak, and clean punctuated text appears in whatever field your cursor is already in — the email, the doc, the ticket, the browser form. There is no export to tidy up afterwards, because there is no export. Filler words are dropped as you speak, punctuation and paragraph breaks are added as you go, and every dictation is saved to a searchable notes library.

It runs on macOS and Windows, handles 50+ languages including switching mid-sentence, takes a custom vocabulary for names and jargon, and is a one-time $39 purchase rather than a subscription. Nothing you dictate is used to train AI models. The app has not shipped yet — join the waitlist for one email on release day.