Does Claude Put Invisible Characters in Its Output?
Short answer: no. Anthropic said so in writing on August 14, 2026: "Nothing is added to the text and there are no hidden characters." The Claude watermark is a pattern in the choice of words, not a stray Unicode symbol you can strip out.
- Type
- Statistical
- Hidden characters
- No
- Official detector
- Announced: Announced
- Locally removable
- No
If you have already scanned Claude output with a hidden-character detector and found something, you almost certainly did find something. It just was not the Claude watermark. Here is what it probably was, why the misconception got traction so fast, and how to check any text, from any model, for real hidden characters.
Where the "invisible Unicode" belief came from
The story got legs before Anthropic explained the mechanism.
On August 11, 2026, when Anthropic's help center article first hit, the announcement said Claude would mark AI-generated text but did not describe how. John Gruber wrote a Daring Fireball post that morning speculating that Anthropic would hide invisible non-printing Unicode characters in Claude's output. Every remover site that went live that week ran with the same assumption.
Anthropic posted the mechanism explainer on August 14. Gruber retracted the invisible-character speculation on August 16:
"Turns out that's not what they're going to do. What they're going to do is apply a form of steganography, where the choice of words ... will leave fingerprints."
BleepingComputer said the same thing in print on August 13:
"The hard part is the watermark itself. It does not live in hidden characters."
But the tools were already out. Dozens of domains registered on or after August 11 pitched themselves as Claude watermark removers. Most were Unicode strippers. Most still are.
What Anthropic actually said
Anthropic's design principles, from the August 14 post:
- The difference between watermarked and un-watermarked text will not be distinguishable to readers.
- Nothing is added to the text and there are no hidden characters.
- Watermarking doesn't require extra tokens, and will not be more expensive.
- Watermarking carries no identifying information and can't be traced to a specific person, organization, or chat.
- Watermarking won't be specific to Claude.
Principle two is the one to bookmark. The mark lives in which of several equally good next words Claude picks. There are no zero-width joiners, no narrow no-break spaces, no soft hyphens, and no byte-order marks planted for the mark. Every character is printable.
Once you know that, the "Claude uses hidden Unicode" claim on any tool page tells you the tool did not update its copy after Anthropic explained itself.
Where invisible characters do come from
Invisible characters are real, and they do show up in text you copy from AI tools. They just are not the Claude watermark. The most common sources:
Rich-text pastes are the most common. When you copy from a formatted document, a browser, or an app that renders styled text, the clipboard carries non-printing characters like the U+FEFF byte-order mark, U+00A0 non-breaking space, or U+200B zero-width space. Pasting into a plain-text field usually clears the styling but leaves the characters.
Model quirks happen too. In April 2025, OpenAI's o3 and o4-mini were caught briefly inserting U+202F narrow no-break space in longer responses. OpenAI said it was "a quirk of large-scale reinforcement learning," not a watermark, and the characters disappeared within days. Rumi's original test log documented this and is worth reading if you want to see what a real hidden-character quirk looks like.
Prompt-injection attempts are a third source. Some pages, especially adversarial ones, embed hidden Unicode as prompt injection. If you paste raw web content into a chat or a document, that noise comes along.
There are also legacy habits. An older class of Unicode-only "AI watermark" schemes really did use zero-width characters. They were easily stripped, they never worked well, and no major provider is using that class anymore.
And some characters are functional. Soft hyphens (U+00AD), variation selectors (U+FE0F), and joiners (U+200D) exist for real reasons. An emoji like a rainbow flag is built from a sequence of characters including zero-width joiners. Blindly stripping every non-printing character will break these.
None of these are the Claude watermark, and Anthropic's mark is not any of them.
How to check any text for hidden characters yourself
The text tool does this in your browser. Nothing leaves your device. Paste text into the checker, and it will report:
- Zero-width family: U+200B (zero-width space), U+200C (zero-width non-joiner), U+200D (zero-width joiner), U+FEFF (byte-order mark), U+2060 (word joiner).
- Invisible spacing: U+00A0 (non-breaking space), U+202F (narrow no-break space), U+205F (medium mathematical space), U+3000 (ideographic space).
- Format controls: U+00AD (soft hyphen), U+2028 (line separator), U+2029 (paragraph separator).
- Bidi controls: the U+202A through U+202E range, plus U+2066 through U+2069.
- Variation selectors and joiners: U+FE0F, U+FE00 through U+FE0E.
- Lookalikes: Cyrillic and Greek letters that render like Latin ones.
- Clipboard HTML fragments: class names and attributes carried over from styled pastes.
The tool marks each finding with the count, the code point, the position in the text, and a one-line note on whether the character is safe to strip. It does not blanket-delete. You get a diff view, a clean copy, and a checklist.
The verdicts for text pastes are:
- Clean: no hidden characters were found.
- Found: hidden characters were found; the report lists what and where.
- Unknown: the sample is too short to test some checks, or a check depends on a detector that does not exist publicly, like Anthropic's statistical watermark.
- Unsupported: the check does not apply, such as an image check on a text paste.
If the answer you want is whether Claude left hidden characters in your essay, an honest tool can tell you today, without any API. If the answer you want is whether Claude left its statistical watermark in your essay, no tool can tell you that yet.
Why the confusion matters
Two practical consequences of the misconception.
The first is false confidence. People paste Claude output into a Unicode-stripping "Claude watermark remover," see it come out clean, and think they defeated the mark. They did not. If the model is retrofitted or newly launched with the mark, the pattern is still there in the words.
The second is false accusations. A teacher, editor, or manager who sees a stray zero-width space in a submission and takes it as proof of Claude use is mistaken twice. The character is probably from the clipboard or the source app, and even if the source was Claude, the mark is not stored that way.
What to do
- To clean up hidden characters in any text, from Claude, ChatGPT, Gemini, or a copy off a random web page: paste into the text tool. Everything runs in your browser.
- To check whether Claude's statistical watermark is in a specific piece of text: not possible yet. Anthropic has not shipped the detection API. Any tool claiming to do it is guessing.
- To see which Claude models actually carry the mark right now: the status tracker and the per-model list both carry a date on every verdict.
Find the characters that really are there
Runs locally · nothing uploaded
FAQ
No. Anthropic's design principles state that nothing is added to the text and there are no hidden characters. No zero-width joiners, narrow no-break spaces, soft hyphens or byte-order marks are planted for the mark, and every character in Claude's output is printable.
Mostly from the clipboard. Copying out of a formatted document, a browser or a styled app carries non-printing characters such as U+FEFF, U+00A0 and U+200B along with the words. The other sources are short-lived model quirks, prompt-injection payloads embedded in web pages, and an older class of Unicode-only watermark schemes that no major provider uses now.
No. Soft hyphens, variation selectors and joiners exist for real reasons, and an emoji such as a rainbow flag is built from a sequence that includes zero-width joiners. Blindly deleting every non-printing character breaks these, which is why each finding is reported with its code point, its position and a note on whether it is safe to strip.
No. In April 2025 OpenAI's o3 and o4-mini were briefly inserting U+202F, a narrow no-break space, into longer responses. OpenAI called it a quirk of large-scale reinforcement learning rather than a watermark, and the characters disappeared within days.
No, and treating a stray character as proof is wrong twice over. The character is usually from the clipboard or the source application, and even when the text did come from Claude, the mark is not stored that way. A hidden-character scan says nothing at all about the statistical watermark.
- 1. Anthropic: “How Claude’s text watermark works” (August 14, 2026)
- 2. Anthropic Help Center: “How Claude marks AI-generated content”
- 3. John Gruber: “Anthropic Posts ‘How Claude Marks AI-Generated Content’ Without Explaining How” (August 11, 2026)
- 4. John Gruber: “Anthropic’s ‘Watermark’ Text Adulteration in Claude Is a Perversion of Writing” (August 16, 2026)
- 5. Rumi: “New ChatGPT models seem to leave watermarks on text” (April 2025)
- 6. BleepingComputer: “AI ‘watermark removers’ flood the web. Almost none can prove they work.”