Skip to content

Sixel graphics

Category: extensions · 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.

Supported by 1 of 6 backends (17%)

Support Matrix

BackendVersionSupportNotes
WezTerm0.1.0-fork.5✓ yes
Ghostty1.3.1~ partialGhostty supports sixel in the app but not exposed in libghostty headless API
Alacritty0.26.0✗ noNot implemented in alacritty ↗ upstream
Kitty0.40.0✗ noNot implemented in kitty ↗ upstream
vt1000.1.0✗ noNot implemented — pure TypeScript emulator
xterm.js5.5.0✗ noNot implemented in xterm.js

Powered by Termless
Playwright for Terminals