[BUG] Files sent via SendUserFile are not rendered in the VS Code extension panel (work on mobile / web)
Summary
Files delivered to the user via the SendUserFile tool are not rendered in the Claude Code VS Code extension panel. The same files, delivered in the same session, render correctly in the Remote Control mobile client and on claude.ai/code.
Images that the user attaches are displayed in the panel, so the panel is clearly capable of showing images — it just does not render files sent by Claude.
Environment
- Claude Code: 2.1.237
- Extension: anthropic.claude-code@2.1.251
- VS Code: 1.134.0
- OS: Windows 11 Pro (10.0.22631)
- Session had Remote Control active (same session visible on phone and in VS Code)
Steps to reproduce
- Open the Claude Code extension panel in VS Code.
- Have Claude produce or locate a PNG on disk (e.g. a screenshot).
- Have Claude call
SendUserFilewithdisplay: "render"on that PNG. - Compare what the VS Code panel shows against the same conversation on a phone / claude.ai/code.
Expected
The file is surfaced in the conversation in the VS Code panel — inline preview for a renderable type such as PNG, or at minimum a clickable file card.
Actual
The VS Code panel shows only the collapsed tool call (SendUserFile, with 1 file delivered to user. as output). No image, no file card, nothing clickable. On the phone the same call renders the image inline.
Additional notes
Other ways of surfacing an image in the panel also fail, which is what led us here:
- Markdown image syntax with a workspace-relative path, a
./-relative path, and an absolutefile://URL — none render (presumably webview CSP blocksfile://). - Reading the PNG with the
Readtool puts the image in the tool result; the panel collapses tool results to a single line and does not render the image, while the mobile client expands and shows it.
The practical effect is that a developer working in VS Code cannot see screenshots the agent takes — for example when verifying a UI change — and has to open the PNG manually from the file tree or switch to a phone. This is a real workflow gap for any visual verification task.
I am aware of #52647 (pasting images into the input, closed as not planned). This report is the opposite direction: images going from Claude to the user.