Skip to content

Kitty

GPU-accelerated terminal emulator. Fast rendering, native tabs/splits, image protocol, ligature support, keyboard-driven. Written in C and Python. No Electron bloat. Renders everything on GPU for instant response.

Why Kitty

GPU rendering (smooth scrolling), built-in tabs/splits (no tmux needed), image display, font ligatures, scriptable with Python, cross-platform.


Quick Start

macOS:

brew install --cask kitty

Ubuntu/Debian:

curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin

# Create desktop entry
ln -sf ~/.local/kitty.app/bin/kitty ~/.local/bin/
cp ~/.local/kitty.app/share/applications/kitty.desktop ~/.local/share/applications/

Arch Linux:

sudo pacman -S kitty

From source:

git clone https://github.com/kovidgoyal/kitty
cd kitty
make

Verify:

kitty --version
# kitty 0.32.0

Launch:

# Default
kitty

# With specific config
kitty --config /path/to/kitty.conf

# Single instance mode
kitty --single-instance

# With command
kitty nvim

Key bindings (default): - Ctrl+Shift+Enter - New window - Ctrl+Shift+T - New tab - Ctrl+Shift+Q - Close window/tab - Ctrl+Shift+Right/Left - Next/previous tab - Ctrl+Shift+[ - Previous window - Ctrl+Shift+] - Next window - Ctrl+Shift+F - Search scrollback - Ctrl+Shift+L - Layout selector

Config location: ~/.config/kitty/kitty.conf

Basic config:

# ============================================
# KITTY CONFIGURATION
# ============================================

# Font
font_family      JetBrains Mono
bold_font        auto
italic_font      auto
bold_italic_font auto
font_size        13.0

# Font features
disable_ligatures never

# Cursor
cursor_shape block
cursor_blink_interval 0

# Scrollback
scrollback_lines 10000

# Mouse
mouse_hide_wait 3.0
url_color #0087bd
url_style curly

# Window
remember_window_size  yes
initial_window_width  1200
initial_window_height 800
window_padding_width  5

# Tabs
tab_bar_edge top
tab_bar_style powerline
tab_powerline_style slanted

# Terminal bell
enable_audio_bell no
visual_bell_duration 0.0

# Color scheme (Tokyo Night Storm)
background #24283b
foreground #c0caf5
selection_background #2e3c64
selection_foreground #c0caf5
cursor #c0caf5
cursor_text_color #1a1b26

# Black
color0 #1d202f
color8 #4e5173

# Red
color1 #f7768e
color9 #f7768e

# Green
color2  #9ece6a
color10 #9ece6a

# Yellow
color3  #e0af68
color11 #e0af68

# Blue
color4  #7aa2f7
color12 #7aa2f7

# Magenta
color5  #bb9af7
color13 #bb9af7

# Cyan
color6  #7dcfff
color14 #7dcfff

# White
color7  #a9b1d6
color15 #c0caf5

# ============================================
# KEYBINDINGS
# ============================================

