Skip to main content

Kitty Documentation

Kitty is a GPU-accelerated terminal emulator that leverages your graphics hardware for fast rendering, supports multiple font sizes and images inline, and offers deep protocol-level extensibility through kittens.

Who This Track Is For
  • Operators managing remote servers who need a modern, fast terminal with SSH integration
  • Developers working with multiple terminals, who want inline images, GPU rendering, and rich kitty protocol features
  • DevOps engineers automating terminal workflows with kittens and remote control
  • Users looking to replace xterm, GNOME Terminal, or Alacritty with a feature-rich alternative
What You Will Build
  • A fully customized kitty configuration with your preferred fonts, colors, and key bindings
  • Multi-window and multi-tab workflows with advanced tiling layouts
  • Remote SSH workflows with automatic terminfo management
  • Scripted terminal automation using remote control and kittens
How To Use This Track
  • Follow the modules in order (1 to 11). Each lesson includes real commands and exercises.
  • Start by installing kitty on your local machine. Most examples work out of the box.
  • Copy/adapt the config examples to your own kitty.conf as you progress.

Learning Path

ModuleFocusLessons
1. IntroductionFundamentals and mental model3
2. Configurationkitty.conf and customization4
3. Windows and TabsLayout and splitting3
4. Navigation and ShortcutsKey bindings and navigation3
5. Remote ControlScripting and remote control3
6. SSH IntegrationSSH workflows and terminfo3
7. KittensExtending kitty with kittens4
8. Shell IntegrationMarks, scrollback, and cloning3
9. Real-World WorkflowsDevOps and server admin patterns3
10. TroubleshootingRoot-cause debugging3
11. CheatsheetFast operational reference3

Core Architecture

How Kitty Works

Terminal / SSH ──▶ Kitty Client (frontend)


Kitty Server (backend)

┌─────┴─────┐
▼ ▼
GPU Renderer Event Loop
│ │
┌─────┴─────┐ ┌────┴────┐
│ Window │ │ Kitten │
│ Manager │ │ System │
└─────┬─────┘ └─────────┘

┌─────┴─────┐
▼ ▼
Tab 1 Tab 2
│ │
┌────┴────┐ ┌──┴──┐
│ Window │ │ OS │
│ 1: vim │ │ WDW │
│ 2: bash │ └─────┘
└─────────┘

GPU Rendering Pipeline

CPU (pty output) ──▶ Kitty Parser ──▶ Cell Buffer

GPU Upload


OpenGL / Vulkan Renderer


Display

Quick Start

first-kitty-run.sh
# 1) Install kitty
curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin

# 2) Start kitty
kitty

# 3) Open a new tab
# Press: Ctrl+Shift+t

# 4) Split the window vertically
# Press: Ctrl+Shift+Enter

# 5) Navigate between windows
# Press: Ctrl+Shift+arrows

# 6) Open the command palette
# Press: Ctrl+Shift+p
note

The default kitty prefix key is Ctrl+Shift. Most shortcuts start with this combination.

Kitty vs Alternatives

ToolUse CaseKey Advantage
kittyGPU-accelerated, feature-rich terminalInline images, kittens, protocol extensions
AlacrittyGPU-accelerated minimal terminalSimpler config, no tabs built-in
xtermLegacy compatibilityAvailable everywhere
GNOME TerminalDesktop default on LinuxSimple, integrated
KonsoleKDE defaultSplit views, profiles
iTerm2macOS power userDeep macOS integration

Prerequisites

  • Linux shell basics (ls, cd, paths)
  • A desktop environment capable of running a GPU-accelerated terminal
  • Basic understanding of terminal emulators and configuration files

Success Criteria

By the end of this track, you can:

  • Install and configure kitty with a custom kitty.conf
  • Navigate multiple windows and tabs efficiently using keyboard shortcuts
  • Use kittens to extend kitty's functionality (icat, diff, themes, etc.)
  • Integrate kitty with SSH for remote terminal sessions
  • Script and automate kitty using remote control commands

Next Step

Start with What is Kitty.