[FEATURE] inline image rendering in remote session responses (iOS app)
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
When using the Claude Code iOS app to drive a remote session on a Linux host, there’s no way to get an image generated on the host to render inline in the assistant’s message body. The picture is the primary content; making the user tap to open it defeats the purpose.
What I tried, all of which render as literal text or a tap-to-open card:
• <img src="data:image/svg+xml;base64,..."> → literal text
•  → literal text / broken
• Raw <svg>...</svg> pasted in response → literal text
• SendUserFile with .svg → file card under the message, not inline
Use case: my project generates SVG diagrams (architecture, flow charts) and dashboard charts (allocation pie, P&L line, heatmaps). When I ask the assistant on iOS to “show me the dashboard” or “explain the async-job-flow diagram,” the assistant has to describe the picture in words because the image won’t render. The <claude.ai> chat app renders artifacts inline beautifully — Claude Code on iOS does not.
Asks (any one of these would solve it):
- SendUserFile with an image mime renders the image inline above the message instead of as a generic file card.
- A new tool (e.g. SendInlineImage) or an artifact-style fenced block (``
svg-render /``image) the iOS client knows to render. - Markdown image syntax with data: URIs honored in the iOS renderer.
- Documented confirmation that PNG (vs SVG) renders inline, if that’s already true today.
Environment: Claude Code iOS app → remote session on Linux (Ubuntu 26.04), Claude Opus 4.7.
Proposed Solution
Since the images are sent (SVG) as text, the render layer in iOS should be able to handle them and display them. It already handles them by clicking on them and it shows the rendered image. This removes the click and displays directly into the body.
Alternative Solutions
What I tried, all of which render as literal text or a tap-to-open card:
• <img src="data:image/svg+xml;base64,..."> → literal text
•  → literal text / broken
• Raw <svg>...</svg> pasted in response → literal text
• SendUserFile with .svg → file card under the message, not inline
Priority
Medium - Would be very helpful
Feature Category
Other
Use Case Example
my project generates SVG diagrams (architecture, flow charts) and dashboard charts (allocation pie, P&L line, heatmaps). When I ask the assistant on iOS to “show me the dashboard” or “explain the async-job-flow diagram,” the assistant has to describe the picture in words because the image won’t render. The <claude.ai> chat app renders artifacts inline beautifully — Claude Code on iOS does not.
- remote control session generates a chart and sends output to the screen. iOS app interprets the output, finds the image send via sendfile, displays inline with an explanation given by the output
- remote sessions can handle artifacts creation on the fly
Additional Context
environment is. claude running on Linux (Ubuntu latest) with --remote-control. User is using iOS app for code-> remote sessions
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