Skip to content

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, and KITTY_PUBLIC_KEY are 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.

FeatureSupportAs ofNotes and evidence
Kitty
apc-kitty-graphics
SupportedImported · unverifiedUnversionedYes | Also recorded: Yes ([kitty graphics protocol](https://sw.kovidgoyal.net/kitty/graphics-protocol/).); Reference implementation

import import

BEL urgency/visual
c0-bel-attention
SupportedImported · unverifiedUnversionedYes

import

14/16 pixel sizes
csi-14-16-t-pixel-sizes
SupportedImported · unverifiedUnversionedYes

import

18 size in cells
csi-18-t-text-size
SupportedImported · unverifiedUnversionedYes

import

ED 3 (scrollback)
csi-3-j-erase-scrollback
SupportedImported · unverifiedUnversionedYes

import

DECRQM
csi-decrqm
SupportedImported · unverifiedUnversionedYes

import

DECSTBM
csi-decstbm
SupportedImported · unverifiedUnversionedYes

import

DECSTR
csi-decstr
SupportedImported · unverifiedUnversionedYes

import

ED/EL/ECH/ICH/DCH/IL/DL
csi-editing-operations
SupportedImported · unverifiedUnversionedYes

import

modifyOtherKeys
csi-modify-other-keys
PartialImported · unverifiedUnversionedPartial; 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).)

import

CSI # P / # Q
csi-palette-stack
SupportedImported · unverifiedUnversionedYes

import

Unscroll (CSI + T)
csi-plus-t-unscroll
Supportedgit:9710eb4460ca0ab1532b0107d7066c20d7e9a66fDocumented 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.

specification source

REP
csi-rep
SupportedImported · unverifiedUnversionedYes

import

SU/SD
csi-su-sd-scroll
SupportedImported · unverifiedUnversionedYes

import

