Skip to content
🟣

Rich TUI Baseline

Advanced features for cutting-edge TUIs

Cutting-edge terminal capabilities that enable the richest user experiences: the Kitty keyboard protocol (unambiguous key reporting with modifiers and release events), Kitty graphics protocol and Sixel for inline images, OSC 8 hyperlinks (clickable links in terminal output), OSC 52 clipboard access, extended underline styles (curly, dotted, dashed) with independent underline colors, semantic prompt markers (OSC 133), and text reflow on terminal resize.

96 features in this baseline

Analysis2026-04-06

0 of 12 tested terminals achieve 100% Rich TUI compliance. Lagging: vt100.js (36%), Cursor (50%), xterm.js (52%). Most commonly missing: iTerm2 Cell Size Reporting (OSC 1337), iTerm2 Capability Reporting (OSC 1337), OSC 5522 advanced clipboard.

Compliance Scorecard

Terminal Applications

iTerm2
82%79 / 96
Ghostty
75%72 / 96
VS Code
73%70 / 96
Warp
72%69 / 96
Cursor
66%63 / 96
Terminal.app
70%67 / 96

Headless Backends

vterm
64%61 / 96
xterm.js
38%36 / 96
Kitty
60%58 / 96
Alacritty
39%37 / 96
WezTerm
53%51 / 96
vt100.js
25%24 / 96

Guidance

For Developers

Rich features enable experiences that were previously impossible in terminals — clickable links, inline images, precise keyboard input. Use feature detection (via DA1 responses or DECRPM queries) and degrade gracefully when unavailable.

For Terminal Authors

Rich compliance differentiates your terminal. The Kitty keyboard protocol is the most impactful single feature — it solves decades of terminal input ambiguity. Ghostty, Kitty, WezTerm, and foot lead here.

Features

Terminal Applications

