FREE TOOL, OCTOBER 2026

AI text cleaner: strip hidden characters from ChatGPT and Claude text

Text copied out of ChatGPT, Claude or Gemini often carries invisible spaces, Markdown symbols and typographic punctuation that look wrong once they land in Docs, Gmail, a CMS or LinkedIn. Paste it below, clean it in your browser, then use the right paste method for the app you are sending it to.

Scan my text free Updated

Short answer

An AI text cleaner removes invisible characters such as zero-width spaces (U+200B), narrow no-break spaces (U+202F) and soft hyphens from chatbot output, and can straighten curly quotes and replace em dashes. It keeps your words the same. It does not remove a statistical watermark and cannot promise any AI detector result.

THE CLEANER

Clean your ChatGPT, Claude or Gemini text here

Paste up to 2,000 characters without an account. Scan and clean run in your browser; the rewrite tab is optional and the only step that sends text anywhere.

claudeclean.local
TEXT STAYS PRIVATE

01 / SOURCE TEXT

Paste text from Claude

Markdown and code blocks supported0 / 2,000 free chars

The tool says Claude because that is where it started, but it treats every paste the same way. It keeps Markdown and code blocks, so headings and code survive the trip into apps that render them. The sections below cover what each rule does and how to paste the result into the app you use.

WHAT GETS CLEANED

What does an AI text cleaner remove?

Every rule, with the exact before and after, and whether ClaudeClean does it or leaves it to you.

Cleanup rules for AI text, before and after
What it findsBeforeAfterIn ClaudeClean
Zero-width space (U+200B)dash[U+200B]boarddashboardAlways, in ClaudeClean
Narrow no-break space (U+202F)on[U+202F]Mondayon MondayAlways, in ClaudeClean
No-break space (U+00A0)10[U+00A0]km10 kmAlways, in ClaudeClean
Soft hyphen (U+00AD)inter[U+00AD]nationalinternationalAlways, in ClaudeClean
Byte order mark (U+FEFF)[U+FEFF]HelloHelloAlways, in ClaudeClean
Lookalike lettersCyrillic а inside an English wordLatin aAlways, in ClaudeClean
Curly quotes“it’s”"it's"Toggle, on by default
Em dashMonday — andMonday, andToggle, on by default
Double spacesfree. Everyfree. EveryToggle, on by default
Markdown symbols**Owner:** DanaOwner: DanaNot done, your editor
Emoji bullets✅ Ship smallShip smallNot done, your call

Swipe to compare →

Zero-width space (U+200B)

Before
dash[U+200B]board
After
dashboard
In ClaudeClean
Always, in ClaudeClean

Narrow no-break space (U+202F)

Before
on[U+202F]Monday
After
on Monday
In ClaudeClean
Always, in ClaudeClean

No-break space (U+00A0)

Before
10[U+00A0]km
After
10 km
In ClaudeClean
Always, in ClaudeClean

Soft hyphen (U+00AD)

Before
inter[U+00AD]national
After
international
In ClaudeClean
Always, in ClaudeClean

Byte order mark (U+FEFF)

Before
[U+FEFF]Hello
After
Hello
In ClaudeClean
Always, in ClaudeClean

Lookalike letters

Before
Cyrillic а inside an English word
After
Latin a
In ClaudeClean
Always, in ClaudeClean

Curly quotes

Before
“it’s”
After
"it's"
In ClaudeClean
Toggle, on by default

Em dash

Before
Monday — and
After
Monday, and
In ClaudeClean
Toggle, on by default

Double spaces

Before
free. Every
After
free. Every
In ClaudeClean
Toggle, on by default

Markdown symbols

Before
**Owner:** Dana
After
Owner: Dana
In ClaudeClean
Not done, your editor

Emoji bullets

Before
✅ Ship small
After
Ship small
In ClaudeClean
Not done, your call

Bracketed codes stand in for characters you cannot see. Hidden characters, lookalike letters and no-break spaces are cleaned on every run; the three style rules are toggles that start on.

TRY THE RULES

Flip a rule, watch the paste change

