wire / terminal-dec-private-mode / 2026

DECSET 2026 — Synchronized output

CSI ? 2026 h begins a synchronized update: the terminal buffers all output and does not repaint until CSI ? 2026 l ends the batch, eliminating tearing/flicker when redrawing a frame. A de-facto standard introduced by the terminal-wg / Contour effort and adopted by several terminals.

terminal-dec-private-mode kind control-sequence status de-facto verification verified tier C terminal-escape@1

aka: synchronized output · synchronized update · DECSET 2026 · ?2026h / ?2026l · BSU · ESU · tear-free

frame

DEC-private-mode introducer: \x1b[? ESC [ ? (0x1B 0x5B 0x3F)

terminator (none): ST · BEL

parameters / subcommands

idnamebytes (ST)meaning
set Enable (DECSET) \x1b[?2026h CSI ? 2026 h begins a synchronized update (BSU): the terminal stops repainting and buffers subsequent output until the batch ends.
reset Disable (DECRST) \x1b[?2026l CSI ? 2026 l ends the synchronized update (ESU): the terminal atomically renders the buffered frame, avoiding flicker/tearing.

support matrix

terminallevelsincenotes
Contourfullspec authorOriginated/authored the synchronized-output spec.
kittyfulldocumentedImplements mode 2026 synchronized updates.
WezTermfulldocumentedImplements mode 2026.
iTerm2full3.5+Supports synchronized output.
Ghosttyfull1.0Supports mode 2026.

gotchas


provenance

per-fact attribution:

see also

agent: curl -H 'accept: application/json' wire.phall.io/terminal-dec-private-mode/2026 or /terminal-dec-private-mode/2026.json