Appearance
CSI u Key Encoding
The fixterms/CSI u encoding reports keypresses as CSI codepoint ; modifiers u sequences. This was the precursor to the Kitty keyboard protocol and provides unambiguous key identification for terminal applications.
How this is testedautomated
Query keyboard mode flags and check if the terminal supports CSI u encoding for key events.
Query keyboard mode flags and check if the terminal supports CSI u encoding for key events.
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 12 of 14 backends (86%)
Terminal Applications
| Terminal | Version | Support | Notes |
|---|---|---|---|
| iTerm2 | 3.6.9 | ✓ yes | |
| Ghostty | 1.3.1 | ✓ yes | |
| VS Code | ✓ yes | ||
| Warp | ✓ yes | ||
| Cursor | ✓ yes | ||
| Terminal.app | ✓ yes |
Headless Backends
Parser correctness only — a ✓ means the parser accepts the sequence.
| Backend | Version | Support | Notes |
|---|---|---|---|
| Alacritty | 0.26.0 | ✓ yes | |
| Kitty | 0.40.0 | ✓ yes | |
| vterm | 0.2.0 | ✓ yes | |
| WezTerm | 0.1.0-fork.5 | ✓ yes | |
| vt100.js | 0.2.1 | ✗ no | CSI u keyboard protocol not implemented |
| xterm.js | 5.5.0 | ✗ no | CSI u keyboard protocol not implemented |