Product definition

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

Common tasks

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
Audience

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
Not a fit

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 app icon

    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.

    • Developer Tools
    • Open Source
    • v3.7.3

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.

    • Developer Tools
    • Open Source
    • v1.3.1
  • 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.

    • Developer Tools
    • Open Source
    • v0.17.0
  • 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.

    • Developer Tools
    • Open Source
    • v20240203-110809
Get it

Sources

Facts on this page are checked against the sources below. Last updated .

How Nuanyue grades sources →