TL;DR / Abstract
Enable terminal graphics display in Claude Code by implementing support for Sixel, Kitty, and iTerm2 inline image protocols. This would allow users to view graphical output from commands (charts, diagrams, plots) directly in the terminal, enhancing data visualization and development workflows.
Problem Statement
Currently, Claude Code cannot display graphical output from terminal commands. Tools like lsix, viu, and various plotting libraries fail to render images, limiting visual feedback for:
- Data visualization (matplotlib, plotly outputs)
- Image processing results
- System diagrams and flowcharts
- Build process visualizations
- Test coverage reports with visual elements
Proposed Solution
Implement support for three major terminal graphics protocols:
1. Sixel (Six Pixels)
- Specification: DEC VT340/ANSI escape sequence based bitmap format
- Format:
ESC P q [data] ESC \
- Features: 6-pixel high strips, RLE compression, palette-based colors (max 256)
- Adoption: XTerm, mlterm, foot, WezTerm, Konsole, VS Code terminal
- Pros: Widest compatibility, standardized since 1980s
- Cons: Limited color palette, no alpha channel
2. Kitty Graphics Protocol
- Format:
ESC _ G [control data] ; [payload] ESC \
- Features: Full RGBA support, GPU acceleration, multiple placement modes
- Adoption: Kitty, WezTerm, Konsole
- Pros: Best performance, full color support, advanced features
- Cons: Limited terminal support
3. iTerm2 Inline Images
- Format:
ESC ] 1337 ; File = [args] : [base64 data] ^G
- Features: Direct base64 encoding, supports animations, Retina displays
- Adoption: iTerm2, WezTerm, mintty, Konsole
- Pros: Simple implementation, works partially in tmux
- Cons: macOS-centric origin
Implementation Approach
- Auto-detection: Check
$TERM, $TERM_PROGRAM, and capability queries
- Fallback chain: Kitty → iTerm2 → Sixel → Unicode blocks (▄▀)
- Library integration: Consider using existing libraries like:
Testing Tools
# Sixel test
convert image.jpg -geometry 800x480 sixel:-
# iTerm2 test
printf "\e]1337;File=inline=1:"; base64 -w0 image.jpg; printf "\a\n"
# Tools to verify
lsix *.png # Sixel image viewer
viu --features=sixel *.png # Multi-protocol viewer
img2sixel image.png # Direct sixel conversion
Use Cases
-
Development
- Preview generated images/plots without leaving terminal
- View test coverage heatmaps
- Display architecture diagrams
-
Data Science
- Show matplotlib/seaborn outputs inline
- Quick data exploration visualizations
- Model performance graphs
-
DevOps
- System monitoring dashboards
- Network topology diagrams
- Container relationship visualizations
References
Success Criteria
This feature would significantly enhance Claude Code's capabilities for visual development workflows while maintaining backward compatibility through intelligent fallbacks.
TL;DR / Abstract
Enable terminal graphics display in Claude Code by implementing support for Sixel, Kitty, and iTerm2 inline image protocols. This would allow users to view graphical output from commands (charts, diagrams, plots) directly in the terminal, enhancing data visualization and development workflows.
Problem Statement
Currently, Claude Code cannot display graphical output from terminal commands. Tools like
lsix,viu, and various plotting libraries fail to render images, limiting visual feedback for:Proposed Solution
Implement support for three major terminal graphics protocols:
1. Sixel (Six Pixels)
ESC P q [data] ESC \2. Kitty Graphics Protocol
ESC _ G [control data] ; [payload] ESC \3. iTerm2 Inline Images
ESC ] 1337 ; File = [args] : [base64 data] ^GImplementation Approach
$TERM,$TERM_PROGRAM, and capability queriesTesting Tools
Use Cases
Development
Data Science
DevOps
References
Success Criteria
This feature would significantly enhance Claude Code's capabilities for visual development workflows while maintaining backward compatibility through intelligent fallbacks.