ConfigsApr 14, 2026·3 min read

kitty — The Fast, Feature-Rich Terminal with GPU Rendering and Image Protocol

kitty is a feature-rich GPU-accelerated terminal with tabs, splits, SSH integration, and its own terminal graphics protocol used by tools like icat and MPV. It combines the speed of Alacritty with the features of iTerm2.

Introduction

kitty is the GPU-accelerated terminal by Kovid Goyal (also creator of Calibre). It strikes a unique balance: extremely fast rendering, a rich feature set (tabs, splits, mouse clickable hyperlinks, graphics), and a scriptable remote-control protocol that lets external programs drive the terminal.

With over 32,000 GitHub stars, kitty is the default in several modern dotfiles (especially among Neovim + tmux users). The kitty image protocol (also supported by Ghostty and ~5 other terminals) lets CLI tools display images inline at full fidelity.

What kitty Does

kitty uses OpenGL for rendering, supports true color + 24-bit, and ships with built-in tabs and splits ("windows"). It can be remote-controlled via an Unix socket to spawn tabs, send text, resize panes, etc. Kittens (small Python programs) extend the terminal with features like icat (image viewer), diff, hyperlinked_grep, unicode_input.

Architecture Overview

[kitty process]
  OpenGL rendering (dedicated thread)
      |
  +----+----+
  |         |
Tabs      Remote control socket
  |         |
Splits   [Kittens: icat, diff, ssh, unicode_input, ...]
      |
[Graphics Protocol]
  base64 PNG -> inline images
  used by: icat, mpv, ranger/yazi, timg, fzf-preview, w3m-img

Self-Hosting & Configuration

# Remote control + session restore
allow_remote_control yes
listen_on unix:/tmp/kitty
enabled_layouts fat, tall, grid, stack

# Clickable hyperlinks in terminal output
allow_hyperlinks yes
scrollback_lines 10000

# SSH-aware — propagate terminfo and themes to remote
map cmd+shift+s ssh user@host
# Remote control examples
kitty @ new-window --title "logs" tail -f app.log
kitty @ send-text --match title:logs "q"
kitty @ set-colors --all background=#000000

# Display image inline
kitty +kitten icat cat.png

# Compare files with syntax highlighting
kitty +kitten diff file1 file2

Key Features

  • GPU rendering — OpenGL-backed, very fast
  • Tabs + Splits — built-in multiplexing, no tmux needed
  • Graphics protocol — inline image rendering used across CLI ecosystem
  • Remote control — script the terminal from outside
  • Kittens — Python plugins for diff, icat, ssh, unicode_input, etc.
  • SSH kitten — propagates terminfo/theme/env to remote hosts
  • Ligature & emoji — first-class fonts support
  • Cross-platform — macOS, Linux (Windows via WSL)

Comparison with Similar Tools

Feature kitty Alacritty WezTerm Ghostty iTerm2
Tabs/Splits Yes No Yes Yes Yes
Image protocol Yes (kitty) No Yes (kitty + sixel) Yes (kitty) Yes (iTerm proto + sixel)
GPU OpenGL OpenGL Metal/OpenGL Metal/OpenGL Partial
Remote control Yes No Yes Partial AppleScript
Config language kitty.conf TOML Lua ghostty.conf GUI
Best For Feature-rich hacker terminal Pure speed Scriptable Modern macOS Mac GUI users

FAQ

Q: kitty vs WezTerm? A: Both are feature-rich. WezTerm uses Lua for config + scripting (more power, more complexity). kitty has kittens (Python) and remote control via socket. Pick based on scripting style preference.

Q: Is the image protocol worth it? A: Huge upgrade for CLI file managers (yazi/ranger), media tools (mpv), and previewing images inline. If you live in the terminal, once you have it you don't go back.

Q: Does it work over SSH? A: Yes. The ssh kitten propagates kitty's terminfo and graphics protocol, so icat and other features work on remote machines.

Q: Windows support? A: Not native. Use WSL2 and run kitty inside Linux. For native Windows, WezTerm or Windows Terminal are better options.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets