Appearance
Terminal Version (XTVERSION)
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.
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
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | |
| Ghostty | 1.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.
| Backend | Version | Support | Notes |
|---|---|---|---|
| vterm | 0.2.0 | ✓ yes | |
| Alacritty | 0.26.0 | ~ partial | Headless mode has no output stream for XTVERSION responses |
| Kitty | 0.40.0 | ~ partial | Headless mode has no output stream for XTVERSION responses |
| WezTerm | 0.1.0-fork.5 | ~ partial | Headless mode has no output stream for XTVERSION responses |
| vt100.js | 0.2.1 | ✗ no | No output stream — pure TypeScript emulator |
| xterm.js | 5.5.0 | ✗ no | XTVERSION not implemented in xterm.js |