[BUG] Claude Desktop (macOS): Copy as Markdown for chat responses — no markdown pasteboard flavor, plain-text flavor is de-marked

Open 💬 4 comments Opened Jul 6, 2026 by ssisak

Claude Desktop app (macOS), not Claude Code CLI — this is a bug in the general chat client's copy/paste behavior.

[retitled and reclassification requested — see below]

---

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Claude Desktop app (macOS): when copying chat responses, the pasteboard has no markdown flavor.

Copying selected text from an assistant response in Claude (Desktop on macOS, and the claude.ai web app under Safari) loses all Markdown structure on paste — no list markers, no bold/italic, no block spacing. Pasteboard inspection shows the app writes only an HTML flavor and a de-marked plain-text flavor; no Markdown flavor is ever written.

Diagnosis via osascript -e "clipboard info" on a copied response:
«class HTML», 51, «class utf8», 29, «class ut16», 60, string, 29, Unicode text, 58

Two distinct flavors, in redundant encodings: public.html (renders correctly in Mail, Pages, TextEdit) and plain text (UTF-8/UTF-16/legacy) — but pbpaste on this flavor shows the Markdown syntax already stripped (no -, **, #, numbering). It's rendered textContent, not Markdown source. No net.daringfireball.markdown flavor. No RTF.

Consequence: Claude's own plain-text inputs (Project instructions field, feedback box) can only read the plain-text flavor — which is already de-marked. Copying a response and pasting it into those fields silently strips all formatting, even though the same pasteboard carries an intact HTML flavor. Pasting the identical selection into Mail/Pages/TextEdit preserves formatting, confirming the loss is flavor-specific, not data loss. The web app under Safari shows the same behavior, suggesting the copy implementation is shared rather than Electron-specific.

Proposed Solution

Write Markdown source into the public.utf8-plain-text flavor instead of rendered/stripped text. This is the fix that repairs Claude-to-Claude paste (Project instructions, feedback box), since plain-text-only fields will only ever read this flavor and will never see a separate Markdown flavor. Also add a dedicated net.daringfireball.markdown flavor (conforms to public.plain-text, maps to MIME text/markdown per RFC 7763 — the de-facto standard UTI; Apple has no declared public.markdown, since the public. domain is Apple-reserved) so Markdown-aware external destinations (editors, .md files, issue trackers) receive proper source rather than inferring it from HTML.

Suggested full flavor set on Copy: public.utf8-plain-text (Markdown source), net.daringfireball.markdown, public.html (existing, unchanged).

Alternative Solutions

If changing the default plain-text flavor's content is considered too disruptive to existing plain-text-destination workflows, an additive alternative is a separate explicit "Copy as Markdown" command (suggested ⌘⌥C on macOS) alongside the existing Copy, leaving default Copy behavior untouched. This is lower-risk but does not fix the Claude-to-Claude paste case (Project instructions, feedback box), since those fields have no way to invoke a non-default copy command on the source side — the fix has to live in what the default flavor contains.

Priority

Medium - Would be very helpful

Feature Category

Other

Use Case Example

  1. Ask Claude to produce a structured response (headers, bold text, a bulleted list).
  2. Select and copy the response text.
  3. Paste into Claude's own Project instructions field, or into the thumbs-down feedback box.
  4. Result: all structure is gone — flat, unstructured paragraphs, no bullets, no bold.
  5. For comparison, paste the same copied selection into Mail, Pages, or TextEdit: formatting is preserved correctly, confirming the rich data exists on the pasteboard and the loss is specific to which flavor the destination reads.

Additional Context

  • Reproduced on Claude Desktop for macOS and on claude.ai under Safari, suggesting a shared underlying copy implementation rather than an Electron-only issue.
  • This report consolidates an issue I originally raised via in-app thumbs-down feedback and via email to [feedback@anthropic.com](mailto:feedback@anthropic.com); this GitHub issue includes additional pasteboard-level diagnosis gathered since.
  • I'm a longtime macOS developer (credited for the scripting engine implementation in BBEdit) and am happy to consult on pasteboard-flavor / UTI behavior if useful.
  • Environment: Claude Desktop for macOS, version [fill in — Claude menu → About Claude]; also reproduced on claude.ai / Safari.

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