ChatGPT watermark remover
Paste text from ChatGPT and every hidden character is shown and named: narrow no-break spaces, zero-width spaces, byte order marks and more. Remove them in one click and copy clean text. It runs in your browser.
Paste text and what it finds shows up here.
Does ChatGPT watermark its text?
Not with anything you can find in the text. In 2024 OpenAI said it had built a text watermarking method and was holding it back while it looked at other options, partly because rewording the text with another model could get around it. We found no announcement that it has shipped.
So what are the hidden characters?
Special spaces and invisible characters. In April 2025 people found narrow no-break spaces (U+202F) in long answers from o3 and o4-mini, and later reports on OpenAI's developer forum describe GPT-5 putting them in place of normal spaces. The reported explanation is a side effect of training. Nobody has shown it to be a deliberate mark. Zero-width and no-break spaces also arrive when you copy from web pages and documents.
| Character | Code | Cleaning |
|---|---|---|
| Narrow no-break space | U+202F | Plain space |
| No-break space | U+00A0 | Plain space |
| Figure space | U+2007 | Plain space |
| Thin space | U+2009 | Plain space |
| Hair space | U+200A | Plain space |
| En space | U+2002 | Plain space |
| Em space | U+2003 | Plain space |
| Zero-width space | U+200B | Removed |
| Zero-width non-joiner | U+200C | Removed |
| Zero-width joiner | U+200D | Removed |
| Word joiner | U+2060 | Removed |
| Byte order mark | U+FEFF | Removed |
| Soft hyphen | U+00AD | Removed |
| Mongolian vowel separator | U+180E | Removed |
| Left-to-right mark | U+200E | Removed |
| Right-to-left mark | U+200F | Removed |
| Left-to-right embedding | U+202A | Removed |
| Right-to-left embedding | U+202B | Removed |
| End of direction override | U+202C | Removed |
| Left-to-right override | U+202D | Removed |
| Right-to-left override | U+202E | Removed |
| Left-to-right isolate | U+2066 | Removed |
| Right-to-left isolate | U+2067 | Removed |
| First strong isolate | U+2068 | Removed |
| End of direction isolate | U+2069 | Removed |
| Line separator | U+2028 | Line break |
| Paragraph separator | U+2029 | Line break |
Will removing them get text past an AI detector?
No. Detectors score the words, and this tool changes only characters you can't see. Remove them because they break things: a narrow no-break space can stop a line from wrapping, and zero-width characters can break search and find and replace.
Then make it sound like you
Cleaning fixes the characters. The words can still sound like a model wrote them. Ownhand rewrites your agent's drafts in your own voice, from 5 to 10 things you wrote, and learns from what you send.
Try it on your text Connect your agent
Sources
- OpenAI's text watermarking update, reported by Engadget (August 2024)
- OpenAI developer forum: GPT-5 outputs U+202F in place of normal spaces
More free tools: ai text cleaner and em dash remover.