Open source · MIT · Runs in your browser

Some characters are invisible. Your search index is not.

Inkwash finds zero-width characters, smuggled Unicode, homoglyph letters and machine typography in finished prose, then strips them and itemizes every change with its exact codepoint.

Nothing you paste leaves this page · No account · No upload · Free forever

A homoglyph is a letter borrowed from
another alphabet that renders identically.

ceramics  ← Latin c, U+0063
сeramics  ← Cyrillic с, U+0441

Those are different words to a search index.
They are the same word to your eye.

The tool, running here, in your browser

INKWASH

Strips invisible characters and machine typography out of finished prose. Runs entirely in this page. Nothing you paste is uploaded, stored, or sent anywhere.

1 — Paste your finished prose0 chars
2 — Washed output0 chars
Nothing washed yet Paste something and press Wash it.

What this cannot do

Inkwash works on characters. It finds and removes things that are literally present in your file: zero-width characters, smuggled Unicode tag bytes, homoglyph letters borrowed from other alphabets, exotic spaces, and machine typography. Every one of those is deterministic, so every change is itemized above and you can verify it yourself.

It cannot remove a statistical watermark. Schemes such as SynthID-Text and green-list token biasing do not add characters — they live in which words were chosen, spread across the whole passage. No character-level tool can touch them, and any tool claiming otherwise is guessing. Changing that signal requires rewriting the prose, which is what the HUMANIST skill's rewrite pass is for.

This is a hygiene tool, not a disguise. Clean text still reads exactly as well or as badly as it was written.

Why invisible characters end up in your writing

Most of them are not adversarial. Word processors insert non-breaking spaces and soft hyphens for layout. Web editors leave zero-width spaces at paste boundaries. Copying out of a rendered page picks up whatever the CSS put there. Several AI writing tools emit zero-width characters or unusual spacing as a side effect of their tokeniser.

They matter anyway: they break search and find-and-replace, corrupt diffs, defeat word counts, survive into your CMS, and carry provenance you did not choose to publish. The U+E0000 tag block is the one genuinely adversarial case — it can encode arbitrary hidden text inside a passage that looks completely ordinary. If Inkwash finds any, it decodes and shows you the message.


INKWASH is the companion tool to the HUMANIST writing skill. Single file, no network, no dependencies, no telemetry. Open the source and read it — the whole program is in the page you are looking at.

Straight answers

What it does and does not do

Inkwash works on characters. That boundary is the whole design, and it is worth knowing before you rely on it.

It reports before it removes

Every change is itemized with the exact codepoint and the text around it. Turn a switch off and the hits are still reported, just left in place.

It cannot touch a watermark

Statistical schemes live in which words were chosen, spread across a whole passage. No character-level tool can reach that, and any tool claiming otherwise is guessing.

It reads your Word files

Drop in a .docx and it reports the metadata riding along inside: author name, company, revision count, total editing time.

Measured, not assumed

How rare is this, really?

I scanned every document built for the detection studies behind this tool: 2.4 million characters. Zero homoglyphs. What turned up was 27 zero-width spaces inside one scraped Supreme Court opinion, which tells you where these actually come from — copying text out of somewhere else.

So this is cheap insurance, not a crisis. It takes ten seconds and it is the first thing to rule out before you go rebuilding your schema. The nine common site-audit tools I checked do not look for it.

Read the study ▸

Nothing you paste leaves this page.

No server · No upload · No telemetry · Read the source and check

The whole program is in the page.

One file, no build step, no dependencies, no network. Save it to your desktop and it still works with the wifi off. That is the only way a privacy claim is checkable.

github.com/itsryanlenk/humanist ▸

MIT licensed · Companion to the HUMANIST writing skill