Zerowidth CleanerAll measured guides

CLAUDE WATERMARK REMOVER · PRACTICAL TEST

Will this cleaner strip ANSI terminal color sequences?

No. Our actual ESC color sequence stays intact, and the literal text \x1b also stays intact. Removing an adjacent U+200B does not remove terminal controls.

Tested October 8, 2026 · v24.19.0 · 4 measured runs

Open the Claude text cleaner · Full measured data

Code-point comparison for Actual ANSI color

Measured inputs and outputs

These are locally constructed test strings, not evidence that Claude inserts these characters. We executed the saved homepage script snapshot with a minimal DOM harness and compared exact strings. The invisible-checkbox state and dash mode appear in each row. The observations below test this page's specific question. Three destination checks use separately recorded browser observations; those pages explain the distinction. We make no detector-score or statistical-watermark removal claim.

Before and after observations; full code points and strings are in the JSON download.
Fixture and modeInput string and code pointsOutput and cleaner statusObserved before / after
Actual ANSI color
direct string / keep / invisible true
"\u001b[31mRED\u001b[0m"
U+001B U+005B U+0033 U+0031 U+006D U+0052 U+0045 U+0044 U+001B U+005B U+0030 U+006D
"\u001b[31mRED\u001b[0m"
No selected invisible characters found
{"escCount":2,"stripped":"RED"}
{"escCount":2,"stripped":"RED"}
Literal notation
direct string / keep / invisible true
"\\x1b[31mRED\\x1b[0m"
U+005C U+0078 U+0031 U+0062 U+005B U+0033 U+0031 U+006D U+0052 U+0045 U+0044 U+005C U+0078 U+0031 U+0062 U+005B U+0030 U+006D
"\\x1b[31mRED\\x1b[0m"
No selected invisible characters found
{"escCount":0,"stripped":"\\x1b[31mRED\\x1b[0m"}
{"escCount":0,"stripped":"\\x1b[31mRED\\x1b[0m"}
ANSI plus marker
direct string / keep / invisible true
"\u001b[31mR​ED\u001b[0m"
U+001B U+005B U+0033 U+0031 U+006D U+0052 U+200B U+0045 U+0044 U+001B U+005B U+0030 U+006D
"\u001b[31mRED\u001b[0m"
Removed 1 invisible character
{"escCount":2,"stripped":"R​ED"}
{"escCount":2,"stripped":"RED"}
Plain reference
direct string / keep / invisible true
"RED"
U+0052 U+0045 U+0044
"RED"
No selected invisible characters found
{"escCount":0,"stripped":"RED"}
{"escCount":0,"stripped":"RED"}

Escape notation is not the escape character

The first fixture contains two actual U+001B characters delimiting a color-setting sequence and a reset sequence. The cleaner retains both. The independent Node stripVTControlCharacters observer removes their VT control sequences and returns RED. The second fixture instead contains backslash, x, digit one and letter b as visible text. That notation is retained by both operations. The mixed fixture loses its separate U+200B during cleanup while the two ESC characters remain. Its stripped observation changes from marked text to RED only after the selected marker is removed. These are distinct string representations, not two displays of one input.

Do not execute terminal data to inspect it

The fixtures are passed to a string observer and stored as JSON. We do not print raw ESC sequences to an interactive terminal or execute pasted commands. Node documents its VT-control stripping function, which we use here as an independent comparison rather than a claim that the homepage implements it. Our earlier ASCII-control inventory showed retention of control code points; this page measures the surrounding control sequence and contrasts it with literal notation. No terminal emulator rendering, shell safety or malicious output behavior is tested. The record cannot establish where an unknown log acquired its controls.

Use a log-aware inspection path

Save raw log bytes or escaped strings before proposing edits. Determine whether a suspicious sequence contains an actual escape character, visible notation or other controls, then use the intended log-processing library for that representation. Do not run a command or render untrusted terminal output merely to see what it does. A character-cleaning count and a VT-control stripping result answer different questions, and neither proves that a log is safe to execute as code. Review the resulting ordinary text against the original data and state the chosen transformation explicitly. The homepage remains a selected Unicode character editor, not an ANSI sanitizer.

Reproduce this test

Save reproduce.cjs and tested-app.js in the same folder. Run the command below with Node.js. The harness prints its runtime, script SHA-256 and every measured row. Compare those rows with the original record. Using a newer script or runtime creates a new experiment; retain the version information with your rerun.

node reproduce.cjs

Reference and next check

Node stripVTControlCharacters provides the relevant primary definition. The table and fixture analysis are original measurements. For broader inspection, use our Unicode inspector. Read the scope distinction before interpreting cleanup as a watermark result.