Chatbot clipboard behaviour

Two ways to copy.
Two different results.

Every chatbot has a copy button. You can also just select the text and hit Ctrl+C. Most people assume these do the same thing. They don't. One gives you the rendered output — clean text, no symbols. The other gives you the raw Markdown source — asterisks, hash signs, and all. Knowing which is which saves a lot of frustrated paste-and-fix cycles.

Illustration: clipboard symbol with markdown characters leaking out

What actually lands on your clipboard

When a chatbot responds, it sends Markdown text to your browser. The browser then renders that Markdown into formatted HTML — headings become large bold text, **bold** becomes bold, bullet points become actual list items. What you see in the chat window is the rendered version. The raw Markdown behind it is invisible.

These two versions are stored separately, and the two copy methods reach into different places.

When you select text with your mouse and press Ctrl+C (or Cmd+C), the browser copies from the rendered DOM — the visual layer. You get what you see: formatted words, but no Markdown syntax. The asterisks and hash signs are gone, because the rendered HTML never had them.

When you click the copy button built into the chatbot interface, a small JavaScript function runs. That function retrieves the raw Markdown source — the text as it was before rendering — and writes that directly to your clipboard. The copy button is explicitly designed to give you the Markdown, not the rendered output.

Here is the same chatbot response shown from both sides:

What you see in the chat (rendered)
What the copy button puts on your clipboard (raw)

Three tips for better sleep

Getting consistent rest comes down to a few key habits:

  • Go to bed at the same time every night
  • Keep your bedroom cool and dark
  • Avoid screens for at least 30 minutes before sleep

These are small changes, but the cumulative effect is significant.

### Three tips for better sleep

Getting consistent rest comes down to
a few key habits:

- Go to bed at the **same time** every night
- Keep your bedroom **cool and dark**
- Avoid screens for **at least 30 minutes**
  before sleep

These are small changes, but the
cumulative effect is significant.

If you selected the rendered text and copied it, the result would look something like: "Three tips for better sleep — Getting consistent rest comes down to a few key habits: Go to bed at the same time every night…" — all the structure collapsed into a single run of text, or at best preserved as plain newlines, depending on your browser and where you paste.

If you used the copy button, you get everything shown in the right panel above: the ###, the ** around each phrase, the dash-prefixed list items.

Where you paste determines which version you want

Neither version is universally better. The right one depends entirely on where the text is going next.

Destination Select + Ctrl+C
rendered text
Copy button
raw Markdown
Microsoft Word / Google Docs ✗ Flat text, all structure lost ✗ Markdown symbols appear as literal characters
Slack / Teams / Discord ✗ Plain text, no formatting ✓ These apps render Markdown — bold, bullets, and code blocks work
Email (Gmail, Outlook) ✓ Readable plain text, no stray symbols **asterisks** and ## appear literally
Markdown editor (VS Code, Obsidian, Typora) ✗ Raw text, editor won't know where headings are ✓ Pastes directly as valid Markdown
GitHub / GitLab (PR description, wiki) ✗ Plain text, formatting lost ✓ Renders correctly
Notion ~ Pastes as plain text; Notion may detect some structure ✓ Notion parses Markdown on paste and renders it
Notepad / plain text file ✓ Clean, readable text ✗ Symbols clutter the text
Back into another AI prompt ~ Works, but loses structural hints ✓ Markdown structure is readable to the model

The awkward case is Word. It appears in both columns with a cross, because Word doesn't speak Markdown natively. The copy button gives you symbols that Word treats as literal characters. Selecting text gives you flat prose with no headings or bullets. Neither is what you actually want, which is properly formatted Word content with real heading styles and list items.

Pasting Markdown into Word and then manually reformatting the ## and ** symbols by hand is one of the most common unnecessary tasks in office work today. There is a better path — see the last section.

What selection copy actually does to formatting

The behaviour of Ctrl+C on selected text is more nuanced than "strips all formatting." The browser copies both a plain-text and an HTML version to the clipboard simultaneously. The application you paste into decides which one to use.

Rich text editors — Word, Google Docs, Gmail's composer, Outlook — receive the HTML version and try to honour it. A rendered chatbot heading (<h3>) may paste as bold large text. A bullet list may paste as an actual list. So selection copy into Word sometimes preserves visual structure reasonably well — but you end up with inline bold and oversized body text, not proper Word heading styles. The document looks formatted, but the structure is cosmetic rather than semantic. A table of contents generated from those headings will be empty, because Word's heading styles were never applied.

