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.confas you progress.
Learning Path
| Module | Focus | Lessons |
|---|---|---|
| 1. Introduction | Fundamentals and mental model | 3 |
| 2. Configuration | kitty.conf and customization | 4 |
| 3. Windows and Tabs | Layout and splitting | 3 |
| 4. Navigation and Shortcuts | Key bindings and navigation | 3 |
| 5. Remote Control | Scripting and remote control | 3 |
| 6. SSH Integration | SSH workflows and terminfo | 3 |
| 7. Kittens | Extending kitty with kittens | 4 |
| 8. Shell Integration | Marks, scrollback, and cloning | 3 |
| 9. Real-World Workflows | DevOps and server admin patterns | 3 |
| 10. Troubleshooting | Root-cause debugging | 3 |
| 11. Cheatsheet | Fast operational reference | 3 |
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
| Tool | Use Case | Key Advantage |
|---|---|---|
| kitty | GPU-accelerated, feature-rich terminal | Inline images, kittens, protocol extensions |
| Alacritty | GPU-accelerated minimal terminal | Simpler config, no tabs built-in |
| xterm | Legacy compatibility | Available everywhere |
| GNOME Terminal | Desktop default on Linux | Simple, integrated |
| Konsole | KDE default | Split views, profiles |
| iTerm2 | macOS power user | Deep 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.