Turn Messy AI Output Into Clean, Shippable Text

Strip invisible characters, odd spacing, and leftover formatting from anything ChatGPT, Claude, or Gemini hands back to you — paste plain text, or upload a .docx and get a cleaned copy back.

Input Text

Cleaned Text

Why This Exists

Output from ChatGPT, Claude, and Gemini rarely arrives as plain text. It carries zero-width characters and word-joiners that silently break search and regular expressions, non-breaking spaces that stop lines wrapping where they should, curly quotes and em dashes that flag content as machine-written and choke code samples or JSON, and stray markdown syntax that a CMS was never built to render.

None of it is visible in a normal editor. This tool scans for it on paste — or inside an uploaded Word document — and lets you strip exactly the artifacts you don't want, so what you ship reads the way you actually wrote it.

How This Tool Is Built

Most text-cleaning tools live on a server: paste your content, it gets uploaded, and the result often sits behind an email gate. That's a poor fit for anything you haven't published yet.

  • #ClientSide

    The cleanup logic runs in your browser's JavaScript, including for uploaded .docx files. Nothing is sent anywhere, logged, or stored, and the page keeps working offline once it's loaded.

  • #NoSignup

    No sign-up, no email capture, no daily cap, no paywall. Paste as much text — or upload as many documents — as you want, whenever you want.

  • #FlexibleFixes

    Turn individual transforms on or off depending on the job — keep your markdown headings but drop everything else, say. The same switches apply whether you're cleaning pasted text or a .docx. Your choices are remembered locally the next time you visit.

What Each Toggle Does

Every transform is independent — run all of them, or only the ones a particular paste or document needs. The defaults cover the artifacts most common in ChatGPT, Claude, and Gemini output, but you can loosen or tighten the pass for any specific job.

Remove hidden characters: Strips zero-width spaces and other invisible Unicode that quietly break code, search indexing, and copy-paste fidelity.

Convert non-breaking spaces: Swaps non-breaking spaces for ordinary ones so text wraps and word-wraps the way you expect.

Normalize dashes: Turns em dashes and en dashes back into a plain hyphen.

Normalize quotes: Converts curly, "smart" quotation marks into straight quotes — important if the text is going anywhere near code or JSON.

Convert ellipsis: Replaces the single ellipsis character with three separate periods.

Remove trailing whitespace: Trims stray spaces and tabs sitting at the end of each line.

Remove asterisks (*): Strips every asterisk from the text, useful when markdown emphasis leaks into plain-text contexts.

Remove markdown headings: Drops the leading #, ##, through ###### markers from the start of a line.

Convert lookalike characters: Swaps Cyrillic and Greek letters that look identical to Latin ones (Cyrillic а becomes a, for example) back to their Latin form. Left off by default, since it would mangle genuinely multilingual writing.

Normalize Unicode forms: Runs NFKC normalization to fold fullwidth, ligature, and styled character variants — think Hello, fi, or 𝐇𝐞𝐥𝐥𝐨 — back into plain ASCII. This is separate from the lookalike-character fix above.

Built For Anyone Pasting AI Text Somewhere Else

  • Developers: Sanitize code snippets an AI assistant handed you before they go anywhere near your codebase.
  • Writers & Editors: Catch invisible formatting before it rides along into a manuscript, .docx, or CMS entry.
  • Content Creators: Keep text intact when it's moving between platforms with different rendering quirks.
  • Anyone using AI tools: A quick pass to make ChatGPT, Claude, or Gemini output behave like ordinary text.

Anywhere AI text ends up next — a CMS, an editor, a Word document, a database — this pass is what stands between text that renders cleanly and text that quietly breaks something further down the line.