Skip to content

Report window size in pixels (CSI 14 t)

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

ESC [ 14 t
XTWINOPS subcode 14 queries the terminal window size in pixels. The query is CSI 14 t; the response is CSI 4 ; height ; width t. Combined with the cell size query (CSI 16 t) or the text area size in characters (CSI 18 t), applications can compute pixel-accurate dimensions for image protocols (sixel, iTerm2 inline images, kitty graphics) without guessing. XTWINOPS is the umbrella spec for window operations defined by xterm. The query subset (14, 16, 18, 20, 21) is broadly considered safe — it only reports state and cannot be used to reposition or resize windows. The mutation subset (1-9) is disabled by default in many terminals because it allows remote escape sequences to manipulate the user's window. terminfo.dev only tracks the query subset.
How this is testedautomated
Send \x1b[14t, verify response matches CSI 4 ; H ; W t.

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 9 terminals (78%). Not supported by: vterm.js, vt100.js. Part of the Rich TUI baseline. Notes: vterm.js: XTWINOPS window pixel-size report not implemented in vterm.js; vt100.js: XTWINOPS not implemented — post-dates VT220 baseline.

Supported by 6 of 14 backends (43%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✓ yes387x570 px
Ghostty1.3.1✓ yes3094x3780 px
Terminal.app2.15✓ yes353x580 px
Kitty0.46.2✓ yesWindow operations not exposed via Python batch bridge
VS Code1.113.0? unknown
Warp0.2026.03.18.08.24.03? unknown
Cursor2.6.21? unknown

Headless Backends

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

BackendVersionSupportNotes
Alacritty0.26.0~ partialWindow pixel-size report requires a real window system
WezTerm0.1.0-fork.5~ partialWindow pixel-size report requires a real window system
xterm.js5.5.0~ partialWindow operations require real window system; not exposed in headless mode
vt100.js0.2.1✗ noXTWINOPS not implemented — post-dates VT220 baseline
vterm0.2.0✗ noXTWINOPS window pixel-size report not implemented in vterm.js