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.How this is testedautomated
Send a minimal Sixel image payload via DCS and verify the cursor moves (indicating the image was rendered).
Send a minimal Sixel image payload via DCS and verify the cursor moves (indicating the image was rendered).
The same probe runs against headless backends (via Termless) and real terminal apps (via a daemon launched in each terminal). This lets us distinguish parser correctness from rendering correctness.
Analysis2026-04-06
Supported by 4 of 14 backends (29%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| Terminal.app | ✓ yes | ||
| iTerm2 | 3.6.9 | ✗ no | Sixel image didn't move cursor |
| Ghostty | 1.3.1 | ✗ no | Sixel image didn't move cursor |
| VS Code | ✗ no | ||
| Warp | ✗ no | ||
| Cursor | ✗ no |
Headless Backends
Parser correctness only — a ✓ means the parser accepts the sequence.
| Backend | Version | Support | Notes |
|---|---|---|---|
| vterm | 0.2.0 | ✓ yes | |
| WezTerm | 0.1.0-fork.5 | ✓ yes | |
| Alacritty | 0.26.0 | ✗ no | Not implemented in alacritty ↗ upstream |
| Kitty | 0.40.0 | ✗ no | Declined by maintainer — kitty uses its own graphics protocol instead of sixel |
| vt100.js | 0.2.1 | ✗ no | Not implemented — pure TypeScript emulator |
| xterm.js | 5.5.0 | ✗ no | Not implemented in xterm.js |