See what the machine sees.Text has two readers now.

Paste anything. The invisible characters hiding in it -- and what they say -- appear side by side.

Runs entirely in this tab -- nothing you paste is uploaded.
or drop a file
release to read the file

You see

The machine sees

CLEAN
Paste something above.

A tracked document is not marked in the words. It is marked between them, a slightly different invisible string per recipient, so a leaked screenshot names the person who leaked it. Paste both copies. If they read identically and differ anyway, that difference is the fingerprint.

both copies stay in this tab

Not every watermark is the same, and pretending otherwise is how a tool loses your trust. Here is exactly what secondsight can and cannot do.

Character watermarks -- it removes these

Some document trackers, mail systems and "AI humanizer" tools tag text with invisible characters, a slightly different set per copy, so a leak can be traced. secondsight finds them, shows them, and the button above copies a clean version back.

+ zero-width characters (U+200B-U+200D, U+FEFF)
+ variation selectors carrying a per-copy byte string
+ Tags-block and other invisible codepoints

Statistical watermarks -- it cannot, and says so

The watermark Claude adds to its text (a SynthID-Text scheme) is not hidden characters -- Anthropic added nothing to the bytes. It lives in the word choices themselves, so no character tool can see it or strip it, and removing it would mean rewriting the text. secondsight will honestly report "nothing hidden here."

- lives in token probabilities, not characters
- survives find-and-replace by design
- it is mandated AI provenance -- not something to defeat
make something disappear, so you know what it looks like when it does

Every scheme below is documented in the Unicode standard and already implemented in public research tooling. It is here because reading that the Tags block is invisible convinces nobody, and watching your own sentence vanish into a check mark convinces everybody. Whatever you build here, the analyser above takes straight back apart.

  • Nothing leaves this page. There is no backend, no analytics and no network request of any kind after the page loads. Open your network tab and watch it stay empty. Detection runs on your machine because the text you would most want to check is the text you would least want to upload.
  • It tries not to cry wolf. A joiner inside an emoji, a ZWNJ in Persian, a byte-order mark at offset zero and Cyrillic prose are all left alone on purpose. The control specimen in the gallery exists so you can watch it stay silent -- a detector you never see quiet is one you cannot trust when it speaks.
  • Reading intent is a heuristic. When a decoded payload looks like an instruction rather than a serial number, that is pattern matching and it is labelled as such. It raises a finding's severity; it never invents one.
  • It knows its limits. It reveals and removes character-based hidden data. Statistical watermarks like Claude's live in word choice, not characters, so secondsight cannot see or remove them -- and it says so rather than pretending otherwise.