Skip to content

Reverse Index at Scroll Top

Category: text · Baseline: core · Tags: VT100 · Specification ↗

RI (ESC M) at the top of the scroll region scrolls the entire region down, inserting a blank line at the top. This is the inverse of a newline at the bottom of the scroll region. Used for smooth scrolling and status line implementations. Reverse Index is the upward-scrolling counterpart to a newline at the bottom margin. DEC terminals used it for smooth scrolling and region-local updates; modern terminal emulators still need it for applications that manipulate split panes or status areas by moving content down instead of repainting.
How this is testedautomated
Set scroll region, write text at top row, send Reverse Index (ESC M), verify content shifted down by one line.

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 all 12 tested terminals — universal adoption. Part of the Core TUI baseline.

Supported by 13 of 14 backends (93%)

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
Alacritty0.26.0✓ yes
vt100.js0.2.1✓ yes
vterm.js0.2.0✓ yes
WezTerm0.1.0-fork.5✓ yes
xterm.js5.5.0✓ yes