Plain text destinations — Notepad, VS Code, terminal — receive only the plain-text version, stripping all formatting. This is actually the cleaner outcome in those contexts.

The short version: Selection copy into a rich text editor gives you visual formatting with fake structure. Selection copy into a plain text editor gives you clean text. Copy button gives you raw Markdown regardless of destination. Know your destination before you reach for either.

What the copy button is actually doing

The copy button is a UI element added by the chatbot's developers. Its sole purpose is to make raw Markdown accessible, because selecting rendered text in a browser is imprecise — you might miss the first word, or accidentally include the chatbot's avatar, or grab only part of a code block.

Under the hood, the button calls the browser's navigator.clipboard.writeText() API with the raw Markdown string. The chatbot's internal state stores the original source text alongside the rendered HTML, so the button can always retrieve the unrendered version. This is true across ChatGPT, Claude, Gemini, Copilot, and most other major chatbots — the copy button is a deliberate design choice to expose the Markdown source, not a quirk.

One practical consequence: if you copy a code block, always use the copy button within or below the code block itself. Selecting code visually and pressing Ctrl+C sometimes captures surrounding line numbers or syntax highlighting spans depending on the interface. The copy button copies the raw code string exactly.

A simple decision rule

Select + Ctrl+C — use when pasting into:

  • Email composers (Gmail, Outlook)
  • Notepad and plain text files
  • SMS or messaging apps that don't render Markdown
  • CMS fields that expect plain text
  • Anywhere where **asterisks** would appear literally and annoy people

Copy button — use when pasting into:

  • Slack, Teams, Discord
  • Markdown editors (VS Code, Obsidian, Typora)
  • GitHub, GitLab, Bitbucket
  • Notion
  • Another AI prompt or system prompt
  • Any surface that explicitly renders Markdown

Word and Google Docs sit outside both columns. Both methods produce suboptimal results there. The selection method gives you cosmetic formatting without real document structure. The copy button gives you symbol-cluttered text. The right approach for those destinations is to convert the Markdown to a native document format rather than copy-pasting it.

The Word problem — and a proper solution

The copy-into-Word workflow is broken by design, and it matters because a large proportion of AI-generated content ends up in Word documents. Reports, summaries, emails drafted in Word, meeting notes — the use cases are too common to ignore.

What people typically do: use the copy button, paste into Word, then manually delete every ##, remove every pair of ** asterisks, and manually apply heading styles. This can take five to fifteen minutes for a long response, and the results are still inconsistent.

The structural alternative is to convert Markdown to a Word document directly — reading the Markdown source and generating a proper .docx file with real Word heading styles (Heading 1, Heading 2), real list objects, real bold runs, and real code blocks formatted as styled paragraphs. The document is correct by construction, not cosmetically patched by hand.

That's what markdownword.com does. Paste the Markdown from the copy button (not the rendered text — the raw source), and get a properly structured Word document. The copy button's output is the right input for a Markdown-to-Word converter. This is finally the right workflow for the Word destination.

Windows tool

Stop thinking about clipboard formats entirely.

ClipboardFormatter is a Windows tray app that watches your clipboard and transforms whatever is on it — automatically. Copy from a chatbot however you like. ClipboardFormatter intercepts the content and converts it to exactly what you need before you paste.

Styles — named presets Define presets like Clean Plain Text or Word Ready and apply them to clipboard content with a single hotkey. No destination-guessing needed.
Strip Markdown on the fly Used the copy button and ended up with raw Markdown? One keystroke removes all **, ##, and backticks — clean plain text on the clipboard, ready to paste anywhere.
Paste-to destinations Tell ClipboardFormatter where you're pasting — Word, email, Slack, plain text — and it applies the right transformation automatically, before your Ctrl+V even fires.

Quick reference

Method What you get Best for Avoid for
Select + Ctrl+C Rendered text (visual layer, no Markdown symbols) Email, plain text, SMS Markdown editors, Slack, GitHub
Copy button Raw Markdown source (symbols included) Slack, Markdown editors, GitHub, Notion, AI prompts Email, plain text notes, Word (directly)
Copy button → Markdown converter Properly structured .docx / native format Word, Google Docs, formal documents Quick pastes where formatting doesn't matter

Further reading: How AI interfaces break the format they run on · Write in the language of AI · Which Markdown flavor for AI?