Live sample
  • Hidden charactersU+200B, U+202F, U+00A0, U+00AD (always on in the tool)In ClaudeClean
  • Curly quotes to straight“ ” ’ become " and 'In ClaudeClean
  • Em dash to commaU+2014 becomes a commaIn ClaudeClean
  • Collapse double spacestwo or more spaces become oneIn ClaudeClean
  • Markdown symbols## and ** left over from chatEditor step
  • Emoji bulletsdecorative icons at line startsEditor step
0 fixed15 left

## Launch notes ✅ **Big news:** we’re shipping the new dashboard​ on Monday — and it’s free.··Every plan gets the “Export” button­. ✅ Reply with questions anytime.

What lands in your app## Launch notes ✅ **Big news:** we’re shipping the new dashboard​ on Monday — and it’s free. Every plan gets the “Export” button­. ✅ Reply with questions anytime.
Orange marks are still in the text, green ones were fixed. The four rules on top are what the ClaudeClean cleaner does: hidden characters always, the other three as toggles that start on. Markdown and emoji bullets stay unless you remove them in your editor.

For a deep dive on single characters, see the guides to the zero-width space and the invisible character detector. Dashes get their own page: how to remove em dashes from AI text.

PER APP

What clean means in Google Docs, Word, Gmail, WordPress and LinkedIn

Clean text is not one thing. Docs can turn Markdown into headings, LinkedIn shows it as typed, and code cares about quotes. Here is the right finish for each.

SAME ANSWER, THREE APPS

What one pasted AI answer looks like in Docs, Gmail and WordPress

Illustration
Google Docs fixTools > Preferences > Enable Markdown, then right-click > Paste from Markdown
Orange marks are leftovers from the chat window: Markdown symbols, an em dash and invisible characters. The clean view is the cleaner's output plus each app's own step, listed under the screen. Google Docs only converts Markdown when you turn it on.
How to paste AI text into common apps
AppWhat goes wrongBest paste methodMarkdown
Google DocsA plain paste shows ## and ** as textTools > Preferences > Enable Markdown, then right-click > Paste from MarkdownConverts headings, bold, italic, strikethrough and links once enabled; off by default
Microsoft WordWeb styling from the chat page can come alongPaste, press Ctrl, then Keep Text Only (T)No Markdown option among the paste choices, so symbols stay as typed
GmailFonts and sizes from the source pagePaste cleaned text, then Remove formatting, Ctrl + \ or ⌘ + \Remove formatting clears styling, not characters, so delete stray symbols first
LinkedIn post** and ## appear in the postPaste cleaned text, then delete leftover symbols or ask the chatbot for plain textNot rendered, as users report
WordPress block editorMarkdown lines land inside one paragraph blockTurn ## lines into Heading blocks and dash lines into a List blockTyping shortcuts such as ## and a space while you write; plugins add full Markdown
Code, terminal, config filesA zero-width space makes two identical names differClean hidden characters; switch the em dash rule off if strings need itLeave code fences alone; the cleaner keeps them

Swipe to compare →

Google Docs

What goes wrong
A plain paste shows ## and ** as text
Best paste method
Tools > Preferences > Enable Markdown, then right-click > Paste from Markdown
Markdown
Converts headings, bold, italic, strikethrough and links once enabled; off by default

Microsoft Word

What goes wrong
Web styling from the chat page can come along
Best paste method
Paste, press Ctrl, then Keep Text Only (T)
Markdown
No Markdown option among the paste choices, so symbols stay as typed

Gmail

What goes wrong
Fonts and sizes from the source page
Best paste method
Paste cleaned text, then Remove formatting, Ctrl + \ or ⌘ + \
Markdown
Remove formatting clears styling, not characters, so delete stray symbols first

LinkedIn post

What goes wrong
** and ## appear in the post
Best paste method
Paste cleaned text, then delete leftover symbols or ask the chatbot for plain text
Markdown
Not rendered, as users report

WordPress block editor

What goes wrong
Markdown lines land inside one paragraph block
Best paste method
Turn ## lines into Heading blocks and dash lines into a List block
Markdown
Typing shortcuts such as ## and a space while you write; plugins add full Markdown

Code, terminal, config files

