AI Text Cleaner + Invisible Character Inspector

Inspect invisible Unicode at original UTF-16 offsets, selectively clean copied text, and audit every local change.

Original coordinates & selective cleanup

Text cleaner & invisible character workspace

No uploads · No default body persistence
133 / 500,000 UTF-16
or drop a local file here (up to 1 MB)
133 UTF-16

Inspection never rewrites text; cleanup runs only when applied.

Selective cleanup rules

All off by default: inspection only. Counts reflect the last applied cleanup, not a preview of checked rules.

Independent Unicode normalization0 changes

Warning: NFC/NFKC can change spelling, compatibility characters, and offsets. NFKC in particular can alter text meaning or formatting.

Markdown handles selected markers only, not full parsing; this is not a complete sensitive-data detector.
6 findings · 0 changes

Invisible characters in original input

Offsets are zero-based UTF-16 [start, end); lines and columns are one-based. Locate selects the original.

Kind / nameCodepointOriginal rangeLine / columnReason & location
BOM Zero width no-break space / byte order markU+FEFF[0, 1)1:1Byte order mark / zero-width no-break space may be unexpected inside text.
Zero-width Zero width spaceU+200B[22, 23)1:23Invisible width or shaping character can alter copied text.
NBSP Unusual invisible characterU+00A0[64, 65)4:36Non-breaking space looks like a space but has different semantics.
Zero-width Zero width joinerU+200D[116, 117)7:29Invisible width or shaping character can alter copied text.
Zero-width Zero width joinerU+200D[119, 120)7:32Invisible width or shaping character can alter copied text.
Zero-width Zero width joinerU+200D[122, 123)7:35Invisible width or shaping character can alter copied text.
About this tool

Made for the task at hand.

Make suspicious formatting in AI, web, and PDF copies visible without sending the document anywhere. The inspector reports Unicode names, reasons, and original UTF-16 coordinates; conservative opt-in rules provide auditable cleanup, sequential original-range mapping, safe plain-text diffs, bounded undo, and downloadable reports.

How to use

  1. Paste text or import a TXT/Markdown file up to 1 MB and 500,000 UTF-16 characters; inspection starts without changing it.
  2. Select individual cleanup rules or independent NFC/NFKC normalization, review the code and normalization warnings, then apply cleanup.
  3. Inspect paginated findings, per-rule counts, original-range changes, and the capped line diff before copying, undoing, or downloading text and a JSON report.
Your work stays yours.
Tool inputs are processed locally in your browser and are never sent to KitVerse servers. Clear the workspace when using a shared device.
Common questions
Do inspector positions change after cleanup?

No. Findings and change logs always refer to the original input using zero-based UTF-16 [start, end) ranges and one-based line/column locations. Rules run sequentially, so cleaned offsets may differ; each later change is mapped back to its original range.

Does this fully parse Markdown or detect all sensitive data?

No. Markdown cleanup removes a documented set of markers and fence lines only; it is not a full parser. The inspector targets supported invisible and control characters, not comprehensive sensitive-data detection.

Why are normalization and code-related rules opt in?

NFC and especially NFKC can alter compatibility characters and offsets. Whitespace, blank-line, and Markdown rules can break code indentation or strings, so code-like input requires explicit confirmation when those rules are selected.

What are the processing and privacy limits?

Everything runs locally with no body persistence. Input is capped at 500,000 UTF-16 characters, long processing uses a Worker, findings and change logs are capped at 10,000 and 5,000 entries, pagination renders 40 at a time, and visual diffs are capped or skipped for long text.