Skip to content

Sixel graphics

Category: extensions · Baseline: rich · Tags: Sixel Graphics · Specification ↗

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).

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 12 terminals (33%). Part of the Rich TUI baseline. Notes: vt100.js: Not implemented — pure TypeScript emulator; Alacritty: Not implemented in alacritty; xterm.js: Not implemented in xterm.js.

Supported by 4 of 14 backends (29%)

Terminal Applications

TerminalVersionSupportNotes
Terminal.app✓ yes
iTerm23.6.9✗ noSixel image didn't move cursor
Ghostty1.3.1✗ noSixel image didn't move cursor
VS Code✗ no
Warp✗ no
Cursor✗ no

Headless Backends

Parser correctness only — a means the parser accepts the sequence.

BackendVersionSupportNotes
vterm0.2.0✓ yes
WezTerm0.1.0-fork.5✓ yes
Alacritty0.26.0✗ noNot implemented in alacritty ↗ upstream
Kitty0.40.0✗ noDeclined by maintainer — kitty uses its own graphics protocol instead of sixel
vt100.js0.2.1✗ noNot implemented — pure TypeScript emulator
xterm.js5.5.0✗ noNot implemented in xterm.js