What goes wrong
A zero-width space makes two identical names differ
Best paste method
Clean hidden characters; switch the em dash rule off if strings need it
Markdown
Leave code fences alone; the cleaner keeps them

Docs, Word and Gmail steps come from each vendor's help pages. LinkedIn has no official note on Markdown; the row reflects user reports. Menu names checked October 2026.

LINKEDIN POST

Why your AI-drafted post shows **asterisks**

Illustration
Asterisks8 shown as text
You, or ask for plain text
Em dash1
ClaudeClean
U+202F1 narrow gap
ClaudeClean
EmojiKept
Your call
LinkedIn's post box does not turn Markdown into bold, so the stars that make bold text in ChatGPT or Claude show up as plain characters. The cleaner fixes the dash and the hidden space; the asterisks need deleting or a plain-text prompt.

Google Docs added Markdown in 2024, and it is still off by default

Google announced Markdown import and export for Docs on July 16, 2024. Per the Docs help page, Paste from Markdown and Copy as Markdown appear in the right-click menu once you turn on Enable Markdown under Tools > Preferences. It handles # headings, *italic*, **bold**, ~strikethrough~ and links.

BEFORE YOU HIT PASTE

Clean the AI answer first, then paste it anywhere.

ClaudeClean strips zero-width spaces, odd no-break spaces, soft hyphens and lookalike letters in your browser, with optional fixes for curly quotes, em dashes and double spaces. ChatGPT, Claude and Gemini text all work.

  • 300 rewrite credits a month
  • 20,000 characters per request
  • .txt, .docx and .pdf files

WHERE THE JUNK COMES FROM

Why does AI text have hidden characters and stray symbols?

Three sources, and none of them is a watermark.

MODEL OUTPUT

Odd spaces from the model itself

In April 2025 Rumi found narrow no-break spaces in o3 and o4-mini answers, and OpenAI told them it was not a watermark. In October 2025 a developer reported U+202F in place of normal spaces in GPT-5 output, drawn at roughly a fifth of a space in some Mac apps.

CHAT FORMATTING

Markdown that only the chat window renders

Chatbots write headings, bold and lists in Markdown, and the chat window draws them nicely. Copy the raw text into an app without Markdown support and the ## and ** come along as plain characters.

COPY PATH

Editors and clipboards add their own

Word processors can turn straight quotes curly as you edit, web pages carry fonts and backgrounds into rich paste, and text passed through several apps can pick up no-break spaces on the way.
Nothing is added to the text and there are no hidden characters;
Source: Anthropic, on how Claude's text watermark works

OpenAI says the same about its textGrain watermark: it does not add hidden characters, invisible spaces, or unusual punctuation. So a cleaner that finds U+200B in your draft has found real junk worth removing, not proof of where the text came from. The watermark vs hidden characters guide covers that difference in depth.

STEP BY STEP

How to clean AI text before you paste it

Seven steps, under a minute for most answers. The words never change.

  1. 01

    Copy the whole answer

    Copy the ChatGPT, Claude or Gemini reply in one go, with the copy button if the app has one, so the whole answer gets cleaned at once instead of piece by piece.
  2. 02

    Paste it into the cleaner and scan

    Paste into the cleaner and run a scan. It lists zero-width spaces, no-break spaces, soft hyphens, byte order marks and lookalike letters with a count for each.
  3. 03

    Pick your style rules

    Curly quotes, em dashes and double spaces are style, not junk. Keep the rules on for email and social posts; switch the quote rule off for print copy in a house style that wants curly quotes.
  4. 04

    Clean and copy

    Clean and copy the result. Every visible word and number stays put, so there is nothing to proofread for meaning.
  5. 05

    Paste with the app's own method

    Use Paste from Markdown in Google Docs, Keep Text Only in Word, and Remove formatting in Gmail. The table above has the exact menu paths.
  6. 06

    Fix formatting where it does not render

    In a LinkedIn post, a plain email or a text field, delete leftover ** and ## by hand, or ask the chatbot to answer in plain text without Markdown next time.
  7. 07

    Read it once before sending

    Check any emoji, names written in other scripts and code snippets. Those are the places where a joiner or a quote mark matters, covered in the mistakes section below.

