Lab

Browser utility · private by design

AI Text Clean Up Tool

Clean up AI text from ChatGPT, Claude, Gemini, or any other assistant by finding and removing invisible Unicode characters without trimming, normalizing, or rewriting everything else.

Your text stays here. Processing happens entirely in this browser. Nothing is uploaded or stored.

01 · Inspect and clean

Paste the text you want to check

Paste or type text to inspect it.

0Invisible characters foundPaste or type text to inspect it.
Before
0Unicode characters
0UTF-8 bytes
0Lines
After
0Unicode characters
0UTF-8 bytes
0Lines
Removed 0 characters · 0 bytes

02 · See every change

Invisible-character inspector

Each marker replaces one invisible character in this preview only.

Your highlighted source preview will appear here.

No findings to enumerate yet. Paste text or load the sample to see named characters, code points, and exact positions.

03 · Open implementation

How it works

View the full source on GitHub
1

Read real Unicode characters

The inspector iterates by Unicode code point, so an emoji is counted once even when JavaScript stores it as two UTF-16 units.

2

Match a narrow removal set

It targets Unicode format controls, unsafe C0/C1 controls, and the combining grapheme joiner. Tabs, line breaks, spaces, non-breaking spaces, accents, and ordinary punctuation stay intact.

3

Explain before changing

Every match gets a readable name, code point, line, column, and character position. The visible marker is a preview token; it is never inserted into the cleaned text.

4

Filter — nothing more

The cleaner does not call trim(), Unicode normalization, grammar correction, or an AI service. It only filters characters matched by the rule below.

text-cleaner.tsThe same core TypeScript function powering this page
const REMOVABLE_INVISIBLE_CHARACTER =
  /[\p{Cf}\u0000-\u0008\u000B\u000C\u000E-\u001F\u007F-\u009F\u034F]/u;

export function cleanInvisibleText(source: string): string {
  return Array.from(source)
    .filter((character) => !REMOVABLE_INVISIBLE_CHARACTER.test(character))
    .join('');
}

Privacy model: cleaning requires no account, database, or server-side text processing. Your pasted text is never included in analytics or sent to a server, and refreshing this tab discards it.

What this AI text clean up tool does

Text copied from an AI assistant can contain zero-width spaces, word joiners, direction marks, byte-order marks, and other hidden Unicode controls. This free cleaner identifies those characters, shows their exact positions, and creates a clean copy without changing your wording.

Does it rewrite or humanize AI text?

No. It preserves your words, punctuation, whitespace, accents, and line breaks. It only removes the invisible controls listed in the inspector.

Is pasted text uploaded?

No. The entire AI text clean up process runs locally in your browser, with no account, upload, or stored text.