[FEATURE] Support terminal graphics protocols for inline image display

Status Open
Maintainer reply None cached
Activity 2 comments · opened Jul 21, 2026

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 way
kitten 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.

graphics protocol side.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