A Wayland-native, fast, feature-rich terminal emulator written in C and Python
kitty is a terminal emulator designed for power keyboard users, though it fully supports mouse interactions as well. Its configuration is a simple, human editable, single file for easy reproducibility. Kitty is Wayland-native.
The code in kitty is designed to be simple, modular and hackable. It is written in a mix of C (for performance sensitive parts) and Python (for easy hackability of the UI). It does not depend on any large and complex UI toolkit, using only OpenGL for rendering everything. It is thus one of the few GPU-accelerated terminal emulators, along with Alacritty.
Finally, kitty is designed from the ground up to support all modern terminal features, such as Unicode, true color, bold/italic fonts, text formatting, etc. It even extends existing text formatting escape codes, to add support for features not available elsewhere, such as colored and styled (curly) underlines. One of the design goals of kitty is to be easily extensible so that new features can be added in the future with relatively little effort.
kitty should not be confused with KiTTY, a fork of PuTTY for Windows.
- Offloads rendering to the GPU for lower system load
- Uses threaded rendering for absolutely minimal latency
- Performance tradeoffs can be tuned
- Graphics, with images and animations
- Ligatures and emoji, with per glyph font substitution
- Hyperlinks, with configurable actions
- Control from scripts or the shell
- Extend with kittens using the Python language
- Use startup sessions to specify working environments
- Programmable tabs, splits and multiple layouts to manage windows
- Browse the entire history or the output from the last command comfortably in pagers and editors
- Edit or download remote files in an existing SSH session
- Terminal graphics protocol
- Comprehensive keyboard handling in terminals
- Lots more in Terminal protocol extensions
22 October 2021
Leaders and contributors
Resources and communication
|Required to use||freetype|
|Required to use||OpenGL|
|Required to build||pkg-config|
|Required to use||libpng|
|Required to use||fontconfig|
|Required to use||python >= 3.6|
|Required to use||zlib|
|Required to build||gcc or clang|
|Required to use||harfbuzz >= 2.2.0|
|Required to use||liblcms2|
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.
The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.