Skip to content

Mode Report (DECRPM)

Category: device · Baseline: modern · Tags: VT510 · Specification ↗

ESC [ ? mode $ p
DECRPM (CSI ? Pd $ p) queries whether the terminal recognizes and has enabled a specific DEC private mode. The response CSI ? Pd ; Ps $ y reports the mode state: 1=set, 2=reset, 0=not recognized. Essential for feature detection.
How this is testedautomated
Send CSI ? 25 $ p (query DECTCEM), verify response contains mode value.

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 8 of 12 terminals (67%). Not supported by: Kitty, Terminal.app, Warp, vt100.js. Part of the Modern TUI baseline. Notes: Kitty: Headless mode has no output stream for DECRPM responses; vt100.js: No output stream — pure TypeScript emulator.

Supported by 6 of 14 backends (43%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✓ yesDECAWM is set
Ghostty1.3.1✓ yesDECAWM is set
VS Code✓ yes
Cursor✓ yes
Warp✗ no
Terminal.app✗ no

Headless Backends

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

BackendVersionSupportNotes
vterm0.2.0✓ yes
xterm.js5.5.0✓ yes
Alacritty0.26.0~ partialHeadless mode has no output stream for DECRPM responses
Kitty0.40.0~ partialHeadless mode has no output stream for DECRPM responses
WezTerm0.1.0-fork.5~ partialHeadless mode has no output stream for DECRPM responses
vt100.js0.2.1✗ noNo output stream — pure TypeScript emulator