OTHER CLEANERS

How AI text cleaners compare

Five popular free cleaners and ClaudeClean, checked against their own pages in October 2026. They agree on hidden characters and differ on Markdown and joiners.

AI text cleaners compared, October 2026
CleanerWhere it runsMarkdownEmoji and Persian joinersNotable
ClaudeCleanThis pageScan and clean in your browser; optional rewrite goes to OpenAIKept, no strip optionRemoved, so emoji sequences and Persian text can split2,000 characters without an account, 20,000 on Pro; TXT, DOCX and PDF files
ToolJunction AI Text CleanerIn the browserOptional, leading ** * and # onlyRemoved with other zero-width charactersDashes to hyphens, ellipsis to three dots, trims blank lines; no limit stated
LLM Pulse ChatGPT Text CleanerIn the browserOptional, off by defaultAdvanced option, off by default with a warningAlso removes tag characters; homoglyph fixing is opt-in
VoiceDash text cleanerLocally, rule based, no AI modelCleans Markdown noise by default, can protect links and codeKept for emoji and Persian ZWNJ5,000 character limit
GPTCleanupCharacter cleanup in the browser; paid rewrites on its serversKeptEmoji joiners and RTL marks keptStrips ChatGPT data-start and data-end HTML attributes
ChatGPT Watermark Remover (Chrome)Extension that rewrites your clipboard on chatgpt.comNot handledOnly U+202F and U+200B targeted178 users, version 1.3.1, last updated April 30, 2025

Swipe to compare →

ClaudeClean

This page
Where it runs
Scan and clean in your browser; optional rewrite goes to OpenAI
Markdown
Kept, no strip option
Emoji and Persian joiners
Removed, so emoji sequences and Persian text can split
Notable
2,000 characters without an account, 20,000 on Pro; TXT, DOCX and PDF files

ToolJunction AI Text Cleaner

Where it runs
In the browser
Markdown
Optional, leading ** * and # only
Emoji and Persian joiners
Removed with other zero-width characters
Notable
Dashes to hyphens, ellipsis to three dots, trims blank lines; no limit stated

LLM Pulse ChatGPT Text Cleaner

Where it runs
In the browser
Markdown
Optional, off by default
Emoji and Persian joiners
Advanced option, off by default with a warning
Notable
Also removes tag characters; homoglyph fixing is opt-in

VoiceDash text cleaner

Where it runs
Locally, rule based, no AI model
Markdown
Cleans Markdown noise by default, can protect links and code
Emoji and Persian joiners
Kept for emoji and Persian ZWNJ
Notable
5,000 character limit

GPTCleanup

Where it runs
Character cleanup in the browser; paid rewrites on its servers
Markdown
Kept
Emoji and Persian joiners
Emoji joiners and RTL marks kept
Notable
Strips ChatGPT data-start and data-end HTML attributes

ChatGPT Watermark Remover (Chrome)

Where it runs
Extension that rewrites your clipboard on chatgpt.com
Markdown
Not handled
Emoji and Persian joiners
Only U+202F and U+200B targeted
Notable
178 users, version 1.3.1, last updated April 30, 2025

Flags mark gaps worth knowing, ours included. ToolJunction and LLM Pulse state plainly that cleaning is no AI detector bypass, and LLM Pulse adds that it cannot remove model-level watermarks.

Check what a clipboard extension can read

Extensions that clean as you copy need permission to read and write your clipboard. Before installing one, look at the permissions it asks for and how recently it was updated; the one in the table was last updated in April 2025.

SEE IT RUN

Scan, clean, and rewrite only if you want to

The same three steps whichever chatbot wrote the text.

01

> source text

Paste or drop a file

Paste an answer from ChatGPT, Claude or Gemini, or upload a .txt, .docx or .pdf. Up to 2,000 characters works without an account.

02

scan report

3 zero-width1 soft hyphencleanable signals2

Scan and clean locally

Hidden characters, no-break spaces, soft hyphens and lookalike letters are flagged and removed in your browser, with toggles for quotes, em dashes and double spaces.

03

before → after

clearusefulanswer

Copied ✓