FeatureiTerm2GhosttyVS CodeWarpCursorTerminal.app
Underline color, indexed (SGR 58;5)
Underline color, truecolor (SGR 58;2)
Reset underline color (SGR 59)
Reverse Wrap (Mode 45)
Selective Erase (DECSED)
SL — shift left (CSI Ps SP @)
SR — shift right (CSI Ps SP A)
DECIC — insert columns (CSI Ps ' })
DECDC — delete columns (CSI Ps ' ~)
Pixel Mouse Reporting (1016)
urxvt Mouse Reporting (1015)
Left/Right Margins (DECLRMM, Mode 69)
UTF-8 mouse mode (?1005)
Kitty keyboard protocol
Kitty graphics protocol
Sixel graphics
Hyperlinks (OSC 8)
Text reflow on resize
Semantic prompts (OSC 133)
VS Code Shell Integration (OSC 633)
OSC 133;A prompt start (FTCS_PROMPT)
OSC 133;B command start (FTCS_COMMAND_START)
OSC 133;C command executed (FTCS_COMMAND_EXECUTED)
OSC 133;D command finished (FTCS_COMMAND_FINISHED)
OSC 133;P properties
OSC 633;A prompt start
OSC 633;B prompt end
OSC 633;C pre-execution
OSC 633;D command finished
OSC 633;E set commandline
OSC 633;P properties
Desktop Notifications (OSC 9/777)
iTerm2 Inline Images (OSC 1337)
Tertiary Device Attributes (DA3)
Request Setting (DECRQSS)
Query Terminfo (XTGETTCAP)
Terminal Version (XTVERSION)
Feature Reporting (TERM_FEATURES)
Report window size in pixels (CSI 14 t)
Report cell size in pixels (CSI 16 t)
Report icon label (CSI 20 t)
Report window title (CSI 21 t)
Push title/icon stack (CSI 22 ; 0 t)
Pop title/icon stack (CSI 23 ; 0 t)
XTREPORTCOLORS — report color capabilities (CSI # R)??
XTGETXRES — query resource value (DCS + Q)??
LC_TERMINAL env variable??????
KITTY_* env variables??????
WEZTERM_* env variables??????
WT_SESSION env variable??????
iTerm2 Cell Size Reporting (OSC 1337)
iTerm2 Capability Reporting (OSC 1337)
Sixel support in DA1
Sixel geometry report (CSI ? Pi;Pa;Pv S)??
OSC 9;4 progress bar
OSC 66 text sizing
OSC 5522 advanced clipboard
XTPUSHSGR — push SGR stack (CSI # {)
XTPOPSGR — pop SGR stack (CSI # })
XTSAVE — save DEC private modes (CSI ? Pm s)
XTRESTORE — restore DEC private modes (CSI ? Pm r)
Push color palette (CSI # P)
Pop color palette (CSI # Q)
modifyOtherKeys mode 3
Kitty keyboard: DISAMBIGUATE (flag 1)
Kitty keyboard: REPORT_EVENTS (flag 2)
Kitty keyboard: REPORT_ALTERNATE (flag 4)
Kitty keyboard: REPORT_ALL_KEYS (flag 8)
Kitty keyboard: REPORT_TEXT (flag 16)
Kitty graphics: transmit
Kitty graphics: display
Kitty graphics: animation
Kitty graphics: Unicode placeholders
OSC 52 clipboard read
Special color (OSC 5)
Reset highlight background (OSC 117)
Reset highlight foreground (OSC 119)
Highlight background (OSC 17)
Highlight foreground (OSC 19)
Pointer shape (OSC 22)
Desktop notifications (OSC 99)
Notifications (OSC 777)
VTE termprop (OSC 666)
Systemd context (OSC 3008)
Reset pointer fg color (OSC 113)
Reset pointer bg color (OSC 114)
Kitty color protocol (OSC 21)
Kitty color stack push (OSC 30001)
Kitty color stack pop (OSC 30101)
Set Wayland app-id (OSC 176)
Screen flash (OSC 555)
Font size query/set (OSC 7770)
Font + window size (OSC 7777)
Font ligatures??????
Kitty click events??????
DSR ?996 — color scheme query??????

Headless Backends

Parser correctness tested via Termless. A means the parser accepts the sequence, not that it renders correctly.

Featurevtermxterm.jsKittyAlacrittyWezTermvt100.js
Underline color, indexed (SGR 58;5)~~~
Underline color, truecolor (SGR 58;2)~~~
Reset underline color (SGR 59)
Reverse Wrap (Mode 45)
Selective Erase (DECSED)
SL — shift left (CSI Ps SP @)
SR — shift right (CSI Ps SP A)
DECIC — insert columns (CSI Ps ' })
DECDC — delete columns (CSI Ps ' ~)
Pixel Mouse Reporting (1016)~~~
urxvt Mouse Reporting (1015)
Left/Right Margins (DECLRMM, Mode 69)~~~
UTF-8 mouse mode (?1005)
Kitty keyboard protocol
Kitty graphics protocol
Sixel graphics
Hyperlinks (OSC 8)
Text reflow on resize
Semantic prompts (OSC 133)~
VS Code Shell Integration (OSC 633)~
OSC 133;A prompt start (FTCS_PROMPT)
OSC 133;B command start (FTCS_COMMAND_START)
OSC 133;C command executed (FTCS_COMMAND_EXECUTED)
OSC 133;D command finished (FTCS_COMMAND_FINISHED)
OSC 133;P properties
OSC 633;A prompt start
OSC 633;B prompt end
OSC 633;C pre-execution
OSC 633;D command finished
OSC 633;E set commandline
OSC 633;P properties
Desktop Notifications (OSC 9/777)~~~
iTerm2 Inline Images (OSC 1337)
Tertiary Device Attributes (DA3)~~~
Request Setting (DECRQSS)~~~
Query Terminfo (XTGETTCAP)~~~
Terminal Version (XTVERSION)~~~
Feature Reporting (TERM_FEATURES)??????
Report window size in pixels (CSI 14 t)~~~~
Report cell size in pixels (CSI 16 t)~~~~
Report icon label (CSI 20 t)~~~
Report window title (CSI 21 t)~~~
Push title/icon stack (CSI 22 ; 0 t)~~
Pop title/icon stack (CSI 23 ; 0 t)~~
XTREPORTCOLORS — report color capabilities (CSI # R)
XTGETXRES — query resource value (DCS + Q)
LC_TERMINAL env variable??????
KITTY_* env variables??????
WEZTERM_* env variables??????
WT_SESSION env variable??????
iTerm2 Cell Size Reporting (OSC 1337)
iTerm2 Capability Reporting (OSC 1337)
Sixel support in DA1~
Sixel geometry report (CSI ? Pi;Pa;Pv S)
OSC 9;4 progress bar??????
OSC 66 text sizing~
OSC 5522 advanced clipboard~
XTPUSHSGR — push SGR stack (CSI # {)~~
XTPOPSGR — pop SGR stack (CSI # })~~
XTSAVE — save DEC private modes (CSI ? Pm s)~~
XTRESTORE — restore DEC private modes (CSI ? Pm r)~~
Push color palette (CSI # P)~~
Pop color palette (CSI # Q)~~
modifyOtherKeys mode 3~~~
Kitty keyboard: DISAMBIGUATE (flag 1)
Kitty keyboard: REPORT_EVENTS (flag 2)
Kitty keyboard: REPORT_ALTERNATE (flag 4)
Kitty keyboard: REPORT_ALL_KEYS (flag 8)
Kitty keyboard: REPORT_TEXT (flag 16)
Kitty graphics: transmit
Kitty graphics: display
Kitty graphics: animation
Kitty graphics: Unicode placeholders
OSC 52 clipboard read~~~
Special color (OSC 5)
Reset highlight background (OSC 117)
Reset highlight foreground (OSC 119)
Highlight background (OSC 17)
Highlight foreground (OSC 19)
Pointer shape (OSC 22)??????
Desktop notifications (OSC 99)??????
Notifications (OSC 777)??????
VTE termprop (OSC 666)??????
Systemd context (OSC 3008)??????
Reset pointer fg color (OSC 113)??????
Reset pointer bg color (OSC 114)??????
Kitty color protocol (OSC 21)~
Kitty color stack push (OSC 30001)??????
Kitty color stack pop (OSC 30101)??????
Set Wayland app-id (OSC 176)??????
Screen flash (OSC 555)??????
Font size query/set (OSC 7770)??????
Font + window size (OSC 7777)??????
Font ligatures??????
Kitty click events??????
DSR ?996 — color scheme query??????