By · Updated

Markdown Cleaner

Strip Asterisks, Hashes, Backticks and Link Syntax, Keeping Bullets and URLs If Wanted

No ratings yet

OneTask is free, with no sign-up, and built by one person.
If this tool saved you time, a coffee helps keep new ones coming.

How the Markdown Cleaner works

This Markdown cleaner turns chatbot output into plain text. Paste a reply from ChatGPT, Claude or Gemini and the asterisks, hash headings, backticks, quote markers and link brackets disappear, leaving text you can drop into an email, a form or a document without stray symbols.

How the Markdown cleaner works

AI assistants write in Markdown, a light formatting syntax where bold is wrapped in double asterisks, a heading starts with a hash and a link is written as text in square brackets followed by the address in round brackets. Chat windows render it, but copying the raw reply into a plain field leaves the symbols behind. The cleaner removes them in a fixed order: fenced code blocks first, then HTML tags and comments, horizontal rules, headings, quote markers, table dividers, images, links, inline code, bold, italic and strikethrough, and finally bullets.

The formula for each element is the same: keep the words, drop the syntax around them. A backslash-escaped character such as * is kept as a literal star rather than read as formatting, and underscores inside words like snake_case_name are left alone.

First example. "## Summary" followed by "- Fast setup" becomes "Summary" and "• Fast setup".

Second example. "See the guide" becomes "See the guide", or "See the guide (https://example.com)" with Keep URL in brackets.

How many characters does it remove? Run the before and after through a character counter; the difference is the formatting syntax that was stripped, and the words are untouched.

Markdown syntax and what the cleaner turns it into (bullets as •, link URLs removed)

Element Markdown Plain text
Heading # Title Title
Setext heading Title⏎===== Title
Bold **bold** bold
Bold (underscores) __bold__ bold
Italic *italic* italic
Italic (underscore) _italic_ italic
Strikethrough ~~gone~~ gone
Inline code `npm install` npm install
Link [OneTask](https://onetask.uk) OneTask
Image ![A cat](cat.png) A cat
Reference link [docs][1] docs
Bullet - item • item
Bullet (star) * item • item
Numbered item 1. step one 1. step one
Task item - [x] done • done
Blockquote > quoted quoted
Horizontal rule --- (removed)
HTML tag <b>bold</b> bold
HTML comment <!-- note --> (removed)
Escaped star \*not italic\* not italic
Table row | a | b | a ⇥ b
Snake case snake_case_name snake_case_name
Footnote-style URL [1]: https://example.com (removed)

Tips and pitfalls

Numbered lists keep their numbers because they read naturally in plain text. Table rows become tab-separated lines, which paste cleanly into a spreadsheet. Choose Remove for code blocks when you only want the prose. If you need formatted output instead, paste into a Markdown preview rather than cleaning.

FAQ

Why does ChatGPT output have asterisks and hashes?

The model writes Markdown so the chat window can show bold text, headings and lists. When you copy the raw text, or the app copies it as plain text, the formatting characters come with it instead of the formatting.

Will it change my wording?

No. It only removes formatting syntax, merges runs of blank lines and trims the ends. Every word, number and punctuation mark in the prose stays where it was, apart from characters that were part of the Markdown syntax.

What happens to tables?

The divider row of dashes is removed and each remaining row becomes one line with cells separated by tabs. Pasted into a spreadsheet, each cell lands in its own column, and in a document the columns stay readable.

Can I keep the link addresses?

Yes. Set Links to Keep URL in brackets and each link becomes its text followed by the address in round brackets. Image links always keep only their alt text, since the image itself cannot appear in plain text.

Is my text uploaded anywhere?

No. The cleaning runs entirely in your browser with JavaScript, so nothing you paste is sent to a server or stored. You can disconnect from the internet after the page loads and it still works.

See also: all AI tools, Dev Utilities, Formatters & Validators, Data & Encoding, Security & Identifiers, SEO, Accessibility.

Related tools