# 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. ## Install Save in your project root: # kitty — Fast Feature-Rich GPU Terminal ## Quick Use ```bash # macOS brew install --cask kitty # Linux curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin ``` ```conf # ~/.config/kitty/kitty.conf font_family JetBrains Mono font_size 14.0 background #1e1e2e foreground #cdd6f4 background_opacity 0.95 enable_audio_bell no # Tabs + splits map cmd+t new_tab map cmd+shift+d launch --location=vsplit map cmd+d launch --location=hsplit ``` ## 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 ```conf # 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 ``` ```bash # 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 - GitHub: https://github.com/kovidgoyal/kitty - Website: https://sw.kovidgoyal.net/kitty - License: GPL-3.0 --- Source: https://tokrepo.com/en/workflows/a5f74c04-380a-11f1-9bc6-00163e2b0d79 Author: AI Open Source