The tool
What the Llama watermark cleaner does
Paste text and press Scan. The Llama watermark cleaner counts the invisible Unicode characters sitting in it and shows each one with the reason it matters. Press Clean and they are taken out, and the result is yours to copy.
It runs in the page. Your text is never sent anywhere, there is no account and there is no cap on how many times you use it, because there is no server involved to meter. It also changes no words: cleaning removes invisible characters and normalises spacing, and every word you wrote comes out the other side exactly as you wrote it.
The list
The fourteen hidden characters it removes
Fourteen, not a hundred. Some tools advertise over a hundred types of invisible character and name none of them. Here is the whole list, and anything outside it is left alone, which is a limit worth knowing rather than hiding.
Eleven are deleted outright. Three are space look-alikes and are replaced with an ordinary space instead, because deleting them would run two words together.
- Zero-width space, U+200B
- Invisible, takes a character slot and survives copy-paste. The most common one in copied AI output.
- Zero-width non-joiner and joiner, U+200C and U+200D
- Invisible controls that split words for anything reading the text, including find-and-replace and spell-check.
- Word joiner and byte-order mark, U+2060 and U+FEFF
- Invisible joiners that break search and diffing, and a byte-order mark stranded mid-document confuses parsers and feeds.
- Soft hyphen, U+00AD
- Invisible until a line wraps, then a hyphen appears in a word that never had one.
- Three space look-alikes, U+00A0, U+202F and U+200A
- No-break space, narrow no-break space and hair space. Each is swapped for a normal space rather than deleted.
- Five directional controls, U+202A to U+202E
- Embeddings, a pop and two overrides. Stray copies reorder mixed-direction text and can make a file name read differently from what it is.
How it works
How to clean a Llama watermark in three steps
Everything below happens in your browser. Nothing is uploaded at any point, including the text you paste to check.
- Step 1
- Paste the text into the box. Any length: there is no character cap on this tool because nothing is being sent anywhere.
- Step 2
- Press Scan. You get a count of hidden characters and a count of AI-sounding phrases, each item with its own reason.
- Step 3
- Press Clean and copy the result. The badge tells you exactly how many characters were removed, or says none were found.
The distinction
Two different things are called a text watermark
The first is a character in the string. Something invisible sits between two words, and stripping it out is straightforward: as one writer on the subject puts it, you simply replace the substituted characters with their real equivalents. That is the thing this tool does.
The second is statistical. A model can be made to prefer certain words very slightly as it generates, so the signal lives across thousands of small choices rather than in any one place. It has been described as being in the document as a whole, which is why paraphrasing a few sentences does almost nothing to it. Nothing that leaves your words intact can remove a signal of that kind, and this cleaner leaves your words intact by design.
The honest limit
What the Llama watermark cleaner does not touch
It does not change a single word, so it does nothing to phrasing, rhythm, vocabulary or any statistical pattern in the writing. It does not rewrite, paraphrase or humanize. It does not touch visible characters that look like other visible characters, such as a lookalike letter from another alphabet, because those are not on the list.
It also makes no claim about detectors. Cleaning invisible characters out of a paragraph does not change what any detection tool will say about it, and the honest version of that, which even competing tools concede, is that detectors look at the writing itself and not only at stray characters.
Why it matters
What hidden characters actually break
They break exact matching first. A search for a phrase fails because there is a zero-width space in the middle of it. A find-and-replace misses one instance out of nine. Two lines that look identical show as different in a diff, and nobody can see why.
Then they break the places text gets reused. URL slugs pick up characters that should not be there. CSV and JSON fields carry a byte-order mark into a parser that chokes on it. A soft hyphen stays invisible until the line wraps and then prints a hyphen in the middle of a word. None of this is dramatic and all of it costs an afternoon when it happens.
Before you clean
When cleaning could change something you wanted
Three cases are worth knowing. The zero-width non-joiner is genuinely meaningful in Persian and in some Indic scripts, where it controls how letters join, so check text in those languages before cleaning rather than after. Emoji are handled already: a joiner sitting between two pictographic characters is left alone, so a multi-part emoji stays a single glyph instead of falling apart.
The third is spacing. Cleaning collapses runs of two or more spaces or tabs into one and trims trailing spaces at the end of a line. Blank lines between paragraphs are kept. That is fine for prose and worth pausing over for code or anything where alignment was intentional.
In practice
Who uses the Llama watermark cleaner, and when
People pasting model output into a CMS and finding the slug or the search index behaves oddly. Developers who copied a code block out of a chat window and got a compile error on a line that looks perfect. Editors handling text that passed through several tools and picked something up on the way.
The common thread is that the problem is invisible by definition. You do not go looking for a zero-width space, you go looking for why the search failed. A scan takes a second and either finds something or rules it out.