# Window management
map ctrl+shift+enter new_window
map ctrl+shift+w close_window
map ctrl+shift+] next_window
map ctrl+shift+[ previous_window

# Tab management
map ctrl+shift+t new_tab
map ctrl+shift+q close_tab
map ctrl+shift+right next_tab
map ctrl+shift+left previous_tab
map ctrl+shift+. move_tab_forward
map ctrl+shift+, move_tab_backward

# Layouts
map ctrl+shift+l next_layout
map ctrl+shift+alt+t goto_layout tall
map ctrl+shift+alt+s goto_layout stack

# Font size
map ctrl+shift+equal change_font_size all +1.0
map ctrl+shift+minus change_font_size all -1.0
map ctrl+shift+0 change_font_size all 0

# Scrollback
map ctrl+shift+k show_scrollback

# Search
map ctrl+shift+f show_scrollback

# Copy/Paste
map ctrl+shift+c copy_to_clipboard
map ctrl+shift+v paste_from_clipboard

# ============================================
# PERFORMANCE
# ============================================

repaint_delay 10
input_delay 3
sync_to_monitor yes


Themes & Color Schemes

# Tokyo Night
# https://github.com/davidmathers/tokyo-night-kitty-theme

# Dracula
# https://draculatheme.com/kitty

# Catppuccin
# https://github.com/catppuccin/kitty

# Nord
# https://www.nordtheme.com/ports/kitty

# Gruvbox
# https://github.com/morhetz/gruvbox

Install Theme

# Clone themes repository
git clone --depth 1 https://github.com/dexpota/kitty-themes.git ~/.config/kitty/kitty-themes

# Link theme
ln -sf ~/.config/kitty/kitty-themes/themes/tokyo_night.conf ~/.config/kitty/theme.conf

# Include in kitty.conf
echo "include ./theme.conf" >> ~/.config/kitty/kitty.conf

Switch Themes

# Create theme switcher alias in .zshrc
alias kitty-theme='kitty +kitten themes'

# Run theme browser
kitty-theme

Kittens (Plugins)

Built-in kittens:

# Diff files with image support
kitty +kitten diff file1.txt file2.txt

# Browse themes
kitty +kitten themes

# Show unicode input
kitty +kitten unicode_input

# Show clipboard history
kitty +kitten clipboard

# SSH with shell integration
kitty +kitten ssh user@host

# Transfer files over SSH
kitty +kitten transfer file.txt user@host:/path/

Custom kitten example (~/.config/kitty/search.py):

from kitty.fast_data_types import send_text_to_child
from kittens.tui.handler import result_handler

def main(args):
    pass

@result_handler(no_ui=True)
def handle_result(args, answer, target_window_id, boss):
    search_term = ' '.join(args[1:])
    url = f'https://www.google.com/search?q={search_term}'
    send_text_to_child(target_window_id, f'open {url}\n')

Layouts

Built-in layouts:

# Stack - One window fills screen
map ctrl+shift+alt+s goto_layout stack

# Tall - One window left, others stacked right
map ctrl+shift+alt+t goto_layout tall

# Fat - One window top, others stacked bottom
map ctrl+shift+alt+f goto_layout fat

# Grid - All windows in grid
map ctrl+shift+alt+g goto_layout grid

# Horizontal - All windows side by side
map ctrl+shift+alt+h goto_layout horizontal

# Vertical - All windows stacked vertically
map ctrl+shift+alt+v goto_layout vertical

# Splits - Custom splits
map ctrl+shift+alt+\ goto_layout splits

Custom layout example:

# In kitty.conf
enabled_layouts splits:split_axis=horizontal

# Create splits with commands
# Ctrl+Shift+Enter creates split in current layout

Image Display

Display images in terminal:

# Using built-in icat kitten
kitty +kitten icat image.png

# With size limit
kitty +kitten icat --align=left image.png

# Clear images
kitty +kitten icat --clear

# In Python scripts
from kitty.images import ImageManager
im = ImageManager()
im.display('/path/to/image.png')

Use cases: - Preview images in file managers (ranger, lf) - Display plots in data science workflows - Show diagrams in documentation - Render graphics in TUI applications


Shell Integration

Automatic integration (ZSH example):

# Add to .zshrc
if test -n "$KITTY_INSTALLATION_DIR"; then
    export KITTY_SHELL_INTEGRATION="enabled"
    autoload -Uz -- "$KITTY_INSTALLATION_DIR"/shell-integration/zsh/kitty-integration
    kitty-integration
    unfunction kitty-integration
fi

Features: - Jump between prompts with keyboard shortcuts - Clone terminal state in new windows - Extended keyboard protocol - Automatically set window title


Pro Tips

  • Use GPU rendering - Enable sync_to_monitor yes for smoothness
  • Font ligatures - JetBrains Mono, Fira Code work great
  • Single instance mode - kitty --single-instance opens new tabs in existing window
  • SSH integration - kitty +kitten ssh preserves shell integration
  • Scrollback search - Ctrl+Shift+F with regex support
  • Detach mode - Use --session flag to save/restore window layouts
  • Remote control - Enable allow_remote_control yes for scripting
  • Custom kittens - Write Python scripts for custom functionality
  • Image protocol - Unique to Kitty, works in Neovim with image.nvim
  • Use hints kitten - Ctrl+Shift+E to hint at URLs/paths on screen

Common Gotchas

  • Font not found - Install Nerd Fonts or JetBrains Mono
  • Ligatures not working - Enable disable_ligatures never
  • Clipboard broken - Install xclip or xsel on Linux
  • Slow startup - Disable shell_integration if not needed
  • Images not showing - Check terminal size and image dimensions
  • SSH images broken - Use kitty +kitten ssh instead of plain ssh
  • Colors wrong - Set TERM=xterm-kitty in shell config
  • Tabs not showing - Enable tab_bar_edge top or bottom
  • Key bindings conflict - Remap in kitty.conf, prefix with ctrl+shift
  • Performance issues - Disable cursor blinking, reduce scrollback

Resources

Official: - Kitty Documentation - Complete docs - GitHub - Source code - Changelog - Version history

Themes: - Kitty Themes - 200+ themes - Tokyo Night - Popular theme - Catppuccin - Pastel theme

Integration: - Neovim Image - Display images in Neovim - Ranger - File manager with image preview - LF - Fast file manager

Communities: - r/KittyTerminal - Reddit community - GitHub Discussions - Official forum


Last Updated: 2026-02-03

Tags: kitty, terminal-emulator, terminal, gpu-accelerated, terminal, cli, productivity, development-tools