Appearance
Kitty Extensions
Protocols introduced by the Kitty terminal emulator (Kovid Goyal). The Kitty keyboard protocol provides unambiguous, modifier-aware key reporting — solving longstanding terminal input limitations like distinguishing Ctrl+I from Tab and reporting key-up events. The Kitty graphics protocol enables inline image display via chunked base64 transfer. Kitty also defined extended underline styles (curly SGR 4:3, dotted SGR 4:4, dashed SGR 4:5) with underline colors (SGR 58). These extensions use ECMA-48's sub-parameter syntax (colon-separated) but are not part of the ECMA-48 standard. Adopted by Ghostty, WezTerm, foot, and other modern terminals. Kovid Goyal is also the creator of Calibre, the popular e-book management tool. The Kitty keyboard protocol builds on earlier attempts to fix terminal input — notably xterm's modifyOtherKeys and Paul Evans' CSI u proposal — but takes a more comprehensive approach that has gained broader adoption.
See also: Kitty (terminal app)
The Kitty keyboard protocol solves the terminal's oldest input problem: ambiguous key encoding. In legacy encoding, Ctrl+I produces the same byte as Tab (0x09), Ctrl+M is indistinguishable from Enter (0x0D), and there is no way to detect key release events. The protocol uses CSI u encoding (ESC [keycode;modifiers u) with progressive enhancement flags — applications opt into the detail level they need, from basic disambiguation up to full key-up/key-down reporting.
The Kitty graphics protocol transmits images as base64-encoded chunks inside APC sequences (ESC _G...ESC \), with metadata specifying format, dimensions, and placement. Unlike Sixel, it supports PNG/RGB/RGBA natively, can place images at specific cell coordinates, and uses shared memory or temporary files for large images. It has become the preferred image protocol in modern terminals.
Kitty's extended underline styles use ECMA-48's colon sub-parameter syntax: ESC [4:3m for curly (used for spell-check squiggles), ESC [4:4m for dotted, ESC [4:5m for dashed. ESC [58:2::R:G:Bm sets the underline color independently from the text color. These are now supported by Ghostty, WezTerm, iTerm2, and foot — making rich text annotation in the terminal a practical reality.
Analysis2026-04-06
Kitty Extensions defines 25 features in the terminfo.dev matrix. Average adoption across terminals: 65%. Lowest: vt100.js at 0% (0/21).
Terminal Applications
Headless Backends
Parser correctness tested via Termless. A ✓ means the parser accepts the sequence, not that it renders correctly.