Skip to content

Terminal Version (XTVERSION)

Category: device · Baseline: rich · Tags: Xterm Extensions · Specification ↗

XTVERSION (CSI > 0 q) requests the terminal's name and version string. The response is DCS > | name(version) ST. This allows applications to identify the exact terminal and version at runtime, enabling precise feature detection beyond what TERM or DA responses provide. Originally an xterm extension, now supported by many modern terminals including Ghostty, WezTerm, foot, and kitty.
How this is testedautomated
Send CSI > 0 q, verify the terminal responds with a DCS > | version string.

The same probe runs against headless backends (via Termless) and real terminal apps (via a daemon launched in each terminal). This lets us distinguish parser correctness from rendering correctness.

Analysis2026-04-06

Supported by 7 of 12 terminals (58%). Not supported by: Kitty, Terminal.app, Cursor, vt100.js, xterm.js. Part of the Rich TUI baseline. Notes: Kitty: Headless mode has no output stream for XTVERSION responses; vt100.js: No output stream — pure TypeScript emulator; xterm.js: XTVERSION not implemented in xterm.js.

Supported by 6 of 14 backends (43%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✓ yes
Ghostty1.3.1✓ yes
VS Code✓ yes
Warp✓ yes
Cursor✗ no
Terminal.app✗ no

Headless Backends

Parser correctness only — a means the parser accepts the sequence.

BackendVersionSupportNotes
vterm0.2.0✓ yes
Alacritty0.26.0~ partialHeadless mode has no output stream for XTVERSION responses
Kitty0.40.0~ partialHeadless mode has no output stream for XTVERSION responses
WezTerm0.1.0-fork.5~ partialHeadless mode has no output stream for XTVERSION responses
vt100.js0.2.1✗ noNo output stream — pure TypeScript emulator
xterm.js5.5.0✗ noXTVERSION not implemented in xterm.js