Appearance
Tertiary Device Attributes (DA3)
ESC [ = cDA3 (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.
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 3 of 14 backends (21%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | |
| Ghostty | 1.3.1 | ✗ no | No DA3 response |
| VS Code | ✗ no | ||
| Warp | ✗ no | ||
| Kitty | 0.46.2 | ✗ no | Headless 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.
| Backend | Version | Support | Notes |
|---|---|---|---|
| vterm.js | 0.2.0 | ✓ yes | |
| Alacritty | 0.26.0 | ~ partial | Headless mode has no output stream for DA3 responses |
| WezTerm | 0.1.0-fork.5 | ~ partial | Headless mode has no output stream for DA3 responses |
| vt100.js | 0.2.1 | ✗ no | No output stream — pure TypeScript emulator |
| xterm.js | 5.5.0 | ✗ no | DA3 not implemented in xterm.js |