# Kitty

> GPU-rendered terminal written in C and Python, with its own graphics protocol, built-in tabs and splits, and scriptable 'kittens'.

Stars: 35.5k · Language: Python/C · License: GPL-3.0 · Platforms: Linux, macOS, BSD · Config: conf

Features: GPU-accelerated, cross-platform, built-in multiplexer, ligatures, inline images, configurable

- Repository: https://github.com/kovidgoyal/kitty
- Page: https://www.trmn.sh/terminals/kitty

## Install

- Binary installer (macOS and Linux): `curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin`

## Overview

kitty is a GPU-based terminal emulator for Linux, macOS and various BSDs, built for keyboard-driven users who spend most of their day in a terminal. It draws everything with OpenGL instead of a UI toolkit, uses threaded rendering and SIMD CPU instructions, and exposes its performance trade-offs as config options. The code is C for the performance-sensitive parts, Python for the UI and extensions, and Go for the command-line kittens.

Window management is built in. Each OS window holds tabs, and each tab arranges several kitty windows using one of seven layouts: Fat, Grid, Horizontal, Splits, Stack, Tall and Vertical. Splits allows arbitrary horizontal and vertical splits. Session files, loaded with `kitty --session` or the `startup_session` option, define tabs, layouts, working directories and startup programs. All configuration lives in a single `kitty.conf` file. Remote control lets scripts or the shell, even over SSH, open windows and tabs, change colors, fonts and layouts, and read text from one window or send text to another. Watchers are Python scripts that run on events such as a window being resized or closed.

kitty introduced the kitty graphics protocol and its own keyboard protocol, and it adds colored and curly underlines. It supports ligatures, variable fonts, and per-range font substitution, so powerline symbols work without patched fonts. Hyperlinks can trigger configurable open actions. Shell integration for zsh, fish and bash adds jumping between prompts and opening the last command's output in a pager, and the whole scrollback can be opened in `less` or piped to any command. Kittens are small terminal programs that extend kitty: `kitten icat` shows images, even over SSH, `kitten diff` is a diff tool with image support, and `kitten ssh` wraps `ssh` to copy kitty's terminfo to the remote host, set up shell integration there and reuse connections.

The main trade-off is the custom `xterm-kitty` terminfo entry. On hosts that lack kitty's terminfo files, programs report an unknown terminal or arrow keys stop working, which the FAQ suggests fixing with `kitten ssh`. Running commands through `sudo` or `su` can cause the same problem. Windows is not among the supported platforms.

### Installation

```bash
# via Binary installer (macOS and Linux)
curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin
```

## Alternatives

- [Windows Terminal](https://www.trmn.sh/terminals/windows-terminal.md): Microsoft's terminal for Windows that hosts PowerShell, cmd and WSL shells in tabs and panes, with GPU text rendering and JSON settings. (Windows, 105.3k stars)
- [Tabby](https://www.trmn.sh/terminals/tabby.md): Cross-platform Electron terminal with a built-in SSH, Telnet and serial client, saved connection profiles and a plugin system. (Linux/macOS/Windows, 75.3k stars)
- [Alacritty](https://www.trmn.sh/terminals/alacritty.md): Cross-platform OpenGL terminal emulator written in Rust, configured with a TOML file and leaving tabs and splits to a multiplexer like tmux. (Linux/macOS/Windows/BSD, 66.1k stars)
- [Warp](https://www.trmn.sh/terminals/warp.md): Terminal written in Rust with an IDE-style command editor, command output grouped into blocks, and built-in AI agents. (macOS/Linux/Windows, 65.8k stars)
- [Termux](https://www.trmn.sh/terminals/termux.md): Android terminal emulator and Linux environment that installs packages through its own apt repository, no root required. (Android, 64.0k stars)
- [Ghostty](https://www.trmn.sh/terminals/ghostty.md): Terminal emulator written in Zig with GPU rendering and a native UI on each platform: Swift/AppKit on macOS, GTK on Linux. (Linux/macOS, 63.3k stars)
- [Hyper](https://www.trmn.sh/terminals/hyper.md): Electron terminal built on HTML, CSS and JavaScript, themed and extended through npm plugins. (Linux/macOS/Windows, 44.8k stars)
- [WindTerm](https://www.trmn.sh/terminals/windterm.md): SSH, Telnet, serial and local shell client for Windows, macOS and Linux with tabs, split views, SFTP and tmux integration; only partly open source. (Windows/macOS/Linux, 32.6k stars)

## Guides

- [Alacritty Alternatives](https://www.trmn.sh/alternatives/alacritty): Alacritty alternatives: WezTerm, Kitty and Ghostty add tabs, splits and scripting; Windows Terminal and iTerm2 cover one OS each.
- [Ghostty Alternatives](https://www.trmn.sh/alternatives/ghostty): Ghostty alternatives: WezTerm, Kitty and Alacritty compared by platform, built-in tabs and splits, scripting, and licensing.
- [Hyper Alternatives](https://www.trmn.sh/alternatives/hyper): Hyper alternatives: WezTerm, Tabby, Kitty, Ghostty and Alacritty compared by config model, platform support and built-in features.
- [Kitty Alternatives](https://www.trmn.sh/alternatives/kitty): Kitty alternatives: WezTerm, Ghostty, and Alacritty compared by platform, multiplexing, scripting and rendering, plus Rio, Contour, iTerm2 and foot.
- [Tabby Alternatives](https://www.trmn.sh/alternatives/tabby): Tabby alternatives: WezTerm, Kitty, Windows Terminal and Wave compared by platform, scripting, SSH handling and plugin support.
- [WezTerm Alternatives](https://www.trmn.sh/alternatives/wezterm): WezTerm alternatives: Kitty, Ghostty, Alacritty, Windows Terminal and Tabby compared on multiplexing, config format and platform support.
- [Best GPU Terminal Emulators](https://www.trmn.sh/best/gpu-terminal-emulators): A practical look at GPU-accelerated terminal emulators for fast rendering, smooth scrolling, and modern terminal graphics.
- [Best Terminal Emulators](https://www.trmn.sh/best/terminal-emulators): A practical shortlist of terminal emulators for developers who care about speed, features, polish, and platform fit.

---

Canonical: https://www.trmn.sh/terminals/kitty
