Appearance
UTF-8 mouse mode (?1005)
CSI ? 1005 h/lDECSET 1005 enables UTF-8 mouse encoding, an early extension that worked around the 223-column limit of legacy X10 mouse reporting by encoding coordinates as UTF-8 multibyte sequences. The sequence is
ESC [ ? 1005 h. Mouse reports use the same format as X10 (ESC [ M + button + col + row) but each coordinate byte may be a multibyte UTF-8 character, supporting columns up to 2015.
Mode 1005 sits between the legacy X10 encoding (?1000) and the modern SGR encoding (?1006). It was a transitional standard and is rarely used today — applications and terminals have largely standardized on SGR mouse mode, which avoids the parsing ambiguities of UTF-8 (some bytes can collide with control characters or get corrupted by non-UTF-8-aware middleware). Still implemented by xterm and a few derivatives for backwards compatibility.How this is testedpartial
Send
Send
\x1b[?1005h (DECSET 1005), verify the sequence is consumed without breaking subsequent terminal output. Headless backends rarely track this mode, so verification is partial.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 9 tested terminals — universal adoption. Part of the Rich TUI baseline.
Supported by 11 of 14 backends (79%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | DECRPM: mode reset |
| Ghostty | 1.3.1 | ✓ yes | DECRPM: mode reset |
| Terminal.app | 2.15 | ✓ yes | Behavioral: ?1005 accepted |
| Kitty | 0.46.2 | ✓ yes | Behavioral: ?1005 accepted |
| VS Code | 1.113.0 | ? unknown | |
| Warp | 0.2026.03.18.08.24.03 | ? unknown | |
| Cursor | 2.6.21 | ? unknown |