Skip to content

Erase screen (ED 2)

Category: erase · Baseline: core · Tags: ECMA-48 Standard, VT100 · Specification ↗

ESC [ 2 J
ED 2 erases the entire visible screen. The sequence is ESC [ 2 J. The cursor position is not changed. Does not affect the scrollback buffer — use ED 3 to clear scrollback. ED 2 is what many users think of as 'clear screen', but it only clears the visible display. It intentionally does not erase scrollback; xterm-style ED 3 exists for that separate job. This distinction matters for security and debugging, because wiping the viewport should not silently destroy the user's history.
How this is testedautomated
Write three lines, send \x1b[2J (ED 2), verify all visible content is cleared.

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-05-17

Supported by 11 of 12 terminals (92%). Not supported by: Alacritty. Part of the Core TUI baseline. Notes: Alacritty: Alacritty's ED 2 doesn't clear scrollback content from buffer.

Supported by 12 of 14 backends (86%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✓ yes
Ghostty1.3.1✓ yes
VS Code✓ yes
Warp✓ yes
Kitty0.46.2✓ yes
Cursor✓ yes
Terminal.app✓ yes

Headless Backends

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

BackendVersionSupportNotes
vt100.js0.2.1✓ yes
vterm.js0.2.0✓ yes
WezTerm0.1.0-fork.5✓ yes
xterm.js5.5.0✓ yes
Alacritty0.26.0✗ noAlacritty's ED 2 doesn't clear scrollback content from buffer