5 items
Strips invisible Unicode watermarks from AI-generated text as you copy, paste, or read it, with an optional typography pass. Text generated by an AI assistant like Claude can carry characters you cannot see. Zero-width spaces, word joiners, bidi marks, variation selectors and tag characters are all legal Unicode, all invisible in a browser, and all survive a copy-paste into your document, your email or your commit message. This extension finds them and takes them out. WHAT IT REMOVES - Zero-width family: U+200B zero-width space, ZWNJ, ZWJ, word joiner, BOM - Bidirectional controls: LRM, RLM, the embedding, override and isolate families - Tag characters: U+E0001 and the U+E0020–U+E007F block used to hide ASCII inside invisible text - Variation selectors: VS1–VS16 and VS17–VS256 - Private use area characters, across all three planes - Soft hyphens, combining grapheme joiners, interlinear annotation marks, and any other format-class codepoint - Optionally: exotic spaces (NBSP, thin, hair, figure, ideographic) and Cyrillic or fullwidth lookalikes WHAT IT KEEPS Invisible does not mean meaningless. Left alone by default: - Emoji glue, so 👨👩👧 and ❤️🔥 stay whole - Script joiners inside Persian, Arabic, Devanagari and other complex scripts - Regional and flag tag sequences - Hangul jamo fillers, Mongolian free variation selectors, Khmer inherent vowels - Orthographic Arabic and Syriac marks There is a paranoid mode that strips these too. It is off by default, and it will visibly break the text it touches. WHERE IT WORKS Cleaning happens at the point of copy, not afterwards: - Copy and cut events, handled before the site's own handlers run - The async clipboard API, which is how chat interfaces actually implement their "Copy" buttons — no copy event fires there, so a plain event listener misses every one of them - Paste, cleaning text as it lands in an input, textarea or rich editor - On demand: a scratchpad in the popup, a right-click "Copy without hidden watermarks", and a full page audit Plain text and HTML are both handled. HTML goes through a parser, so tags, attributes and URLs come out byte-identical. THE PAGE AUDIT Scan any page and get an inventory of what is hiding in it: codepoint, Unicode name, class and count. If it finds something, the page's text drops into the Clean tab so you leave with a fixed copy. Script, style, pre, code and form fields are skipped, so code you are about to run is never rewritten. THE TYPOGRAPHY PASS (optional, off by default) Em dashes, curly quotes and ellipsis glyphs carry no payload and identify nobody, but readers notice them. This pass normalizes them to ASCII. Dash handling is position-aware: a dash opening a line stays a list marker, a dash closing one stays an interruption, and only a dash with text on both sides gets flattened. It ships off, because unlike the invisible-character scrub it changes text a reader can see. THE REWRITE (Pro) Layer B rewrites prose — varying clause order, sentence boundaries and connectors — while preserving every claim, number, name, citation and code span. It then diffs every figure in the output against the input and warns you if one was dropped, altered or invented. Two engines: - On-device, using Chrome's built-in model. No key, no cost, and the text never leaves your browser. This is the default. - Hosted API with your own key: Keys are stored per provider in local storage, never synced. This is a hygiene tool for text you own or are authorized to process. Keep any academic, legal, platform or regulatory disclosure you are required to make. PRIVACY The cleaning engine is pure local string processing. No account, no telemetry, no analytics, no server. Settings sync through your Chrome profile; counters stay on the device. The only network request the extension can ever make is the optional hosted rewrite, which goes directly from your browser to the provider you picked, using your own key, and only when you press Rewrite. CORRECTNESS The cleaning engine is a line-by-line port of the Layer A pass from the open-source watermarks-remover project, and a parity test diffs the two implementations across 45 fixtures and 6 option sets, character for character, including per-class removal counts and inspect ordering. REQUIREMENTS Chrome 111 or later. Not affiliated with, endorsed by, or sponsored by Anthropic PBC. "Claude" is a trademark of Anthropic PBC and is used here only to describe the kind of text this extension cleans.
Aug 27, 2026
rating_count is the Chrome Web Store ratings count, not a written-review count.
Media assets
Screenshots and videos on the listing.
Has promo video
Whether the listing includes at least one video.
Languages
Declared language locales.
Developer website
Listing exposes a developer website URL.
Contact email
Listing exposes a contact email.
Keyword in name
Case-insensitive substring match in the name.
Keyword in description
Case-insensitive substring match in the description.
Keyword occurrences in description
Count of case-insensitive occurrences in the description.
Category user-count percentile
Share of same-category extensions with fewer users (null if unknown).
These are transparent listing completeness / keyword signals, not a prediction of Chrome Web Store search ranking.