Appearance
Alt screen legacy (?47)
CSI ? 47 h/lDECSET 47 is the original alternate screen buffer mode. The sequence is
ESC [ ? 47 h to enter and ESC [ ? 47 l to exit. Unlike the modern ?1049 mode, ?47 does not save or restore the cursor position, and switching back does not clear the alt screen on the next entry.
This legacy mode predates the unified ?1049 sequence (which combines DECSC + ?47 + clear). Modern applications should use ?1049 instead — ?47 is preserved for backwards compatibility with older xterm clients and historical TUI software. Most terminal emulators still implement it, though some treat it as an alias for ?1047.How this is testedautomated
Send
Send
\x1b[?47h (DECSET 47), verify altScreen mode is active, then exit with \x1b[?47l.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 9 of 14 backends (64%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | Behavioral: ?47 enter/exit accepted |
| Ghostty | 1.3.1 | ✓ yes | Behavioral: ?47 enter/exit accepted |
| Terminal.app | 2.15 | ✓ yes | Behavioral: ?47 enter/exit accepted |
| Kitty | 0.46.2 | ✓ yes | Behavioral: ?47 enter/exit accepted |
| 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 |
|---|---|---|---|
| vterm | 0.2.0 | ✓ yes | |
| WezTerm | 0.1.0-fork.5 | ✓ yes | |
| xterm.js | 5.5.0 | ✓ yes | |
| Alacritty | 0.26.0 | ✗ no | Legacy ?47 alt screen not supported by alacritty |
| vt100.js | 0.2.1 | ✗ no | Alt screen variants not supported in vt100.js baseline |