kitty¶
A GPU-rendered emulator whose author has published several protocols now implemented by other terminals: the Kitty keyboard protocol, the Kitty graphics protocol, desktop notifications (OSC 99), and the text sizing protocol (OSC 66).
Identity¶
TERM:xterm-kitty(ships its own terminfo).TERM_PROGRAM: not set;KITTY_WINDOW_ID,KITTY_PID, andKITTY_PUBLIC_KEYare set.- DA1:
CSI ? 62 ; c? - XTVERSION:
DCS > | kitty(0.xx.y) ST.
Documentation¶
Notable behavior¶
- Refuses to implement Sixel; the graphics protocol is the alternative.
- Refuses DEC private mode 2027 (grapheme clustering); kitty segments graphemes unconditionally and offers the text sizing protocol for width control.
- Ships terminfo with custom capabilities (
Smulx,Setulc,Sync,kitty-query-*) and answers XTGETTCAP. - OSC 52 reads and writes are governed by
clipboard_control. - Provides a remote-control protocol over a socket in addition to escape-sequence extensions; that channel is out of TDN scope.
- Shell integration is injected automatically for supported shells and emits OSC 133 marks.
Version notes¶
Kitty uses 0.x.y numbering with frequent minor releases; each protocol
page states the version in which it was introduced or revised.
Probe¶
kitty --version
tools/query '\033[>0q' # XTVERSION
tools/query '\033[?u' # keyboard protocol flags
Feature support¶
Records are maintained independently in tdn/terminals/kitty.yaml. Unlisted features are unknown. See the comparison for all features.
| Feature | Support | As of | Notes and evidence |
|---|---|---|---|
Kittyapc-kitty-graphics | SupportedImported · unverified | Unversioned | Yes | Also recorded: Yes ([kitty graphics protocol](https://sw.kovidgoyal.net/kitty/graphics-protocol/).); Reference implementation |
BEL urgency/visualc0-bel-attention | SupportedImported · unverified | Unversioned | Yes |
14/16 pixel sizescsi-14-16-t-pixel-sizes | SupportedImported · unverified | Unversioned | Yes |
18 size in cellscsi-18-t-text-size | SupportedImported · unverified | Unversioned | Yes |
ED 3 (scrollback)csi-3-j-erase-scrollback | SupportedImported · unverified | Unversioned | Yes |
DECRQMcsi-decrqm | SupportedImported · unverified | Unversioned | Yes |
DECSTBMcsi-decstbm | SupportedImported · unverified | Unversioned | Yes |
DECSTRcsi-decstr | SupportedImported · unverified | Unversioned | Yes |
ED/EL/ECH/ICH/DCH/IL/DLcsi-editing-operations | SupportedImported · unverified | Unversioned | Yes |
modifyOtherKeyscsi-modify-other-keys | PartialImported · unverified | Unversioned | Partial; Accepts `CSI > 4 ; 2 m` as a request for its own protocol's disambiguate flag ([kitty keyboard protocol, legacy compatibility](https://sw.kovidgoyal.net/kitty/keyboard-protocol/#legacy-key-event-encoding).) |
CSI # P / # Qcsi-palette-stack | SupportedImported · unverified | Unversioned | Yes |
Unscroll (CSI + T)csi-plus-t-unscroll | Supported | git:9710eb4460ca0ab1532b0107d7066c20d7e9a66f | Documented as added in 0.20.2. The parser dispatches CSI + T to screen_reverse_scroll_and_fill_from_scrollback and bare CSI T stays SD. Documentation and source review; not executed. Checked 2026-09-12. |
REPcsi-rep | SupportedImported · unverified | Unversioned | Yes |
SU/SDcsi-su-sd-scroll | SupportedImported · unverified | Unversioned | Yes |
Kitty keyboard protocolcsi-u-kitty-keyboard | SupportedImported · unverified | Unversioned | Yes; Origin, all flags ([Comprehensive keyboard handling in terminals](https://sw.kovidgoyal.net/kitty/keyboard-protocol/).) |
DECRQSSdcs-decrqss | SupportedImported · unverified | Unversioned | Yes; `SP q`, `m`, `r` documented in source `?` |
Sixeldcs-sixel | UnsupportedImported · unverified | Unversioned | No ([kitty graphics protocol, "Why not Sixel"](https://sw.kovidgoyal.net/kitty/graphics-protocol/).) | Also recorded: No ([kitty graphics protocol](https://sw.kovidgoyal.net/kitty/graphics-protocol/).); Refused by design |
XTGETTCAPdcs-xtgettcap | SupportedImported · unverified | Unversioned | Yes; [protocol extensions](https://sw.kovidgoyal.net/kitty/protocol-extensions/) |
1000 mousedec-mode-1000-mouse | SupportedImported · unverified | Unversioned | Yes |
1002 button motiondec-mode-1002-button-motion | SupportedImported · unverified | Unversioned | Yes |
1003 all motiondec-mode-1003-all-motion | SupportedImported · unverified | Unversioned | Yes |
1004 focusdec-mode-1004-focus | SupportedImported · unverified | Unversioned | Yes ([kitty protocol extensions](https://sw.kovidgoyal.net/kitty/protocol-extensions/).) |
1006 sgr mousedec-mode-1006-sgr-mouse | SupportedImported · unverified | Unversioned | Yes |
1015 urxvt mousedec-mode-1015-urxvt-mouse | SupportedImported · unverified | Unversioned | Yes |
1016 pixel mousedec-mode-1016-pixel-mouse | SupportedImported · unverified | Unversioned | Yes |
1049 alternate screendec-mode-1049-alternate-screen | SupportedImported · unverified | Unversioned | Yes |
2004 bracketed pastedec-mode-2004-bracketed-paste | SupportedImported · unverified | Unversioned | Yes | Also recorded: Yes; Sanitizes controls ([kitty, `paste_actions`](https://sw.kovidgoyal.net/kitty/conf/#opt-kitty.paste_actions).) |
2026 synchronized outputdec-mode-2026-synchronized-output | SupportedImported · unverified | Unversioned | Yes |
Grapheme cluster mode (2027)dec-mode-2027-grapheme-clusters | UnsupportedImported · unverified | Unversioned | No ([kitty text sizing protocol](https://sw.kovidgoyal.net/kitty/text-sizing-protocol/), introduction.); Clusters unconditionally; the author rejects the mode and relies on the [text sizing protocol](sizing.md) |
2031 color scheme reportsdec-mode-2031-color-scheme-reports | SupportedImported · unverified | Unversioned | Yes | Also recorded: Yes (0.35)? |
2048 in band resizedec-mode-2048-in-band-resize | SupportedImported · unverified | Unversioned | Yes |
win32-input-modedec-mode-9001-win32-input | UnknownImported · unverified | Unversioned | ?; Not a Unix protocol; not documented by any of them |
DEC Special Graphicsesc-dec-special-graphics | SupportedImported · unverified | Unversioned | Yes (kitty documents UTF-8-only operation; see [kitty FAQ](https://sw.kovidgoyal.net/kitty/faq/).) |
OSC 0/2 setosc-0-2-title | SupportedImported · unverified | Unversioned | Yes |
OSC 1 iconosc-1-icon-name | PartialImported · unverified | Unversioned | Partial (Accepted and parsed; no distinct icon name exists on the platform, so it is ignored or aliased to the title.) |
OSC 10/11 queryosc-10-11-default-colors-query | SupportedImported · unverified | Unversioned | Yes |
OSC 10/11 setosc-10-11-default-colors-set | SupportedImported · unverified | Unversioned | Yes |
104/110/111 resetosc-104-110-111-color-reset | SupportedImported · unverified | Unversioned | Yes |
OSC 12 cursorosc-12-cursor-color | SupportedImported · unverified | Unversioned | Yes |
aid= / cl=osc-133-aid-cl | PartialImported · unverified | Unversioned | Partial |
OSC 133 A–Dosc-133-prompt-marks | SupportedImported · unverified | Unversioned | Yes |
OSC 21osc-21-kitty-colors | SupportedImported · unverified | Unversioned | Yes |
OSC 22 pointerosc-22-pointer-shape | SupportedImported · unverified | Unversioned | Yes |
OSC 4 queryosc-4-palette-query | SupportedImported · unverified | Unversioned | Yes |
OSC 4 setosc-4-palette-set | SupportedImported · unverified | Unversioned | Yes |
OSC 52 readosc-52-read | SupportedImported · unverified | Unversioned | Yes; `clipboard_control` (default `write-clipboard write-primary read-clipboard-ask read-primary-ask`); reads prompt the user |
OSC 52 writeosc-52-write | SupportedImported · unverified | Unversioned | Yes; `clipboard_control` (default `write-clipboard write-primary read-clipboard-ask read-primary-ask`); reads prompt the user |
OSC 66osc-66-text-sizing | SupportedImported · unverified | Unversioned | Yes (0.40) | Also recorded: Yes, 0.40 ([kitty text sizing protocol](https://sw.kovidgoyal.net/kitty/text-sizing-protocol/).) |
OSC 7osc-7-working-directory | SupportedImported · unverified | Unversioned | Yes |
OSC 8 hyperlinksosc-8-hyperlinks | SupportedImported · unverified | Unversioned | Yes |
id= groupingosc-8-link-id | SupportedImported · unverified | Unversioned | Yes |
OSC 9 notifyosc-9-notification | SupportedImported · unverified | Unversioned | Yes |
OSC 99osc-99-notification | SupportedImported · unverified | Unversioned | Yes |
X11 color namesosc-x11-color-names | SupportedImported · unverified | Unversioned | Yes |
256 colorssgr-256-colors | SupportedImported · unverified | Unversioned | Yes |
Italic 3sgr-3-italic | SupportedImported · unverified | Unversioned | Yes |
Colon form 38:2sgr-38-2-colon-form | SupportedImported · unverified | Unversioned | Yes |
Truecolor 38;2sgr-38-2-truecolor | SupportedImported · unverified | Unversioned | Yes |
Underline styles 4:nsgr-4-underline-styles | SupportedImported · unverified | Unversioned | Yes |
Underline color 58sgr-58-underline-color | SupportedImported · unverified | Unversioned | Yes |
Strikethrough 9sgr-9-strikethrough | SupportedImported · unverified | Unversioned | Yes |
Ships its own shell scriptsshell-integration-scripts | SupportedImported · unverified | Unversioned | Yes |
Prompt redraw on resizeshell-prompt-resize | SupportedImported · unverified | Unversioned | Yes |
bceterminfo-bce | SupportedImported · unverified | Unversioned | Yes |
Bold-is-bright optiontext-bold-is-bright | SupportedImported · unverified | Unversioned | Yes ([kitty configuration](https://sw.kovidgoyal.net/kitty/conf/), `bold_is_bright`, `disable_ligatures`.) |
Synthesized box drawingtext-box-drawing | SupportedImported · unverified | Unversioned | Yes |
Color emoji renderingtext-color-emoji | SupportedImported · unverified | Unversioned | Yes |
Italic facetext-italic-face | SupportedImported · unverified | Unversioned | Yes |
Non-UTF-8 localestext-non-utf8-locales | UnsupportedImported · unverified | Unversioned | No (kitty documents UTF-8-only operation; see [kitty FAQ](https://sw.kovidgoyal.net/kitty/faq/).) |
Ligatures / shapingtext-shaping | SupportedImported · unverified | Unversioned | Yes ([kitty configuration](https://sw.kovidgoyal.net/kitty/conf/), `bold_is_bright`, `disable_ligatures`.) |
Bundled Unicode tablestext-unicode-tables | SupportedImported · unverified | Unversioned | Yes |
VS16 widenstext-vs16-width | SupportedImported · unverified | Unversioned | Yes ([kitty](https://github.com/kovidgoyal/kitty), `gen/wcwidth.py`.) |