gptcleanuppro.com / workspace
Ready0w
Output

Paste your text and run the scan. Hidden characters and AI-sounding phrases land here, each with the reason on hover.

Works with text copied from
ChatGPTClaudeGeminiGrokCopilotPerplexity
codepoints in the removal set
14
deleted / substituted
11 / 3
words altered
0

Specification

What the AI watermark remover is specified to do

A closed set of 14 codepoints, a defined action for each, and no behaviour outside that set. Eleven are deleted. Three are substituted with U+0020, the ordinary space. Every other byte in the input appears unchanged in the output, in the same order.

That specification is the product. A tool that cannot tell you precisely which characters it acts on is asking you to accept an unbounded edit to a document you are about to publish, and the category is full of them. Everything this AI watermark remover does is enumerable, and it is enumerated below.

Design decision

Why three codepoints are substituted rather than deleted

Because the action has to preserve meaning, and a uniform rule cannot. The no-break space U+00A0, the narrow no-break space U+202F and the hair space U+200A all occupy the position of a word boundary. Delete one and the tokens on either side concatenate, so a cleanup silently corrupts the text it was run to repair.

The other eleven occupy no such position. A zero-width space sits inside or beside a token without separating it, so removing it restores the string a reader believes they are looking at. The distinction is recorded per entry rather than applied by rule, which is why the replacement behaviour is stated as 11 and 3 rather than as a single number.

Procedure

How to use the AI watermark remover in three steps

The operation is local, unmetered and unbounded in length, so the only constraints are procedural.

Step 1
Supply the artefact unmodified. Any intermediate plain-text buffer has already performed a lossy version of this operation, so the input no longer represents the source.
Step 2
Read the per-codepoint counts first. The distribution identifies the upstream cause: scattered no-break spaces suggest a word processor, a leading byte-order mark suggests a file encoding, dense zero-width spaces suggest generated output.
Step 3
Verify at the destination, not here. Because the removed characters were invisible, the only observable confirmation is downstream behaviour: a slug that resolves, an import that parses, a character count that matches the visible length.

The set

The removal set, enumerated

Fourteen entries, each with a defined action. Nothing outside this list is touched by this route under any circumstances.

Deleted: U+200B, U+200C, U+200D
Zero-width space, non-joiner and joiner. The non-joiner is semantically significant in Persian and several Indic scripts, where removal is a content change rather than a cleanup.
Deleted: U+2060, U+FEFF
Word joiner and byte-order mark. A byte-order mark occurring anywhere other than position zero is a concatenation artefact and breaks parsers, feeds and validators.
Deleted: U+00AD
Soft hyphen. Invisible until reflow, at which point it renders a hyphen in a token that does not contain one.
Deleted: U+202A to U+202E
The bidirectional embedding, pop and override controls. An unbalanced override alters display order, so a filename or link can render differently from its actual value.
Substituted with U+0020: U+00A0, U+202F, U+200A
No-break space, narrow no-break space, hair space. Word-boundary positions, so substitution rather than deletion.
Excluded: U+2014, curly quotes, U+180E
The em dash and quotation marks are visible glyphs and out of scope. The Mongolian vowel separator appears in other published lists and is absent from ours, which is stated rather than obscured.

Properties

Determinism, idempotence and the verification problem

The operation is deterministic: identical input yields identical output, with no model, threshold or sampling involved. It is also idempotent. Substitution emits U+0020, which is not a member of the removal set, so a second pass over cleaned text finds nothing and changes nothing. Running it twice is safe and running it a hundred times is the same as running it once.

The awkward property is verification. The characters removed were invisible, so the output looks identical to the input and success is not directly observable. This is why the counts matter more than the cleaned text does: the report of what was found is the only evidence the pass did anything, and the confirmation proper happens in whatever system was failing before.

Correctness

Where the published one-line solutions go wrong

Guides in this category publish a character class along the lines of a range from U+200B to U+200D plus a few singletons, to be applied with a global replace in an editor, in Python or in Node. It is close to right and it contains one defect.

The range spans U+200D, the zero-width joiner, and that codepoint has a second job: placed between two pictographic characters it composes them into a single glyph. A blanket replace therefore decomposes every combined emoji in the document into its constituent parts, silently, in text the author believed was only being cleaned. Our implementation inspects the codepoints on both sides of each joiner and passes over the ones performing composition. If you prefer to do this by hand, exclude U+200D from the class and handle it separately.

Contraindications

When running the AI watermark remover is the wrong call

Every character in the set exists because some writing system or typographic convention needs it, so blanket automation over unexamined text will eventually destroy something intentional.

The clearest case is the zero-width non-joiner in Persian and several Indic scripts, where it is orthography rather than noise. The no-break space is conventional around French punctuation and between a value and its unit. A soft hyphen in a narrow measure may be deliberate hyphenation control. In each case the removal is still performed exactly as specified, which is precisely the problem: the tool is correct and the decision to run it was not.

Straight answer

Does removal change an AI detector's output?

Not materially. Detection systems weigh lexical and structural properties of the prose, and encoding-level characters are not among the features they consider. The most technically careful guide in this result set states that stripping invisible characters is necessary but not sufficient, and names perplexity, burstiness and vocabulary as what removal cannot touch. We have no evidence to offer against that and do not contradict it.

Other tools on this term advertise bypassing specific detection services by name. We hold no affiliation with any of them, cannot observe their outputs, and make no prediction. The returns this operation actually delivers are mechanical and verifiable at your own desk, and that is the entire claim.

FAQ

Specification questions

All answered in full, nothing to click open.

How large is the removal set?

Fourteen codepoints. Eleven are deleted and three are substituted with an ordinary space.

Why is the set closed rather than extended?

Because an unbounded edit to a document you are about to publish is not a cleanup. Every action the tool performs is enumerable and enumerated.

Why substitute three instead of deleting all fourteen?

Those three occupy word-boundary positions, so deletion would concatenate the adjacent tokens and corrupt the text.

Is the operation idempotent?

Yes. Substitution emits U+0020, which is not in the removal set, so a second pass finds nothing and changes nothing.

Is it deterministic?

Yes. No model, no threshold, no sampling. Identical input produces identical output every time.

Is any text transmitted?

No. Zero bytes leave the device, which is also why there is no allowance and no length ceiling.

Does it modify wording?

No. Every byte outside the removal set appears unchanged in the output, in the same order.

How do I verify it worked?

Not by looking, since the removed characters were invisible. Use the per-codepoint counts, then confirm downstream where the failure was occurring.

What does the distribution of findings tell me?

The likely upstream cause. A leading byte-order mark points at file encoding, scattered no-break spaces at a word processor, dense zero-width spaces at generated output.

Is U+180E in the set?

No. The Mongolian vowel separator appears in other published lists and is absent from ours. We state that rather than implying full coverage.

Are em dashes or curly quotes removed?

No. They are visible glyphs and out of scope for a hidden-character operation. Separate routes handle em dashes.

What happens to zero-width joiners in emoji?

They are preserved. The matcher checks for pictographic codepoints on both sides and passes over joiners performing glyph composition.

What is wrong with the usual one-line regex?

A range spanning U+200D also strips the joiners that compose emoji, silently decomposing them. Exclude that codepoint and handle it separately.

Can I implement this myself?

Yes. The full codepoint list and its per-entry action are above, so it is two passes: delete one class, substitute a space for the other.

Does this remove image or video watermarks?

No. The route accepts pasted text and no file is ever received.

Does it rewrite or humanize?

No. Several tools on this term do, with intensity controls that only make sense for rewriting. This one performs a character operation.

When should I not run it?

On unexamined multilingual text. The zero-width non-joiner is orthographic in Persian and several Indic scripts, and removal there is a content change.

Are no-break spaces always noise?

No. They are conventional around French punctuation and between a value and its unit, so a blanket pass can destroy intentional typography.

Does removal affect AI detection?

Not materially. Detection weighs lexical and structural features of the prose rather than encoding-level characters.

Do you claim to bypass any detector?

No. We are unaffiliated with every detection vendor, cannot observe their outputs and make no prediction about them.

Do you claim vendors insert these deliberately?

No. Intent is not publicly established, and tokenizer and post-processing artefacts account for the observation without assuming one.

What is the strongest claim made for this tool?

That it applies a stated action to fourteen stated codepoints, exactly and repeatably, and does nothing else at all.

A stated set, a stated action.

Fourteen codepoints, eleven deleted and three substituted, deterministic and idempotent. Everything outside that boundary is named rather than left to inference.

Run the cleaner