Skip to content

Tertiary Device Attributes (DA3)

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

ESC [ = c
DA3 (CSI = c) returns the terminal's unit ID as a DCS response. Less commonly supported than DA1/DA2, primarily by xterm and terminals that aim for high VT compatibility. DA3 is part of the later DEC device-attribute family rather than the everyday ANSI baseline. It is useful when emulating high-end VT behavior, but it is too sparsely implemented for application feature detection. Most modern applications prefer XTVERSION, DECRPM probes, or environment signals before trying DA3.
How this is testedautomated
Send CSI = c, check for a DCS ! | response.

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 4 of 12 terminals (33%). Part of the Rich TUI baseline. Notes: Kitty: Headless mode has no output stream for DA3 responses; vt100.js: No output stream — pure TypeScript emulator; xterm.js: DA3 not implemented in xterm.js.

Supported by 3 of 14 backends (21%)

Terminal Applications

TerminalVersionSupportNotes
iTerm23.6.9✓ yes
Ghostty1.3.1✗ noNo DA3 response
VS Code✗ no
Warp✗ no
Kitty0.46.2✗ noHeadless mode has no output stream for DA3 responses
Cursor✗ no
Terminal.app✗ no

Headless Backends

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

BackendVersionSupportNotes
vterm.js0.2.0✓ yes
Alacritty0.26.0~ partialHeadless mode has no output stream for DA3 responses
WezTerm0.1.0-fork.5~ partialHeadless mode has no output stream for DA3 responses
vt100.js0.2.1✗ noNo output stream — pure TypeScript emulator
xterm.js5.5.0✗ noDA3 not implemented in xterm.js