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.
CSI u came from the 'fixterms' effort to repair ambiguous keyboard input without replacing the whole terminal protocol. It reports Unicode code points plus modifiers, making Ctrl-I distinguishable from Tab and Ctrl-M from Enter. Kitty's keyboard protocol is the richer successor, but CSI u remains an important compatibility step.
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-05-17
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 | ||
| Kitty | 0.46.2 | ✓ yes | |
| Cursor | ✓ yes | ||
| Terminal.app | ✓ yes |