Skip to content

Save/restore cursor (DECSC)

Category: cursor · Baseline: core · Tags: DEC Private Modes, VT100 · Specification ↗

ESC 7 / ESC 8
DECSC saves the cursor position and attributes; DECRC restores them. Save: ESC 7. Restore: ESC 8. Also available as CSI variants: ESC [ s (save) and ESC [ u (restore). The saved state includes cursor position, character attributes, character set, and origin mode. Applications use this to temporarily move the cursor for status updates without disrupting the main content area.
How this is testedautomated
Write "AB", save with \x1b7 (DECSC), move to (5,5), restore with \x1b8 (DECRC), verify cursor returned to col 2, row 0.

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 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
Cursor✓ yes
Terminal.app✓ yes

Headless Backends

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

BackendVersionSupportNotes
Alacritty0.26.0✓ yes
Kitty0.40.0✓ yes
vt100.js0.2.1✓ yes
vterm0.2.0✓ yes
WezTerm0.1.0-fork.5✓ yes
xterm.js5.5.0✓ yes