Optional rewrite

Light, Medium or Strong passes reword AI habits and show a before and after diff. This is the only step that sends text to OpenAI, and it is best effort.

PRICING

Clean the text free. Rewrite more with Pro.

The scan and hidden-character cleanup are free. Pro adds room for rewrites and files.

PRO

CLAUDECLEAN PRO

ClaudeClean Pro

$5/ month

Cancel anytime.

  • 300 credits every month (≈300,000 characters of rewriting)
  • 20,000 characters per request
  • Clean .txt, .docx and .pdf files
  • Light / medium / strong intensity
  • Dashboard with history
Checking account…

Free: 10 credits a month with an account, or try 2,000 characters right here without one. Strong rewrites cost 2× credits.

LIMITS

What can an AI text cleaner not do?

A cleaner works on characters. Anything that lives in the words, the formatting rules of an app or the policy you write under is out of its reach.

FIVE LAYERS OF A PASTE

Where an AI text cleaner stops

Diagram
Layer 1 of 5

Hidden characters

Cleaner fixes

Zero-width spaces, odd no-break spaces, soft hyphens and lookalike letters. A cleaner deletes or swaps them without changing a visible word.

The bottom two layers are a cleaner's whole job. Everything above them needs your editor, a real rewrite or a conversation with whoever set the rules.

A cleaner can

  • Delete zero-width characters. U+200B, U+200C, U+200D, U+2060 and U+FEFF go without touching a visible letter.
  • Fix odd spaces. U+202F and U+00A0 become normal spaces, so wrapping and word counts behave.
  • Normalize lookalike letters. Cyrillic and Greek letters that look Latin are swapped back.
  • Apply your style rules. Straight quotes, no em dashes and single spaces, each one optional.
  • Work on any chatbot. ChatGPT, Claude, Gemini or a human draft: characters are characters.

A cleaner cannot

  • Remove a statistical watermark. Anthropic says light edits probably won't remove its watermark completely; a full rewrite will.
  • Detect a watermark. Reading SynthID-style marks needs the vendor's key. A character scan sees none of it.
  • Promise a detector score. Detectors score phrasing, which cleaning leaves exactly as it was.
  • Decide your formatting. Whether ** should become bold or vanish depends on the app you paste into.
  • Change your disclosure duty. If a school, client or journal asks about AI use, a clean file does not change the answer.
Light editing probably won't remove the watermark completely; a complete rewrite where every word is replaced will.
Source: Anthropic, Claude text watermark announcement

If the goal is text that reads like you wrote it, that is a rewriting job, covered in the Claude humanizer guide and the guide on how to remove the Claude watermark.

MISTAKES

When cleaning AI text goes wrong

Most junk is safe to strip. These are the cases where a blanket cleanup breaks something, ClaudeClean included.

EMOJI

Joined emoji fall apart

Family, profession and flag-style emoji are built from several emoji glued with U+200D, as the Unicode ZWJ sequence list shows. ClaudeClean removes joiners, so a family emoji turns into separate people. Re-add those emoji after cleaning.

LANGUAGES

Persian and other scripts need joiners

Persian uses the zero-width non-joiner (U+200C) inside correctly spelled words. Cleaning removes it and changes how letters connect. For those languages, clean only the English parts or use a cleaner that keeps joiners.

TYPOGRAPHY

Some no-break spaces are on purpose

French typography commonly uses no-break spaces before ? ! : and ;, and many style guides keep numbers glued to their units. A cleaner turns them into normal spaces, which can let a line wrap between 10 and km.

CODE

Quotes and dashes inside code strings

Straightening quotes in code is usually a win. Replacing an em dash inside a string literal changes program output, so switch that rule off when you clean code.

FORMATTING

Stripping Markdown where it would render

Removing every ** before pasting into Google Docs, GitHub or Notion throws away formatting those apps can display. Strip Markdown only where it shows as raw symbols.

EXPECTATIONS

Treating cleanup as a detector fix

Clean characters do not change how a detector scores your phrasing. If that is the worry, read what Turnitin can and cannot see first.

PREVENTION

How to get cleaner text from ChatGPT and Claude in the first place