Kitty keyboard protocol
csi-u-kitty-keyboard
SupportedImported · unverifiedUnversionedYes; Origin, all flags ([Comprehensive keyboard handling in terminals](https://sw.kovidgoyal.net/kitty/keyboard-protocol/).)

import

DECRQSS
dcs-decrqss
SupportedImported · unverifiedUnversionedYes; `SP q`, `m`, `r` documented in source `?`

import

Sixel
dcs-sixel
UnsupportedImported · unverifiedUnversionedNo ([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

import import

XTGETTCAP
dcs-xtgettcap
SupportedImported · unverifiedUnversionedYes; [protocol extensions](https://sw.kovidgoyal.net/kitty/protocol-extensions/)

import

1000 mouse
dec-mode-1000-mouse
SupportedImported · unverifiedUnversionedYes

import

1002 button motion
dec-mode-1002-button-motion
SupportedImported · unverifiedUnversionedYes

import

1003 all motion
dec-mode-1003-all-motion
SupportedImported · unverifiedUnversionedYes

import

1004 focus
dec-mode-1004-focus
SupportedImported · unverifiedUnversionedYes ([kitty protocol extensions](https://sw.kovidgoyal.net/kitty/protocol-extensions/).)

import

1006 sgr mouse
dec-mode-1006-sgr-mouse
SupportedImported · unverifiedUnversionedYes

import

1015 urxvt mouse
dec-mode-1015-urxvt-mouse
SupportedImported · unverifiedUnversionedYes

import

1016 pixel mouse
dec-mode-1016-pixel-mouse
SupportedImported · unverifiedUnversionedYes

import

1049 alternate screen
dec-mode-1049-alternate-screen
SupportedImported · unverifiedUnversionedYes

import

2004 bracketed paste
dec-mode-2004-bracketed-paste
SupportedImported · unverifiedUnversionedYes | Also recorded: Yes; Sanitizes controls ([kitty, `paste_actions`](https://sw.kovidgoyal.net/kitty/conf/#opt-kitty.paste_actions).)

import import

2026 synchronized output
dec-mode-2026-synchronized-output
SupportedImported · unverifiedUnversionedYes

import

Grapheme cluster mode (2027)
dec-mode-2027-grapheme-clusters
UnsupportedImported · unverifiedUnversionedNo ([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)

import

2031 color scheme reports
dec-mode-2031-color-scheme-reports
SupportedImported · unverifiedUnversionedYes | Also recorded: Yes (0.35)?

import import

2048 in band resize
dec-mode-2048-in-band-resize
SupportedImported · unverifiedUnversionedYes

import

win32-input-mode
dec-mode-9001-win32-input
UnknownImported · unverifiedUnversioned?; Not a Unix protocol; not documented by any of them

import

DEC Special Graphics
esc-dec-special-graphics
SupportedImported · unverifiedUnversionedYes (kitty documents UTF-8-only operation; see [kitty FAQ](https://sw.kovidgoyal.net/kitty/faq/).)

import

OSC 0/2 set
osc-0-2-title
SupportedImported · unverifiedUnversionedYes

import

OSC 1 icon
osc-1-icon-name
PartialImported · unverifiedUnversionedPartial (Accepted and parsed; no distinct icon name exists on the platform, so it is ignored or aliased to the title.)

import

OSC 10/11 query
osc-10-11-default-colors-query
SupportedImported · unverifiedUnversionedYes

import

OSC 10/11 set
osc-10-11-default-colors-set
SupportedImported · unverifiedUnversionedYes

import

104/110/111 reset
osc-104-110-111-color-reset
SupportedImported · unverifiedUnversionedYes

import

OSC 12 cursor
osc-12-cursor-color
SupportedImported · unverifiedUnversionedYes

import

aid= / cl=
osc-133-aid-cl
PartialImported · unverifiedUnversionedPartial

import

OSC 133 A–D
osc-133-prompt-marks
SupportedImported · unverifiedUnversionedYes

import

OSC 21
osc-21-kitty-colors
SupportedImported · unverifiedUnversionedYes

import

OSC 22 pointer
osc-22-pointer-shape
SupportedImported · unverifiedUnversionedYes

import

OSC 4 query
osc-4-palette-query
SupportedImported · unverifiedUnversionedYes

import

OSC 4 set
osc-4-palette-set
SupportedImported · unverifiedUnversionedYes

import

OSC 52 read
osc-52-read
SupportedImported · unverifiedUnversionedYes; `clipboard_control` (default `write-clipboard write-primary read-clipboard-ask read-primary-ask`); reads prompt the user

import

OSC 52 write
osc-52-write
SupportedImported · unverifiedUnversionedYes; `clipboard_control` (default `write-clipboard write-primary read-clipboard-ask read-primary-ask`); reads prompt the user

import

OSC 66
osc-66-text-sizing
SupportedImported · unverifiedUnversionedYes (0.40) | Also recorded: Yes, 0.40 ([kitty text sizing protocol](https://sw.kovidgoyal.net/kitty/text-sizing-protocol/).)

import import

OSC 7
osc-7-working-directory
SupportedImported · unverifiedUnversionedYes

import

OSC 8 hyperlinks
osc-8-hyperlinks
SupportedImported · unverifiedUnversionedYes

import

id= grouping
osc-8-link-id
SupportedImported · unverifiedUnversionedYes

import

OSC 9 notify
osc-9-notification
SupportedImported · unverifiedUnversionedYes

import

OSC 99
osc-99-notification
SupportedImported · unverifiedUnversionedYes

import

X11 color names
osc-x11-color-names
SupportedImported · unverifiedUnversionedYes

import

256 colors
sgr-256-colors
SupportedImported · unverifiedUnversionedYes

import

Italic 3
sgr-3-italic
SupportedImported · unverifiedUnversionedYes

import

Colon form 38:2
sgr-38-2-colon-form
SupportedImported · unverifiedUnversionedYes

import

Truecolor 38;2
sgr-38-2-truecolor
SupportedImported · unverifiedUnversionedYes

import

Underline styles 4:n
sgr-4-underline-styles
SupportedImported · unverifiedUnversionedYes

import

Underline color 58
sgr-58-underline-color
SupportedImported · unverifiedUnversionedYes

import

Strikethrough 9
sgr-9-strikethrough
SupportedImported · unverifiedUnversionedYes

import

Ships its own shell scripts
shell-integration-scripts
SupportedImported · unverifiedUnversionedYes

import

Prompt redraw on resize
shell-prompt-resize
SupportedImported · unverifiedUnversionedYes

import

bce
terminfo-bce
SupportedImported · unverifiedUnversionedYes

import

Bold-is-bright option
text-bold-is-bright
SupportedImported · unverifiedUnversionedYes ([kitty configuration](https://sw.kovidgoyal.net/kitty/conf/), `bold_is_bright`, `disable_ligatures`.)

import

Synthesized box drawing
text-box-drawing
SupportedImported · unverifiedUnversionedYes

import

Color emoji rendering
text-color-emoji
SupportedImported · unverifiedUnversionedYes

import

Italic face
text-italic-face
SupportedImported · unverifiedUnversionedYes

import

Non-UTF-8 locales
text-non-utf8-locales
UnsupportedImported · unverifiedUnversionedNo (kitty documents UTF-8-only operation; see [kitty FAQ](https://sw.kovidgoyal.net/kitty/faq/).)

import

Ligatures / shaping
text-shaping
SupportedImported · unverifiedUnversionedYes ([kitty configuration](https://sw.kovidgoyal.net/kitty/conf/), `bold_is_bright`, `disable_ligatures`.)

import

Bundled Unicode tables
text-unicode-tables
SupportedImported · unverifiedUnversionedYes

import

VS16 widens
text-vs16-width
SupportedImported · unverifiedUnversionedYes ([kitty](https://github.com/kovidgoyal/kitty), `gen/wcwidth.py`.)

import