Skip to main content
CWClaudeWatermarks
Text RemoverAI Text RemoverFile CheckerRewriterHow It WorksFAQDeutsch繁體中文
Log in
  1. Home
  2. Claude Watermark Guide
  3. Claude Code Watermark

Claude Code

Does Claude Code leave a watermark?

Anthropic says marking applies to output from supported models across Claude Code. That does not mean every code block contains a visible special character, and ordinary Unicode findings are not proof of the official watermark.

Inspect copied codeRead Anthropic's current guidance

Coverage follows the model and surface

The current policy names Claude Code among the covered products when it uses a supported model. Earlier models are in transition, and some platforms or features may not support every marking type.

There is also a structural reason to expect code to behave differently from prose. A statistical text watermark works by steering word choice among many acceptable alternatives. Code has far less of that freedom: syntax is rigid, identifiers are constrained by the surrounding codebase, and a large share of any file is boilerplate that could hardly be written another way. Whatever coverage policy says, the medium itself offers less room for a signal to live in.

Code can contain legitimate invisible controls

Bidirectional controls, zero-width joiners, byte-order marks, and other code points can be security-sensitive or semantically required. The inspector therefore preselects only lower-risk items and leaves ambiguous controls unchecked for manual review.

Where invisible characters legitimately appear

  • String literals with real content. User-facing strings in Arabic or Hebrew may need bidirectional marks to render correctly. Removing them corrupts the UI.
  • Emoji sequences. Zero-width joiners are structural in composite emoji. Strip them and one glyph becomes several.
  • Byte-order marks. Some toolchains write a BOM at the head of a file. Some parsers require it; others choke on it. Either way it is a deliberate artifact, not contamination.
  • Test fixtures. Code that tests Unicode handling contains awkward code points on purpose. That is the whole point of the fixture.

Where they are a genuine problem

The security case worth knowing is bidirectional override abuse, sometimes called a Trojan Source attack: control characters reorder how a line displays without changing how the compiler reads it, so reviewed code and compiled code differ. Unicode Tag characters are similarly worth flagging, since they are invisible and can carry arbitrary data.

These are exactly the categories the checker highlights — not because they prove an AI wrote the code, but because they are worth a human look regardless of origin.

Review before changing source code

Removing an invisible code point can change identifiers, rendering, string values, or text direction. Compare the cleaned preview, run your formatter and tests, and treat the output as a proposed edit—not a guarantee that Anthropic's model-level watermark has been removed. That mark is statistical rather than character-based, and Anthropic notes it applies far less to code in the first place: where an exact token is required, there is no free choice for the watermark to ride on, so it lands mainly in comments and other prose.

A workable review sequence:

  • Paste the snippet into the checker and read every finding with its surrounding context before ticking anything.
  • Leave anything inside a string literal unchecked until you have confirmed it is not load-bearing.
  • Apply the cleaned version to a working copy, never straight to a shared branch.
  • Run the formatter and the test suite. Unicode problems in code usually surface fast once tests execute.
  • Read the diff. A character-level change that produces a suspiciously large diff means something else moved too.

For teams, the durable fix is upstream: a CI check that rejects unexpected control characters in source files. That catches the security-relevant cases continuously, whoever or whatever wrote the code, instead of relying on someone remembering to paste snippets into a web tool.

What a clean result means for code

Exactly what it means for prose: the specific characters this tool inspects were not found. It does not establish that the code was written by a person, that no AI touched it, or that no model-level mark exists. If your policy requires knowing whether AI assistance was used, ask — the answer is not recoverable from the characters.

The characters worth knowing by name

If you review code, these are the code points that actually matter. Recognising them by name is more useful than any detector score.

  • U+200B zero width space. Renders as nothing. Inside an identifier it produces two names that look identical. Inside a string it silently changes the value.
  • U+200D zero width joiner. Structural in emoji sequences. Removing it splits one glyph into several.
  • U+2060 word joiner. Prevents a line break without adding width. Harmless in prose, meaningless in most code.
  • U+202E right-to-left override. The one with real security weight. It reverses display order without changing what the compiler reads, so a reviewer and a compiler can see different logic.
  • U+FEFF byte order mark. At the head of a file it is a deliberate encoding signal. Anywhere else it is usually a concatenation accident.
  • U+E0000–U+E007F Unicode Tags. Invisible and able to carry arbitrary payloads. Almost never legitimate in source.

Every finding the checker reports names the character this way and shows its position, so you are judging a specific code point in context rather than accepting a verdict.

Why this matters more for code than for prose

In an essay, an unexpected zero-width space is cosmetic. In code it can be a defect or a vulnerability.

An invisible character inside an identifier creates two symbols that are visually identical and functionally distinct — a bug that survives code review precisely because reviewing is visual. Inside a string literal it changes a value that comparisons depend on, so a test that looks correct fails for reasons nobody can see. In configuration files, a stray BOM can make a parser reject a file that appears perfectly well formed.

None of these problems are AI-specific. They predate language models by decades and arrive just as often from copying a snippet out of a blog post or a PDF. That is the practical reason to run this check on pasted code in general, not only on code you suspect came from a model.

For pasted code and prose from other assistants, the AI text watermark remover applies the same inspection and the same review-before-removal defaults, which matter more in a source file than anywhere else.

Related guides

AI text watermark removerThe same inspector for ChatGPT, Gemini and Copilot text.Does Claude watermark text?What Anthropic has published, and what stays unverifiable.How Claude watermarks workTwo separate layers: text marks and signed file provenance.Claude C2PA checkerRead Content Credentials in supported files, locally.How to read your check resultWhat a clean result proves — and what it does not.Open the Claude Watermark RemoverPaste text and inspect every hidden character in your browser.

Evidence boundary. Anthropic says third-party detection details are forthcoming. ClaudeWatermarks does not present ordinary Unicode or clipboard residue as Anthropic's model-level watermark.

CWClaudeWatermarks

An independent, browser-based Claude Watermark Remover for inspecting and cleaning selected text artifacts and checking supported file credentials.

Tools

  • Text Remover
  • AI Text Watermark Remover
  • File Checker
  • How It Works

Information

  • About
  • Contact
  • Reading Your Result
  • Privacy
  • Terms
  • Disclaimer
  • Deutsch
  • 繁體中文

Claude is a trademark of Anthropic. ClaudeWatermarks.com is independent and is not affiliated with or endorsed by Anthropic. Results are limited to the signals explicitly shown by the Claude Watermark Remover.

Partners
Startup Fame submission verification badgeTurbo0 submission verification badgeIA-InsightsLaunchIgniterAI Agents Directory submission verification badgeFoundrList submission verification badgeAIExtension submission verification badgeMossAI ToolsFreeAI submission verification badgeToolDirs submission verification badgeToolPilot submission verification badgeStartup FastDeepLaunch submission verification badgeFirstLook submission verification badgeToolRain submission verification badge