What is kitty?
kitty is a terminal emulator that renders with the GPU and SIMD vector CPU instructions, with threaded rendering to keep latency down. Its distinguishing contribution is protocol work: it pioneered the terminal graphics protocol that lets programs draw images and animations in the terminal, and comprehensive keyboard handling, both of which other terminals have since adopted. It also supports ligatures, variable fonts, hyperlinks with configurable actions, programmable tabs, splits and layouts, and browsing long command output in a pager without leaving the window. It is scriptable — controllable from the shell, and extensible with Python plugins the project calls kittens. It runs on macOS, Linux and various BSDs under the GPL version 3. It suits people who live in the terminal and want it to do more.
Verified product facts
- Type
- terminal emulatorEditorially reviewed
- Platform
- macOS
- Pricing
- Open sourceDeveloper-stated
- Open source
- Yes
- Developer
- Kovid GoyalDeveloper-stated
- Relationship to Nuanyue
- Third-party product — not published by NuanyueEditorially reviewed
- Licence
- GPL-3.0
- Current version
- 0.49.2Developer-stated
- Official website
- sw.kovidgoyal.net/kitty/
Last updated . Facts marked developer-stated come from the developer and are not independently confirmed; editorially reviewed marks a Nuanyue judgement.
Key features
What kitty does at a glance.
GPU rendering
With SIMD vector CPU instructions
Threaded rendering
Aimed at minimal latency
Terminal graphics protocol
For images and animations in the terminal
Comprehensive keyboard handling, extending the terminal keyboard protocol
Ligatures, emoji
Via per-glyph font substitution, and variable fonts
Hyperlinks
With configurable actions
Programmable tabs, splits and multiple window layouts
Remote control
From scripts or the shell
Extensions
Written in Python, which the project calls kittens
Startup sessions
Define a working environment
Browsing the full scrollback or the last command's output in a pager
Editing or downloading remote files
Inside an existing SSH session
What you can use kitty for
- Running terminal applications that draw images, such as image previews in a file manager
- Working in several panes without a separate multiplexer
- Reading long command output in a pager without leaving the terminal
- Editing a file on a remote server over SSH without a separate transfer step
Who is kitty for?
- Developers who spend most of their day in a terminal and want it configurable
- Users of tools that need the graphics or keyboard protocol extensions kitty introduced
Who is kitty not for?
- Anyone who wants a terminal that behaves identically to the system default — kitty is highly configurable and expects configuration
- Users on Windows, which is not among the platforms the project lists
Limitations
- Windows is not listed among the supported platforms; the project targets macOS, Linux and various BSDs
- Configuration is file-based and extensive, so the defaults are a starting point rather than the finished setup
- The minimum macOS version is not stated in the sources Nuanyue tracks
- Apple Silicon support is not stated in the sources Nuanyue tracks
Strengths and trade-offs
What kitty does well, and what to weigh before choosing it. Points marked developer-stated come from the developer’s own material and have not been independently confirmed.
Strengths
- Renders with the GPU and SIMD vector CPU instructions, with threaded rendering aimed at minimal latency.Developer-stated
- Pioneered the terminal graphics protocol, letting programs display images and animations.Developer-stated
- Supports programmable tabs, splits and multiple window layouts without a multiplexer.Developer-stated
- Can be controlled from scripts or the shell and extended with Python plugins.Developer-stated
- Edits and downloads remote files inside an existing SSH session.Developer-stated
- Released under the GPL version 3, so the source can be inspected and modified.
Trade-offs
- There is no Windows build; the project lists macOS, Linux and various BSDs.
- Configuration is extensive and file-based, so a comfortable setup takes effort.Derived
- The minimum macOS version is not published in the sources Nuanyue tracks.Editorially reviewed
First-use experience
What the app asks of you when you set it up. Only established facts appear here; anything we could not confirm is left out rather than guessed at.
- Installation
- A macOS disk image is published with each release on the project's repository, and packages exist for Linux and the BSDs.
- First launch Derived
- Starts with usable defaults; behaviour is then changed through a configuration file rather than a settings window.
- System integration Developer-stated
- Provides its own tabs, splits and window layouts, and can be driven from the shell through a remote control protocol.
What it does
kitty renders your terminal on the GPU, using SIMD vector instructions on the CPU and threaded rendering to keep the delay between a keypress and a repaint as small as it can. That is the performance half. The other half is what it added to the terminal itself.
Protocols, not just features
kitty’s main contribution is protocol work. It pioneered the terminal graphics protocol, which lets a program draw images and animations inside the terminal instead of falling back to text, and it introduced comprehensive keyboard handling that lets a terminal distinguish key combinations that older protocols could not express. Both have since been adopted elsewhere, which is why applications can now rely on them.
Around that it adds the conveniences a modern terminal is expected to have: ligatures, emoji through per-glyph font substitution, variable fonts, hyperlinks with configurable actions, programmable tabs, splits and layouts, and a pager for reading long command output or the full scrollback without leaving the window.
Scripting and remote work
kitty can be driven from the shell through a remote control protocol, so windows, tabs and layouts can be arranged by a script. It is extended with Python plugins the project calls kittens, which cover things like choosing fonts, viewing images, or editing files that live on a remote server inside an existing SSH session — the file opens locally without a separate copy step.
kitty is licensed under the GPL version 3 and runs on macOS, Linux and various BSDs. Windows is not among the platforms the project lists.
Questions about kitty
Is kitty free?
Yes. kitty is free and open source under the GNU General Public License version 3.
What is the kitty graphics protocol?
It is a protocol the project pioneered that lets programs display images and animations inside the terminal rather than only text. Other terminals have since implemented it, which is why terminal applications can rely on it.Developer-stated
Does kitty need tmux for tabs and splits?
No. kitty provides programmable tabs, splits and multiple window layouts itself, so a multiplexer is not required for panes.Developer-stated
What are kittens?
Kittens are extensions to kitty written in Python. They add capabilities such as viewing remote files, choosing fonts, or opening command output in a pager, and can be triggered from the terminal.Developer-stated
Alternatives to kitty
Apps that could replace this one — the same job, a different trade-off.

iTerm2
Terminal emulator with split panes, search and shell integration.
Both are feature-rich terminals with tabs and splits, but iTerm2 is a Mac-only application while kitty is cross-platform with its own protocol extensions.
Similar apps
Related in purpose, but not a straight swap.
Ghostty
Native, GPU-accelerated terminal emulator built on a shared Zig core.
Both are GPU-accelerated terminals that implement the kitty graphics protocol, but Ghostty builds a native UI per platform while kitty ships its own cross-platform toolkit.
Alacritty
Minimal GPU-accelerated terminal emulator, still in beta.
Both render with the GPU and are aimed at performance, but kitty bundles tabs, splits and a graphics protocol while Alacritty deliberately leaves those to other tools.
WezTerm
GPU-accelerated terminal emulator and multiplexer written in Rust.
Both are cross-platform GPU terminals with scripting and built-in multiplexing, but kitty extends the terminal protocols themselves while WezTerm focuses on configuration and multiplexing.
Links
Sources
Facts on this page are checked against the sources below. Last updated .
- kitty — official websiteGrade B
- kitty — documentationGrade C
- kitty — source repositoryGrade D



