[FEATURE] VSCode extension: Copy chat response as markdown source
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
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: truethat makes the existingCmd+Con a selection return markdown source instead of rendered text. - Keybinding: A distinct shortcut such as
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:
- 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/copythere — 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
- Environment: Claude Code VSCode native extension.
- The terminal CLI already supports this via
/copy <N>; the VSCode extension does not expose that command. - Related: #48489 (desktop app, Windows), #12413 (closed as duplicate without resolution), #5512 (CLI
/copy— already shipped in the CLI).
This issue has 8 comments on GitHub. Read the full discussion on GitHub ↗