Ready, runs in your browser
0 chars · 0 words
invisible characters
14 out
to your whitespace
0 changes
nothing is uploaded
In browser

The job

What the Claude zero-width space remover keeps

Most tools competing for this term are whitespace tools wearing a different name. They collapse runs of spaces, trim line ends or strip whitespace entirely. If your text is prose that is fine. If your text is a config file, a snippet or a Markdown document, it is a silent corruption.

This route removes 14 invisible Unicode characters and does nothing else. Indentation survives. Trailing spaces survive, if you had them. Blank lines survive. Punctuation survives. There are no option checkboxes because there is nothing to configure: one button, one behaviour, running in your browser with no upload, no account and no cap on length or runs.

The failure

Why one invisible character breaks a build

A zero-width space occupies a character slot and renders nothing. Every comparison your toolchain performs is byte-level, so the string in the file and the string on your screen stop being the same thing. Nothing errors in a way that names the cause.

That is the expensive part. The symptom is always somewhere downstream: a diff that shows a change nobody made, a linter pointing at a column that looks empty, a database row that refuses to match a query, a URL that resolves to nothing. Each one costs an hour before anyone thinks to check the characters.

How to

How to run the Claude zero-width space remover

Run it on the raw paste before any editor touches it. Reformatting first will often strip the characters incidentally and leave you unsure whether they were ever there.

Step 1
Paste the text or the file contents. No length cap applies. Try a sample loads a contaminated example if you want to see the behaviour first.
Step 2
Press Remove hidden characters. The footer reports how many characters shorter the result is, which is zero when the paste was already clean.
Step 3
Copy the result back into place. Nothing else in the text moved, so a diff will show only the removals.

Workflow

Where this belongs in the pipeline

It is local and unmetered, so the cost is a couple of seconds. These are the points where it pays for itself.

Assistant output into a repo
Code, YAML, JSON and commit messages. Run it before the commit, not after the review confuses everyone.
Copied text into an identifier
Slugs, filenames, lookup keys, environment variable names. These fail silently and specifically.
Content into a CMS field
Meta fields, tags and URLs are matched literally, so one invisible character makes the entry unreachable.
Data into a spreadsheet
Two cells that look identical and will not join. Run it on the pasted column before you build the lookup.
Not on prose for a reader
If the text is only ever going to be read by a person, none of these characters matter.

Scope

What comes out, and what stays in

The list is fixed at 14 and it is worth knowing the shape of it before you rely on it.

Out, deleted
Zero-width space, non-joiner, joiner and word joiner, byte-order mark, soft hyphen, and five bidirectional controls including both overrides.
Out, replaced with a space
No-break space, narrow no-break space and hair space. Substituted rather than deleted so words do not run together.
Stays: emoji joiners
A joiner between two emoji is composing a glyph, so it is preserved. Only stray joiners are removed.
Stays: all whitespace
Spaces, tabs, line endings and blank lines are identical in the output. This is the point of the route.
Stays: everything wider
Variation selectors, directional marks and isolates, invisible math operators and the Mongolian vowel separator are outside the 14 and are not removed.

Careful

Text you should check before cleaning

Zero-width spaces mark word breaks in scripts that do not use visible spaces, including Thai, Myanmar, Khmer and Japanese. In those languages the character is carrying information, and removing it is a loss rather than a fix.

The zero-width non-joiner controls letter joining in Persian and in several Indic scripts, so the same caution applies. In the other direction, ICANN prohibits zero-width spaces in domain names because they enable a homograph attack, where a malicious URL looks identical to a legitimate one. In anything that becomes a link, there is no benign reading.

Limits

What the Claude zero-width space remover will not do

It does not remove Claude's text watermark. Anthropic's published explanation says nothing is added to the text and there are no hidden characters, so a character remover has nothing to work on. Treat this as text hygiene rather than as a way to hide how something was written.

It also does not report. There is no scan view, no per-character explanation and no count of anything except how much shorter the result is. If you want to see what is in the text before you change it, that is the detector route rather than this one. No file upload, no batch mode and no API either.

In practice

Who runs this, and how often

Engineers moving assistant output into source control. Technical writers whose Markdown is built by a pipeline that treats whitespace as structure. Operations people pasting generated config. Anyone whose editor does not show invisible characters and whose toolchain very much does.

Because it is unmetered and local, it works as a reflex rather than a decision. Paste, remove, copy, carry on. A zero result is common and costs you nothing.

FAQ

Everything answered. Questions about removing zero-width spaces

How do I strip zero-width spaces from a paste?

Paste it here and press Remove hidden characters. Fourteen invisible characters come out and nothing else is altered.

Does it change indentation or line endings?

No. Whitespace is untouched on this route, which is the main reason to use it on code rather than a general cleaner.

Is it free and unlimited?

Yes. No account, no allowance, no character cap, because the work happens in your browser.

Is my text uploaded?

No. Nothing is transmitted and nothing is stored anywhere.

Which 14 characters are handled?

Four zero-width characters, the byte-order mark, the soft hyphen, five bidirectional controls and three space look-alikes.

Why replace three instead of deleting them?

No-break space, narrow no-break space and hair space look like spaces. Deleting them would merge the words on either side.

Does it handle variation selectors?

No. Those sit outside the 14, along with directional marks, isolates and invisible math operators.

Will my emoji survive?

Yes. A joiner between two emoji is preserved because it is composing the glyph.

Does it touch punctuation or Markdown?

No. Quotes, dashes, ellipses, headings, emphasis and code fences are all left alone.

Are there any settings?

None. This route has one behaviour, so there is nothing to configure and nothing to get wrong.

What does the footer number mean?

How many characters shorter the output is. A substituted space does not change the length, so it does not appear in that number.

Zero characters removed. Did it work?

Yes. Plenty of pastes are clean, particularly from a plain text field or a terminal.

Can I see what is in the text first?

Not on this route. This one transforms without reporting. The detector route shows each finding with its reason.

Is it safe on Thai, Khmer or Japanese text?

Check first. Zero-width spaces mark word boundaries in those scripts and removing them loses information.

What about Persian or Indic scripts?

The zero-width non-joiner is meaningful there because it controls letter joining, so review before cleaning.

Does it remove Claude's watermark?

No. Anthropic states its text watermark adds no hidden characters, so nothing here can reach it.

Will it help with AI detection?

No. We make no claim about any detector, and character removal changes nothing about word choice.

Can I upload a file?

No. Paste the contents in. There is no file input on this route.

Is there an API or batch mode?

No. One paste at a time through this page.

Does it work on a phone?

Yes, and the processing is still local. Any modern mobile browser handles it.

Does it work on ChatGPT or Gemini output?

Yes. The characters are the same regardless of which assistant produced the text.