Preflight Checklist
Problem Statement
In the Claude Code VSCode native extension, selecting text in the chat panel and pressing Cmd+C / Ctrl+C copies only the rendered visible text. All markdown formatting is lost — code fences, bullets, headings, bold/italic, links, file-path hyperlinks, tables, etc. all collapse into plain prose.
Unlike the terminal CLI, the VSCode extension does not expose the /copy slash command (running it returns copy isn't available in this environment), and there's no context-menu item, toolbar button, or setting to copy the raw markdown instead.
This is distinct from existing request #48489, which targets the Windows desktop app and whose workaround is presumably /copy in the CLI. In the VSCode extension there is no equivalent escape hatch — the chat panel is the only surface and it strips formatting unconditionally. #12413 (closed as duplicate) covered the same VSCode-specific concern but never received a targeted resolution.
Proposed Solution
Any one of the following would solve it, in order of preference:
- Context-menu action on assistant messages: Right-click an assistant message (or a selection within it) → "Copy as markdown" → raw markdown source goes to the clipboard.
- Per-message copy button: A small copy icon on hover over each assistant message that copies the raw markdown of that message.
- Setting:
claudeCode.copyRawMarkdown: true that makes the existing Cmd+C on a selection return markdown source instead of rendered text.
- Keybinding: A distinct shortcut such as
Cmd+Shift+C that performs "copy as markdown" alongside the default plain-text copy.
Option 2 matches the pattern used by most LLM chat UIs (ChatGPT, Claude.ai web) and is the most discoverable.
Alternative Solutions
Current workarounds, all unsatisfying:
- Ask Claude to wrap the response in a fenced code block so the raw markdown is visible — adds turns, wastes tokens, and is forgotten between conversations.
- Open the VSCode integrated terminal, run
claude, and use /copy there — requires switching surfaces and loses the context of the ongoing VSCode-extension session.
- Manually re-type markdown when pasting into PR descriptions, GitHub issues, or docs.
- Switch chat mode from 'CLAUDE CODE' to 'CHAT' (VSCode's built-in): This still lists Claude chat sessions in it's session list and provides superior C&P functionality. Both Copy and Copy Final Response include markdown. This is the best workaround I've identified, but it is still a faff.
Priority
High - Significant impact on productivity
Feature Category
Other
Use Case Example
- I ask Claude Code (in the VSCode extension) to summarize a bug investigation, and it replies with a nicely-formatted response containing headings, bullet lists, inline code, fenced code blocks, and
[filename.ts:42](path#L42) links.
- I want to paste that summary into a GitHub PR description, a Linear ticket, or a Slack message with markdown mode enabled.
- Today: I select the text,
Cmd+C, paste — and get a wall of plain prose. Headings gone, code blocks gone, links gone, file-path hyperlinks gone. I have to either manually reformat or ask Claude to regenerate as a fenced block (wasting context and tokens).
- With this feature: I click "Copy as markdown" on the message, paste into the PR — and the formatting is preserved end-to-end.
Additional Context
Preflight Checklist
Problem Statement
In the Claude Code VSCode native extension, selecting text in the chat panel and pressing
Cmd+C/Ctrl+Ccopies only the rendered visible text. All markdown formatting is lost — code fences, bullets, headings, bold/italic, links, file-path hyperlinks, tables, etc. all collapse into plain prose.Unlike the terminal CLI, the VSCode extension does not expose the
/copyslash command (running it returnscopy isn't available in this environment), and there's no context-menu item, toolbar button, or setting to copy the raw markdown instead.This is distinct from existing request #48489, which targets the Windows desktop app and whose workaround is presumably
/copyin the CLI. In the VSCode extension there is no equivalent escape hatch — the chat panel is the only surface and it strips formatting unconditionally. #12413 (closed as duplicate) covered the same VSCode-specific concern but never received a targeted resolution.Proposed Solution
Any one of the following would solve it, in order of preference:
claudeCode.copyRawMarkdown: truethat makes the existingCmd+Con a selection return markdown source instead of rendered text.Cmd+Shift+Cthat performs "copy as markdown" alongside the default plain-text copy.Option 2 matches the pattern used by most LLM chat UIs (ChatGPT, Claude.ai web) and is the most discoverable.
Alternative Solutions
Current workarounds, all unsatisfying:
claude, and use/copythere — requires switching surfaces and loses the context of the ongoing VSCode-extension session.Priority
High - Significant impact on productivity
Feature Category
Other
Use Case Example
[filename.ts:42](path#L42)links.Cmd+C, paste — and get a wall of plain prose. Headings gone, code blocks gone, links gone, file-path hyperlinks gone. I have to either manually reformat or ask Claude to regenerate as a fenced block (wasting context and tokens).Additional Context
/copy <N>; the VSCode extension does not expose that command./copy— already shipped in the CLI).