Skip to main content
ansicode

Terminal feature support matrix

Which ANSI / VT feature works in which terminal? Truth-table for 12 emulators plus tmux + GNU screen — 14 rows × 15 features. Cells: yes / partial / no.

Last updated

supportedpartial / version-dependentnot supported
ANSI / VT feature support across 14 terminals (12 emulators + tmux + screen) × 15 features
FeaturextermLinux console (fbcon)macOS Terminal.appiTerm2Windows Terminalcmd.exe / ConPTYkittyalacrittyWezTermGhosttyGNOME TerminalKonsoletmuxGNU screen
8 basic colors (30–37 / 40–47)
SGR 30–37 foreground, 40–47 background.
yesyesyesyesyesyesyesyesyesyesyesyesyesyes
Bright (aixterm) colors (90–97 / 100–107)
aixterm SGR extension.
yesyesyesyesyesyesyesyesyesyesyesyesyesyes
256-color palette (38;5;n / 48;5;n)
xterm 256-color extension.
yesnoyesyesyespartialyesyesyesyesyesyesyespartial
24-bit truecolor (38;2;r;g;b)
16.7M direct RGB. Set $COLORTERM=truecolor.
yesnopartialyesyespartialyesyesyesyesyesyespartialpartial
Italic (SGR 3)
Italic text attribute.
yesnoyesyesyesnoyesyesyesyesyesyesyespartial
Styled underlines (4:1–4:5)
Curly/dotted/dashed underline styles.
partialnonoyesyesnoyespartialyesyesyesyespartialno
Strikethrough (SGR 9)
Horizontal line through text.
yesnoyesyesyesnoyesyesyesyesyesyesyesno
OSC 8 hyperlinks
Inline clickable URIs.
partialnonoyesyesnoyesnoyesyesyesyespartialno
Alt screen (?1049h)
Full-screen app buffer.
yesyesyesyesyespartialyesyesyesyesyesyesyesyes
Mouse tracking (SGR ?1006)
Mouse click/drag events.
yespartialyesyesyespartialyesyesyesyesyesyespartialpartial
Bracketed paste (?2004)
Pasted text wrapped in ESC[200~/ESC[201~.
yesnoyesyesyesyesyesyesyesyesyesyesyespartial
Focus events (?1004)
ESC[I on focus in, ESC[O on focus out.
yesnonoyesyesnoyesyesyesyesyesyespartialno
Sixel graphics
DEC sixel inline raster images.
yesnonoyesyesnononoyesyesnoyespartialno
Kitty graphics protocol
PNG/RGB inline images, animations.
nonononononoyesnopartialyesnoyesnono
Synchronized output (?2026)
Atomic frame updates to avoid tearing.
nononoyesyesnoyesyesyesyesyesyespartialno

Multiplexers (tmux, screen)

tmux and GNU screen run on top of one of the emulators above — output passes through their parser before reaching the terminal. Effective support is the lower of the two: a feature marked yes on the emulator but no on the multiplexer is stripped before reaching the screen. The dedicated landings detail the passthrough rules per feature.

About this matrix

Each row is one feature; each column is one terminal. We use three states: yes means documented in the terminal's manual or release notes AND working in its default configuration; partial means working only with a caveat (e.g. specific version, opt-in flag, known glitch, or a degraded fallback like 24-bit truecolor downsampled to 256 colours); no means the terminal silently drops the bytes or renders them as literal characters.

Sources are xterm-ctlseqs (xterm man page), per-terminal release notes and bug trackers, and hands-on testing on macOS, Linux, and Windows hosts. The matrix tracks the latest stable release of each terminal as of the page's dateModified — older releases may downgrade.

Found a cell that's wrong on your version? Reach us via the channel listed on the About page — we want this matrix to be the most accurate one on the open web.

See also