Appearance
Terminfo.devCan your terminal do that?
Feature support tables for terminal emulators — powered by Termless, Playwright for terminals
Feature support tables for terminal emulators — powered by Termless, Playwright for terminals
| vt100 | xtermjs | ghostty | vt100-rust | |
|---|---|---|---|---|
| SGR (Text Styling) | ||||
| Bold (SGR 1) | ✓ | ✓ | ✓ | ✓ |
| Faint/Dim (SGR 2) | ✓ | ✓ | ✓ | ✗ |
| Italic (SGR 3) | ✓ | ✓ | ✓ | ✓ |
| Underline single (SGR 4) | ✓ | ✓ | ✓ | ✓ |
| Underline double (SGR 21) | ✓ | ~ | ~ | ✗ |
| Underline curly (SGR 4:3) | ✓ | ~ | ~ | ✗ |
| Underline dotted (SGR 4:4) | ✓ | ~ | ~ | ✗ |
| Underline dashed (SGR 4:5) | ✓ | ~ | ~ | ✗ |
| Blink (SGR 5) | ✗ | ✓ | ✗ | ✗ |
| Inverse/Reverse video (SGR 7) | ✓ | ✓ | ✓ | ✓ |
| Hidden/Invisible (SGR 8) | ✗ | ✓ | ✗ | ✗ |
| Strikethrough (SGR 9) | ✓ | ✓ | ✓ | ✗ |
| 256-color foreground (SGR 38;5;N) | ✓ | ✓ | ✓ | ✓ |
| Truecolor foreground (SGR 38;2;R;G;B) | ✓ | ✓ | ✓ | ✓ |
| Truecolor background (SGR 48;2;R;G;B) | ✓ | ✓ | ✓ | ✓ |
| SGR reset (SGR 0) clears all attributes | ✓ | ✓ | ✓ | ✓ |
| Cursor | ||||
| Cursor position (CUP) | ✓ | ✓ | ✓ | ✓ |
| Cursor home (CUP with no args) | ✓ | ✓ | ✓ | ✓ |
| Cursor forward (CUF) | ✓ | ✓ | ✓ | ✓ |
| Cursor back (CUB) | ✓ | ✓ | ✓ | ✓ |
| Cursor down (CUD) | ✓ | ✓ | ✓ | ✓ |
| Cursor up (CUU) | ✓ | ✓ | ✓ | ✓ |
| Cursor hide (DECTCEM reset) | ✓ | ✗ | ✗ | ✓ |
| Cursor save/restore (DECSC/DECRC) | ✓ | ✓ | ✓ | ✓ |
| Text | ||||
| Basic text output | ✓ | ✓ | ✓ | ✓ |
| Newline moves to next row | ✓ | ✓ | ✓ | ✓ |
| CR+LF line ending | ✓ | ✓ | ✓ | ✓ |
| Text wraps at terminal width | ✓ | ✓ | ✓ | ✓ |
| Horizontal tab (HT) stops at column 8 | ✓ | ✓ | ✓ | ✓ |
| Wide character handling (emoji) | ✓ | ~ | ✓ | ✓ |
| Wide character handling (CJK) | ✓ | ✓ | ✓ | ✓ |
| Overwrite text by repositioning cursor | ✓ | ✓ | ✓ | ✓ |
| Erase | ||||
| Erase line from cursor right (EL 0) | ✓ | ✓ | ✓ | ✓ |
| Erase line from cursor left (EL 1) | ✓ | ✓ | ✓ | ✓ |
| Erase entire line (EL 2) | ✓ | ✓ | ✓ | ✓ |
| Erase screen below cursor (ED 0) | ✓ | ✓ | ✓ | ✓ |
| Erase entire screen (ED 2) | ✓ | ✓ | ✓ | ✓ |
| Modes | ||||
| Alternate screen buffer (DECSET 1049) | ✓ | ✓ | ✓ | ✓ |
| Alt screen exit restores state (DECRST 1049) | ✓ | ✓ | ✓ | ✓ |
| Bracketed paste mode (DECSET 2004) | ✓ | ✓ | ✓ | ✓ |
| Application cursor keys (DECSET 1) | ✓ | ✓ | ✓ | ✓ |
| Auto-wrap at right margin (DECAWM) | ✓ | ✓ | ✓ | ✓ |
| Mouse tracking (DECSET 1000) | ✓ | ✓ | ✓ | ✓ |
| Focus tracking (DECSET 1004) | ✓ | ✓ | ✓ | ✗ |
| Reverse video (DECSET 5) | ✓ | ✗ | ✓ | ✗ |
| Scrollback | ||||
| Scrollback accumulates beyond screen height | ✓ | ✓ | ✓ | ✗ |
| Alternate screen has separate scrollback | ~ | ✓ | ✓ | ~ |
| Scroll up (SU / CSI S) | ✓ | ✓ | ✓ | ✓ |
| Reverse index at top (RI / ESC M) | ✓ | ✓ | ✓ | ✓ |
| Total lines tracking in scrollback state | ✓ | ✓ | ✓ | ✗ |
| Reset | ||||
| SGR reset clears bold, italic, inverse | ✓ | ✓ | ✓ | ✓ |
| Full reset (RIS / ESC c) | ✓ | ✓ | ✓ | ✓ |
| Backend reset() method | ✓ | ✓ | ✓ | ✓ |
| Extensions | ||||
| Window title (OSC 2) | ✓ | ✓ | ✗ | ✓ |
| Kitty keyboard protocol | ✗ | ✗ | ✓ | ✗ |
| Kitty graphics protocol | ✗ | ✗ | ✗ | ✗ |
| Sixel graphics | ✗ | ✗ | ✗ | ✗ |
| OSC 8 hyperlinks | ✗ | ✓ | ✓ | ✗ |
| Text reflow on resize | ✗ | ✓ | ✓ | ✗ |
| 24-bit truecolor support | ✓ | ✓ | ✓ | ✓ |
| Semantic prompt markers (OSC 133) | ✗ | ✗ | ✗ | ✗ |
Data is collected by Termless census probes — standardized test sequences sent to each terminal backend. Each probe writes ANSI escape sequences and reads back the terminal state to verify whether the feature was correctly processed.
The census covers SGR attributes, cursor movement, text handling, erase operations, terminal modes, scrollback behavior, and modern extensions like kitty keyboard protocol and OSC 8 hyperlinks.
Results are fully automated and reproducible — no manual testing, no self-reported capabilities.