AI text cleaner — remove em dashes and hidden characters

Clean AI-written text in your browser — strip invisible characters, replace em dashes and curly quotes, and flag stock chatbot phrases. Nothing is uploaded.

Free · no sign-up · runs in your browser

Paste AI-written text. Cleaned as you type; nothing is uploaded.

Rules

Cleaned text

What changed

  • Remove invisible characters3
  • Replace no-break and narrow spaces2
  • Replace em and en dashes4
  • Straighten curly quotes6
  • Turn … into three dots1
  • Total16

Phrases that sound like AI

  • delve intotry dig into1
  • in today's fast-paced world1
  • it's important to note1
  • leveragetry use1
  • robust1
  • seamless1
  • tapestry1
  • testament1
  • utilizetry use1

Reported, not rewritten, apart from the safe swaps when they are on. Whether a word fits is your call.

Cleaned in this page with plain text rules. Nothing is uploaded and no model sees your text; check your network tab.

Text pasted out of a chatbot carries more than its words. It can hold zero-width spaces, no-break spaces and other characters you cannot see, plus the em dashes, curly quotes and stock phrases that make a reader think "a model wrote this" before they finish the first paragraph. Paste the text here and you get it back with the invisible characters gone, the punctuation turned into what a keyboard types, and a list of the phrases worth rewriting by hand. Each rule has its own switch and its own count, so you can see exactly what changed. Everything runs in this tab; your draft is never sent anywhere.

How it works

  1. 01Paste your text into the box. It is cleaned as you type, and the result appears underneath.
  2. 02Invisible characters are removed first: zero-width spaces and joiners, word joiners, byte-order marks, soft hyphens, direction marks, Unicode tag characters and stray variation selectors. Joiners inside emoji and inside scripts that need them, such as Persian and Hindi, are kept.
  3. 03No-break, narrow and thin spaces become ordinary spaces, so the text wraps and searches the way it looks.
  4. 04Em dashes become a comma or a spaced hyphen, whichever you pick. A dash between two numbers becomes a plain hyphen, so 10–20 stays a range.
  5. 05Curly quotes and apostrophes become straight ones, and the single-character ellipsis becomes three dots.
  6. 06Words and phrases that chatbots overuse are listed with a count. Most are only reported, because whether a word fits is a judgement about your sentence. A few have a substitute that is always safe, such as utilize to use, and you can switch those swaps on.
  7. 07Copy the cleaned text. The summary shows how many changes each rule made.

Use cases

  • Removing the em dashes from a ChatGPT draft before it goes into a blog post, an email or a cover letter.
  • Stripping hidden characters from AI-generated text that is about to be pasted into a CMS, a spreadsheet or source code, where a zero-width space can break a search or a string comparison.
  • Finding out why two strings that look identical do not match: paste one in and see whether the invisible-character count is above zero.
  • Getting a quick list of the stock phrases in a draft so you know which sentences to rewrite in your own voice.
  • Converting curly quotes and apostrophes to straight ones before pasting text into code, JSON or a terminal.
  • Checking a piece of writing someone sent you for hidden characters before you publish it under your name.

Frequently asked questions

How do I remove em dashes from ChatGPT text?

Paste the text above with the dash rule switched on. Each em dash is replaced with a comma by default, which reads naturally in most sentences: "the tool, which is free, works". If you prefer a spaced hyphen, change the style. Dashes between numbers become a plain hyphen, a dash at the start of a line stays as a hyphen so lists and attributions survive, and a dash sitting next to other punctuation is simply dropped so you do not end up with a stray comma.

How do I remove invisible characters from AI-generated text?

Paste it here. The invisible-character rule removes zero-width spaces, zero-width joiners and non-joiners, word joiners, byte-order marks, soft hyphens, bidirectional control marks, Unicode tag characters and variation selectors that are not attached to anything. The summary tells you how many it found. If the count is zero, the text was already clean, which is useful to know on its own.

Does ChatGPT put a hidden watermark in its text?

Hidden characters do turn up in text copied from chatbots, whether as a deliberate marker or as a side effect of how the text was produced and copied. You cannot see them by reading, so the only way to know is to check. This tool removes every character of those kinds no matter where it came from, and tells you how many there were. It cannot detect statistical watermarks built into word choice, because those are not characters at all.

Will this make AI text undetectable by AI detectors?

No, and it is not meant to. Detectors mostly judge word choice, rhythm and structure, which this tool does not rewrite. What it does is remove the mechanical traces: hidden characters, typographic punctuation a person would rarely type, and a list of overused phrases for you to rewrite yourself. The honest way to make a draft sound like you is to edit it, and the phrase list shows you where to start.

Why replace curly quotes with straight quotes?

Straight quotes are what a keyboard types, so they match everything else you write and everything you search for. Curly quotes break code, JSON, shell commands and spreadsheet formulas when pasted into them, and a search for an apostrophe will not find its curly twin. If you are publishing to a site that typesets quotes for you, straight input is also what it expects.

Is my text uploaded anywhere?

No. Every rule is a plain text replacement that runs in this page, and there is no request to a server or to a language model. You can confirm it in your browser's network tab, or by going offline after the page has loaded and using the tool anyway.

Will it break emoji or text in other languages?

It is written not to. The joiners that hold family and profession emoji together are kept, as are the selectors that make a heart render in colour and the tags inside regional flags. Joiners between letters of Arabic-script and Indic languages are kept too, because they change how words are spelled there. Guillemets and the ideographic space used in Chinese and Japanese are left alone. If a rule still does something you do not want, switch it off.

Related reading

  • Developer Tools13 Free Developer Tools, No Sign-Up RequiredThirteen free online developer tools that run in your browser with no account and no upload: color, SEO, conversion, and formatting utilities that just work.

More tools