Cleaning after the fact always works. Asking for the right format up front saves the step for formatting, though not for every stray character.

What should I ask for when the text is going to LinkedIn or email?

Ask for plain text with no Markdown, no bold and no emoji, and say where it is going, for example a LinkedIn post or a reply to a client. If headings or bullets creep back later in the chat, repeat the request.

Can custom instructions keep the formatting out for good?

They help with formatting. ChatGPT has custom instructions and Claude has profile preferences, and a line such as "write plain text, straight quotes, no em dashes" cuts down the cleanup. They do not control stray characters, so scan anyway.

Does asking for plain text remove hidden characters too?

Not reliably. Formatting is something you can request, but the U+202F reports above came from answers that looked perfectly normal. Ask for plain text to save the formatting work, then run the scan to catch what you cannot see.
How to Remove Hidden Code from ChatGPT (3 Simple Methods) by Guidr. A 98-second walkthrough of prompting, custom instructions and manual cleanup in Word, Google Docs and Notepad

GLOSSARY

The characters an AI text cleaner looks for

Names and code points follow the Unicode charts for General Punctuation and Latin-1 Supplement.

Zero-width space, U+200B
A break opportunity with no width. Invisible on screen, but it splits a word for search, spell check and code.
Narrow no-break space, U+202F
A thin space that never wraps. Reported in ChatGPT output in 2025 and drawn noticeably narrower in some Mac apps.
No-break space, U+00A0
A full-width space that keeps two words on one line. Normal in French typography and in numbers with units.
Soft hyphen, U+00AD
An invisible hint for where a word may break. It only shows as a hyphen at a line end, and it breaks exact search.
Zero-width joiner, U+200D
Glues emoji into one picture, such as a family or a profession. Remove it and the parts show side by side.
Homoglyph
A letter from another script that looks Latin, like Cyrillic а for a. It reads fine and fails search and spell check.

FIND THEM

Spot them without a tool

Move the cursor through a suspicious word with the arrow keys. If it takes an extra press to pass a spot where nothing shows, there is a zero-width character there.

SPACES

Odd gaps between words

A gap that looks slightly narrower than its neighbours, or a line that refuses to wrap, usually means U+202F or U+00A0.

SEARCH

Find in page that misses

If Ctrl+F cannot find a word you can plainly see, a lookalike letter or an invisible character inside it is a likely cause.

SOURCES

Where these facts come from

Vendor help pages for the paste methods, primary reports for the character findings, and each cleaner's own page for the comparison.

FAQ

AI text cleaner FAQ.

A tool that removes the junk chatbot output picks up on the way to your document: zero-width spaces, odd no-break spaces, soft hyphens, lookalike letters, and optionally curly quotes and em dashes. Your words stay the same; only the characters around them change.
Scanning and cleaning are free and run in your browser, up to 2,000 characters without an account. Credits are only used by the optional rewrite: free accounts get 10 a month, and Pro is $5 a month with 20,000 characters per request.
Some do, as an option. ClaudeClean keeps Markdown on purpose, because Google Docs, GitHub and many CMS editors can turn it into real formatting. Where it shows as raw symbols, such as a LinkedIn post, delete the symbols or ask the chatbot for plain text.
Users have reported narrow no-break spaces (U+202F) in place of normal spaces in o3 and o4-mini output in 2025 and in GPT-5 output later that year. OpenAI told Rumi the 2025 characters were not a watermark. A cleaner swaps them for normal spaces.
No. Anthropic and OpenAI both say their text watermarks add no hidden characters; the signal sits in word choice. Removing characters cleans your paste but leaves a statistical watermark where it was. Only a full rewrite changes it.
Nobody can honestly promise that. Detectors such as Turnitin or GPTZero score writing patterns, not invisible characters, so cleaning changes very little for them. ClaudeClean promises no detector result.
Turn on Tools > Preferences > Enable Markdown, then right-click and choose Paste from Markdown. Docs converts headings, bold, italic, strikethrough and links. The option is off by default, which is why a plain paste shows ** and ##.
Not for scan and clean, which run locally in your browser. Only the optional rewrite sends text to OpenAI, and rewrite text is not stored.