Appearance
Report window size in pixels (CSI 14 t)
ESC [ 14 tXTWINOPS 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
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 6 of 14 backends (43%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | 387x570 px |
| Ghostty | 1.3.1 | ✓ yes | 3094x3780 px |
| Terminal.app | 2.15 | ✓ yes | 353x580 px |
| Kitty | 0.46.2 | ✓ yes | Window operations not exposed via Python batch bridge |
| VS Code | 1.113.0 | ? unknown | |
| Warp | 0.2026.03.18.08.24.03 | ? unknown | |
| Cursor | 2.6.21 | ? unknown |
Headless Backends
Parser correctness only — a ✓ means the parser accepts the sequence.
| Backend | Version | Support | Notes |
|---|---|---|---|
| Alacritty | 0.26.0 | ~ partial | Window pixel-size report requires a real window system |
| WezTerm | 0.1.0-fork.5 | ~ partial | Window pixel-size report requires a real window system |
| xterm.js | 5.5.0 | ~ partial | Window operations require real window system; not exposed in headless mode |
| vt100.js | 0.2.1 | ✗ no | XTWINOPS not implemented — post-dates VT220 baseline |
| vterm | 0.2.0 | ✗ no | XTWINOPS window pixel-size report not implemented in vterm.js |