PromptZone - AI Prompts, Guides and Tools for Builders

ChatGPT Text Cleaner: Remove AI Formatting

Paste anything an AI model wrote and get plain text back. The cleaner removes invisible Unicode characters, stray Markdown such as ** and ##, em dashes and curly quotes, and tells you exactly what it found.

FreeNo signupRuns in your browser

Clean up

Less cleanup starts with a better prompt. The prompt directory has free prompts that already spell out tone and format.

Browse free copy-ready prompts →

What the cleaner removes

AI chat apps write in Markdown and lean on typographic characters that most text boxes, spreadsheets and code editors do not expect. These are the ones that cause trouble.

CharacterCode pointWhat goes wrong
Zero-width spaceU+200BInvisible. Breaks search, word counts, URLs and string comparisons in code.
Narrow no-break spaceU+202FLooks like a space but is not one. Common between numbers and units.
Non-breaking spaceU+00A0Stops lines from wrapping and fails equality checks against a normal space.
Word joiner, BOM, soft hyphenU+2060 U+FEFF U+00ADInvisible characters that corrupt CSV files, JSON keys and form fields.
Em dash and en dashU+2014 U+2013A habit many readers associate with AI writing. Replaced with a comma or hyphen.
Curly quotes and apostrophesU+201C U+201D U+2018 U+2019Break code, shell commands and JSON. Replaced with straight quotes.
Markdown marks** ## ` >Show up as literal symbols anywhere Markdown is not rendered.

Zero-width joiners inside emoji and joiners that Arabic, Persian and Indic scripts need are left in place, so cleaning does not split a family emoji or break a word.

Code is left exactly as written. Inside backticks and fenced blocks nothing is reworded. Only the backticks and the fence lines themselves are removed.

Is there a hidden ChatGPT watermark?

People often call these characters a watermark. Treat that claim with caution. A narrow no-break space is also the typographically correct character between a number and its unit, so it can show up for ordinary reasons, and any hidden character disappears with one find and replace. Nobody should rely on them to prove where a piece of text came from.

The practical reason to strip them is not detection. Invisible characters make a pasted product name fail a search, turn a clean CSV into one that will not import, and make two strings that look identical compare as different in code.

How to stop the formatting at the source

Cleaning afterwards works, but you can also ask the model not to produce the formatting. Put this in your custom instructions or at the top of a prompt:

For a full set of standing rules, build one with the system prompt generator. Models drift in long conversations, so it is still worth running the final text through the cleaner.

Frequently asked questions

Does ChatGPT add hidden characters or a watermark to its text?

AI-written text sometimes contains invisible or unusual Unicode characters, such as narrow no-break spaces, non-breaking spaces and zero-width spaces. They are often called a watermark, but they are trivial to remove and prove nothing about where text came from. They can still break formatting, search and code, so this tool removes them and reports each one it finds.

Will cleaning text make it pass an AI detector?

No, and it is not built for that. Detectors mainly judge wording and sentence patterns, and this tool does not rewrite a single word. Removing formatting can shift a score a little in either direction, so do not rely on it. The tool exists so text pastes cleanly into email, documents, a CMS or code.

Why does text copied from ChatGPT have ** and ## in it?

ChatGPT writes in Markdown. Double asterisks mark bold text and pound signs mark headings. The chat window renders them, but when you copy into an app that does not understand Markdown the raw symbols come along. Turn on Strip Markdown to remove them and keep the words.

How do I stop ChatGPT from using em dashes?

Add an instruction to your custom instructions or system prompt, for example: Never use em dashes. Use commas, periods or parentheses instead. Models still slip occasionally in long answers, so run the result through this cleaner to catch the ones that get through.

Is my text uploaded anywhere?

No. The cleaner is plain JavaScript that runs in your browser, so your text never leaves your device and nothing is stored. The only thing the page reports is an anonymous usage event when you press a button, which names the tool and never includes your text.