Skip to content
Back to top

# Terminal protocol extensions

kitty has extensions to the legacy terminal protocol, to enable advanced features. These are typically in the form of new or re-purposed escape codes. While these extensions are currently kitty specific, it would be nice to get some of them adopted more broadly, to push the state of terminal emulators forward.

The goal of these extensions is to be as small and unobtrusive as possible, while filling in some gaps in the existing xterm protocol. In particular, one of the goals of this specification is explicitly not to “re-imagine” the TTY. The TTY should remain what it is -- a device for efficiently processing text received as a simple byte stream. Another objective is to only move the minimum possible amount of extra functionality into the terminal program itself. This is to make it as easy to implement these protocol extensions as possible, thereby hopefully encouraging their widespread adoption.

If you wish to discuss these extensions, propose additions or changes to them, please do so by opening issues in the GitHub bug tracker.

- Colored and styled underlines
- Terminal graphics protocol
- Comprehensive keyboard handling in terminals
- The text sizing protocol
- The multiple cursors protocol
- File transfer over the TTY
- Desktop notifications
- Mouse pointer shapes
- Unscrolling the screen
- Color control
- Setting text styles/colors in arbitrary regions of the screen
- Copying all data types to the clipboard
- Miscellaneous protocol extensions