Select, preview, receipt
A selective zero-width character remover
The workbench can remove selected hidden-character occurrences after inspection. It does not run a blanket replacement, normalize the document or claim that zero-width cleanup removes every kind of AI text watermark.
What is eligible for an edit
A confirmed UTF-8 file byte-order mark at the beginning of a file is the narrowest automatic suggestion. Other known copy artifacts—such as an internal byte-order mark, zero-width space, soft hyphen, word joiner, unusual whitespace or an unexpected control—require review under the property policy.
The proposed change is always a deletion of the exact selected scalar. There is no replacement text, paraphrasing, spelling correction, Unicode normalization or inferred cleanup. Each edit has a stable selection ID and a reason that appears in the receipt.
What is deliberately not removable here
Bidirectional controls, joining controls, variation selectors, valid emoji joiner/tag sequences, combining marks, private-use characters, unassigned code points, noncharacters and replacement characters are preserved by the launch policy. Unknown future format controls also block a complete cleanup result instead of being silently dropped.
Possible C2PA Content Credential structures stop the entire transformation path before the ordinary Unicode inventory proceeds. Statistical watermarks do not appear as edit candidates because this tool does not detect or remove them.
Why one occurrence at a time matters
Two occurrences of the same code point can serve different purposes. Per-occurrence findings let you inspect each location, deselect a suggestion and compare the exact before/after output. The child transformation recomputes the selected edits against the unchanged parent input rather than trusting mutable page state.
After cleanup, the plain-text or Markdown output keeps the admitted media profile and line endings. Untouched clipboard and file imports retain their imported line endings; if you edit pasted text first, the page announces that the visible editor text is now the input. The page offers a fixed-name download and an optional local JSON receipt when the validated result fits its export budget. Nothing is uploaded to produce either file.