[FEATURE] Support terminal graphics protocols for inline image display
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 Code displays images as a text placeholder (e.g. [Image]), even in terminals
that support inline graphics (kitty, WezTerm, Ghostty, iTerm2, foot). Escape sequences
emitted by tools run through the Bash tool are captured and stripped, so terminal
graphics tools cannot render either. There is currently no way to view an image
Claude reads or generates without leaving the terminal.
Proposed Solution
Render images inline when the terminal supports a graphics protocol (kitty graphics
protocol, iTerm2 inline images, sixel), with fallback to the current placeholder.
For example, when Claude reads a PNG or a screenshot, the TUI could display it the
same way kitten icat does, instead of [Image]. Alternatively (or additionally),
allow escape-sequence passthrough for whitelisted commands like kitten icat,imgcat, or chafa, so existing tools can handle the rendering.
Alternative Solutions
_No response_
Priority
Medium - Would be very helpful
Feature Category
Interactive mode (TUI)
Use Case Example
Working on a data pipeline, I ask Claude Code to plot a metric:
"Plot the request latency from logs.csv and show me the result"
Claude writes a matplotlib script, runs it, and saves latency.png. Today I have to
switch to another terminal or an image viewer to see it. With graphics protocol
support, the plot would appear directly in the conversation, the same waykitten icat latency.png renders it, and I could iterate ("zoom into the spike
around 14:00") without leaving Claude Code.
Same applies to reviewing screenshots from UI tests, diffing generated assets, or
inspecting images Claude reads with the Read tool.
Additional Context
render image previews via kitty graphics / iTerm2 / sixel with protocol auto-detection.
chafa detect the best available protocol and fall
back to unicode half-blocks, which would work in any terminal as a lowest tier.
- kitten icat documents the kitty
graphics protocol side.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