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
Tested on real terminal applications. Don't see your terminal? Contribute results with npx terminfo.dev submit
Inspired by Web Baseline — minimum feature sets that terminals should support
Parser correctness tested via Termless — headless libraries may not expose all features through their API
Which features survive tmux and screen? Pass-through testing shows what each multiplexer correctly relays.
How terminals work — control characters, PTY architecture, stty, and feature detection.
From VT100 to Kitty — 50 years of terminal protocols and escape sequence standards.
The terminals that shaped computing — VT52, VT100, VT220, xterm, and VT510.
What should your terminal support? Minimum feature sets from core to rich.
CSI, SGR, OSC, DEC... terminal terminology explained.
Side-by-side terminal feature comparison.
Data comes from three complementary sources:
Terminal Applications — tested on real terminals via the npx terminfo.dev community CLI. Each test sends escape sequences to the actual terminal and verifies behavior via cursor position reports, device attribute queries, and rendered width measurements. These results reflect what users actually experience.
Headless Backends — tested via Termless against headless terminal emulator libraries. These test parser correctness — whether the library correctly parses and stores the escape sequence. A headless pass means "the parser accepts this," not "this renders correctly." Some features (like blink, cursor shape) may parse correctly but are not exposed through the library's API.
Multiplexers — tested by running probes through terminal multiplexers (tmux, screen) to measure pass-through fidelity. A multiplexer pass means the escape sequence was correctly relayed to the underlying terminal. Failures indicate sequences that the multiplexer intercepts, strips, or mishandles.