Clean Copied Text
6 min read

How to clean up ChatGPT and AI-generated text: a complete guide

Why AI chat tools output Markdown, why it looks broken everywhere else, and how to strip it properly.

Why AI chat tools write in Markdown

ChatGPT, Claude and most AI assistants format their responses using Markdown, a lightweight text-based markup syntax originally designed for writing web content without needing HTML tags. Wrapping a word in double asterisks (like this) means bold; a line starting with a hash (#) means a heading; a line starting with a dash or asterisk means a bullet point.

Inside the chat interface itself, a renderer converts that Markdown into actual bold text, real headings and real bullet points, so you never see the raw symbols — you just see the formatted result. The Markdown syntax is only ever meant to be an intermediate format, translated into visual formatting before a human reads it.

The problem appears the moment you copy that response out of the chat window. Word processors, email clients, CMS text fields, and most other places you might paste text do not understand Markdown syntax and do not render it. What you get instead is the raw, untranslated markup: literal asterisks, literal hash symbols, and inconsistent bullet characters sitting in the middle of your text.

The Markdown symbols you will run into most

Bold and italic markers. Double asterisks or underscores around a word mean bold (word or __word__); single asterisks or underscores mean italic (*word* or _word_). Outside a Markdown renderer, these show up as literal punctuation surrounding the word.

Heading hashes. A line starting with one to six hash symbols (# through ######) denotes a heading level. Copied outside of Markdown, you see the hash symbols directly at the start of the line.

Bullet and numbered list markers. Lines starting with a dash, asterisk or plus sign denote an unordered list item; lines starting with a number and a period denote an ordered list. AI tools are not always consistent about which symbol they use for bullets, so a single response can mix -, * and • across different lists.

Code formatting. Inline code wrapped in single backticks (`like this`) and code blocks wrapped in triple backticks are common in technical answers and carry their backtick characters into plain-text destinations.

Links. Markdown link syntax looks like [link text](https://example.com) — outside a renderer, both the brackets, the parentheses and the raw URL stay visible in the text.

Why this matters beyond looking messy

Beyond the cosmetic issue, unrendered Markdown can break things downstream. Pasting into a form field with a character limit wastes characters on punctuation that adds no meaning. Pasting into a CMS that has its own Markdown or rich-text handling can produce double-processed, garbled formatting. And searching or matching text programmatically against AI output is unreliable if the same word sometimes appears as "word" and sometimes as "word".

How to clean it up

The fix is to strip the Markdown syntax characters while keeping the underlying words intact: remove the asterisks and underscores around bold/italic text (keeping the word itself), remove the leading hash symbols from headings, normalise bullet symbols to one consistent character (or remove them entirely if you want plain paragraphs), and unwrap Markdown link syntax down to just the link text or just the URL, depending on what you need.

The ChatGPT formatting cleaner on this site does exactly this: paste text copied from any AI chat tool, and it strips bold/italic markers, heading hashes, and list symbols in one click, entirely in your browser.

A note on line breaks in AI output

AI responses often include deliberate blank lines between paragraphs and list items, which is usually formatting you want to keep — unlike PDF text, where line breaks are mostly accidental. When cleaning AI output, the goal is to remove the Markdown syntax characters, not the paragraph structure itself.

Try it yourself

Paste your own text below and see the cleanup happen instantly, in your browser.

65 characters · 11 words · 6 lines · 3 paragraphs

0 characters · 0 words · 0 lines · 0 paragraphs

Your text stays in your browser. Clean Copied Text does not upload or store what you paste.

Open the ChatGPT text cleaner

Frequently asked questions

Why does ChatGPT text have asterisks and hashtags in it?
ChatGPT formats its answers using Markdown syntax. Inside the chat window a renderer turns that syntax into bold text, headings and bullets, but once you copy the raw text out, the Markdown symbols themselves come along with it.
Does removing Markdown change the actual words?
No. A proper cleanup only removes the formatting symbols (asterisks, hash signs, list markers) — the underlying words, sentences and meaning stay exactly the same.
Does this work for Claude, Gemini or other AI tools too?
Yes. Nearly all AI chat assistants use the same Markdown conventions for bold, headings and lists, so the same cleanup approach works regardless of which AI tool the text came from.
What about code blocks in AI answers?
Code blocks are usually best kept as-is if you are pasting into a code editor or documentation tool that understands Markdown or code fences. If you are pasting into plain text and do not need the formatting, the backticks can be stripped along with everything else.