Appearance
Sixel graphics
Sixel is a bitmap graphics format developed by DEC for the VT240 terminal in 1983. Each character in a Sixel stream encodes a column of 6 vertical pixels — hence the name. The format uses DCS (Device Control String) sequences:
ESC P q <sixel data> ESC \. Pixel rows are encoded from top to bottom, with $ for carriage return and - for newline (advance by 6 pixels).
Sixel was largely forgotten after DEC hardware disappeared, but has been revived by modern terminal emulators as a way to display inline images using only standard escape sequences. Applications like img2sixel and chafa convert images to Sixel format for terminal display.
Sixel support varies significantly: xterm was the first modern revival, followed by foot, WezTerm, and mlterm. Some terminals limit the color palette or image dimensions. Unlike the Kitty graphics protocol, Sixel has no placement model — images appear at the cursor position and scroll with text.Supported by 1 of 6 backends (17%)
Support Matrix
| Backend | Version | Support | Notes |
|---|---|---|---|
| WezTerm | 0.1.0-fork.5 | ✓ yes | |
| Ghostty | 1.3.1 | ~ partial | Ghostty supports sixel in the app but not exposed in libghostty headless API |
| Alacritty | 0.26.0 | ✗ no | Not implemented in alacritty ↗ upstream |
| Kitty | 0.40.0 | ✗ no | Not implemented in kitty ↗ upstream |
| vt100 | 0.1.0 | ✗ no | Not implemented — pure TypeScript emulator |
| xterm.js | 5.5.0 | ✗ no | Not implemented in xterm.js |