Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
kitty
Logo
  • Quickstart
    • Install kitty
      • Binary install
      • Manually installing
      • Desktop integration on Linux
      • Customizing the installation
      • Uninstalling
      • Building from source
    • Build from source
      • Building in debug mode
        • Building the documentation
        • Dependencies
        • Build and run from source with Nix
        • Notes for Linux/macOS packagers
        • Cross compilation
  • Overview
    • Design philosophy
    • Tabs and Windows
      • Scrolling
      • Tabs
      • Windows
    • Other keyboard shortcuts
    • Configuring kitty
      • kitty.conf
        • Fonts
        • Text cursor customization
        • Scrollback
        • Mouse
          • Mouse actions
        • Performance tuning
        • Terminal bell
        • Window layout
        • Tab bar
        • Color scheme
          • The color table
        • Advanced
        • OS specific tweaks
        • Keyboard shortcuts
          • Clipboard
          • Scrolling
          • Window management
          • Tab management
          • Layout management
          • Font sizes
          • Select and act on visible text
          • Miscellaneous
        • Sample kitty.conf
        • All mappable actions
          • Mappable actions
          • Copy/paste
          • Debugging
          • Layouts
          • Marks
          • Miscellaneous
          • Mouse actions
          • Scrolling
          • Tab management
          • Window management
    • Layouts
      • Arrange windows
      • The Stack Layout
      • The Tall Layout
      • The Fat Layout
      • The Grid Layout
      • The Splits Layout
      • The Horizontal Layout
      • The Vertical Layout
      • Resizing windows
    • Extending kitty
      • Extend with kittens
        • icat
          • Source code for icat
          • Command Line Interface
            • Options
        • kitty-diff
          • Major Features
          • Installation
          • Usage
          • Keyboard controls
          • Integrating with git
          • Why does this work only in kitty?
          • Configuration
          • Diffing
          • Colors
          • Keyboard shortcuts
          • Source code for diff
          • Command Line Interface
            • Options
          • Sample diff.conf
        • Unicode input
          • Source code for unicode_input
          • Command Line Interface
            • Options
        • Changing kitty colors
          • How it works
          • Change color themes automatically when the OS switches between light and dark
          • Using your own themes
          • Contributing new themes
          • Changing the theme non-interactively
          • Source code for themes
          • Command Line Interface
            • Options
        • Changing kitty fonts
          • The font specification syntax
        • Hints
          • Completely customizing the matching and actions of the kitten
          • Source code for hints
          • Command Line Interface
            • Options
        • Make a Quake like quick access terminal
          • Configuration
          • Window appearance
          • Source code for quick_access_terminal
          • Command Line Interface
            • Options
          • Sample quick-access-terminal.conf
        • Draw a GPU accelerated dock panel on your desktop
          • Controlling panels via remote control
            • Source code for panel
            • Command Line Interface
          • Options
          • How the screenshots were generated
          • Compatibility with various platforms
        • Remote files
        • Hyperlinked grep
        • Transfer files
          • Basic usage
          • Avoiding the confirmation prompt
          • Delta transfers
          • Source code for transfer
          • Command Line Interface
            • Options
        • Truly convenient SSH
          • A real world example
          • How it works
          • Host bootstrap configuration
          • Login shell environment
          • SSH configuration
          • The copy command
            • Options
          • Copying terminfo files manually
        • Custom kittens
          • kitty API to use with kittens
          • Passing arguments to kittens
          • Passing the contents of the screen to the kitten
          • Using kittens to script kitty, without any terminal UI
          • Sending mouse events
          • Using remote control inside the main() kitten function
          • Debugging kittens
          • Adding options to kittens
          • Developing builtin kittens for inclusion with kitty
          • Kittens created by kitty users
        • broadcast
          • Source code for broadcast
          • Command Line Interface
            • Options
        • Selecting files, fast
          • Creating shortcuts to favorite/frequently used directories
          • Selecting multiple files
          • Hidden and ignored files
          • Selecting non-existent files (save file names)
          • Configuration
          • Filesystem scanning
          • Keyboard shortcuts
          • Source code for choose_files
          • Command Line Interface
            • Options
        • clipboard
          • Source code for clipboard
          • Command Line Interface
            • Options
        • Using terminal programs to provide Linux desktop components
          • How to install
          • How it works
          • Troubleshooting
        • Developing builtin kittens
          • Getting started
            • Template for main.py
            • Template for main.go
            • Edit tools/cmd/tool/main.go
        • notify
          • Source code for notify
          • Command Line Interface
            • Options
        • Query terminal
          • Source code for query_terminal
          • Command Line Interface
            • Options
    • Remote control
      • Control kitty from scripts
      • Tutorial
      • Remote control via a socket
      • The builtin kitty shell
      • Allowing only some windows to control kitty
      • Fine grained permissions for remote control
        • Customizing authorization with your own program
      • Mapping key presses to remote control commands
      • Broadcasting what you type to all kitty windows
      • The remote control protocol
      • Matching windows and tabs
        • Matching windows
        • Matching tabs
          • The kitty remote control protocol
            • Encrypted communication
            • Async and streaming requests
            • action
            • close-tab
            • close-window
            • create-marker
            • detach-tab
            • detach-window
            • disable-ligatures
            • env
            • focus-tab
            • focus-window
            • get-colors
            • get-text
            • goto-layout
            • kitten
            • last-used-layout
            • launch
            • load-config
            • ls
            • new-window
            • remove-marker
            • resize-os-window
            • resize-window
            • run
            • scroll-window
            • select-window
            • send-key
            • send-text
            • set-background-image
            • set-background-opacity
            • set-colors
            • set-enabled-layouts
            • set-font-size
            • set-spacing
            • set-tab-color
            • set-tab-title
            • set-user-vars
            • set-window-logo
            • set-window-title
            • signal-child
      • kitten @
        • Options
      • kitten @ action
        • Options
      • kitten @ close-tab
        • Options
      • kitten @ close-window
        • Options
      • kitten @ create-marker
        • Options
      • kitten @ detach-tab
        • Options
      • kitten @ detach-window
        • Options
      • kitten @ disable-ligatures
        • Options
      • kitten @ env
      • kitten @ focus-tab
        • Options
      • kitten @ focus-window
        • Options
      • kitten @ get-colors
        • Options
      • kitten @ get-text
        • Options
      • kitten @ goto-layout
        • Options
      • kitten @ kitten
        • Options
      • kitten @ last-used-layout
        • Options
      • kitten @ launch
        • Options
      • kitten @ load-config
        • Options
      • kitten @ ls
        • Options
      • kitten @ new-window
        • Options
      • kitten @ remove-marker
        • Options
      • kitten @ resize-os-window
        • Options
      • kitten @ resize-window
        • Options
      • kitten @ run
        • Options
      • kitten @ scroll-window
        • Options
      • kitten @ select-window
        • Options
      • kitten @ send-key
        • Options
      • kitten @ send-text
        • Options
      • kitten @ set-background-image
        • Options
      • kitten @ set-background-opacity
        • Options
      • kitten @ set-colors
        • Options
      • kitten @ set-enabled-layouts
        • Options
      • kitten @ set-font-size
        • Options
      • kitten @ set-spacing
        • Options
      • kitten @ set-tab-color
        • Options
      • kitten @ set-tab-title
        • Options
      • kitten @ set-user-vars
        • Options
      • kitten @ set-window-logo
        • Options
      • kitten @ set-window-title
        • Options
      • kitten @ signal-child
        • Options
    • Startup Sessions
    • Creating tabs/windows
      • The launch command
      • The piping environment
      • Special arguments
      • Watching launched windows
      • Finding executables
      • Syntax reference
        • Options
    • Mouse features
      • Scripting the mouse click
        • Matching criteria
        • Scripting the opening of files with kitty
    • Font control
    • The scrollback buffer
    • Integration with shells
      • Shell integration
      • Features
      • Configuration
        • More ways to browse command output
      • How it works
      • Shell integration over SSH
      • Shell integration in a container
      • Clone the current shell into a new window
      • Edit files in new kitty windows even over SSH
      • Using shell integration in sub-shells, containers, etc.
      • Manual shell integration
      • Integration with other shells
      • Notes for shell developers
    • Multiple copy/paste buffers
    • Marks
      • Mark text on screen
      • Examples
      • Creating markers dynamically
      • Scrolling to marks
      • The full syntax for creating marks
      • Arbitrary marker functions
  • Frequently Asked Questions
    • Some special symbols are rendered small/truncated in kitty?
    • Using a color theme with a background color does not work well in vim?
    • I get errors about the terminal being unknown or opening the terminal failing or functional keys like arrow keys don’t work?
    • I cannot use the key combination X in program Y?
    • How do I change the colors in a running kitty instance?
    • How do I specify command line options for kitty on macOS?
    • I catted a binary file and now kitty is hung?
    • kitty is not able to use my favorite font?
    • How can I assign a single global shortcut to bring up the kitty terminal?
    • I do not like the kitty icon!
    • How do I map key presses in kitty to different keys in the terminal program?
    • How do I open a new window or tab with the same working directory as the current window?
    • Things behave differently when running kitty from system launcher vs. from another terminal?
    • I am using tmux/zellij and have a problem
    • I opened and closed a lot of windows/tabs and top shows kitty’s memory usage is very high?
    • Why does kitty sometimes start slowly on my Linux system?
  • Support kitty development ❤️
  • Performance
    • Benchmarks
      • Keyboard to screen latency
      • Throughput
      • Energy usage
    • Instrumenting kitty
  • Changelog
    • Recent major new features
      • Access kitty with a single keypress [0.42]
      • Multiple sized text [0.40]
      • Cursor trails [0.37]
      • Variable font support [0.36]
      • Desktop notifications [0.36]
      • Wayland goodies [0.34]
      • Cheetah speed 🐆 [0.33]
    • Detailed list of changes
      • 0.42.2 [2025-07-16]
      • 0.42.1 [2025-05-17]
      • 0.42.0 [2025-05-11]
      • 0.41.1 [2025-04-03]
      • 0.41.0 [2025-03-29]
      • 0.40.1 [2025-03-18]
      • 0.40.0 [2025-03-08]
      • 0.39.1 [2025-02-01]
      • 0.39.0 [2025-01-16]
      • 0.38.1 [2024-12-26]
      • 0.38.0 [2024-12-15]
      • 0.37.0 [2024-10-30]
      • 0.36.4 [2024-09-27]
      • 0.36.3 [2024-09-25]
      • 0.36.2 [2024-09-06]
      • 0.36.1 [2024-08-24]
      • 0.36.0 [2024-08-17]
      • 0.35.2 [2024-06-22]
      • 0.35.1 [2024-05-31]
      • 0.35.0 [2024-05-25]
      • 0.34.1 [2024-04-19]
      • 0.34.0 [2024-04-15]
      • 0.33.1 [2024-03-21]
      • 0.33.0 [2024-03-12]
      • 0.32.2 [2024-02-12]
      • 0.32.1 [2024-01-26]
      • 0.32.0 [2024-01-19]
      • 0.31.0 [2023-11-08]
      • 0.30.1 [2023-10-05]
      • 0.30.0 [2023-09-18]
      • 0.29.2 [2023-07-27]
      • 0.29.1 [2023-07-17]
      • 0.29.0 [2023-07-10]
      • 0.28.1 [2023-04-21]
      • 0.28.0 [2023-04-15]
      • 0.27.1 [2023-02-07]
      • 0.27.0 [2023-01-31]
      • 0.26.5 [2022-11-07]
      • 0.26.4 [2022-10-17]
      • 0.26.3 [2022-09-22]
      • 0.26.2 [2022-09-05]
      • 0.26.1 [2022-08-30]
      • 0.26.0 [2022-08-29]
      • 0.25.2 [2022-06-07]
      • 0.25.1 [2022-05-26]
      • 0.25.0 [2022-04-11]
      • 0.24.4 [2022-03-03]
      • 0.24.3 [2022-02-28]
      • 0.24.2 [2022-02-03]
      • 0.24.1 [2022-01-06]
      • 0.24.0 [2022-01-04]
      • 0.23.1 [2021-08-17]
      • 0.23.0 [2021-08-16]
      • 0.22.2 [2021-08-02]
      • 0.22.1 [2021-07-31]
      • 0.22.0 [2021-07-26]
      • 0.21.2 [2021-06-28]
      • 0.21.1 [2021-06-14]
      • 0.21.0 [2021-06-12]
      • 0.20.3 [2021-05-06]
      • 0.20.2 [2021-04-28]
      • 0.20.1 [2021-04-19]
      • 0.20.0 [2021-04-19]
      • 0.19.3 [2020-12-19]
      • 0.19.2 [2020-11-13]
      • 0.19.1 [2020-10-06]
      • 0.19.0 [2020-10-04]
      • 0.18.3 [2020-08-11]
      • 0.18.2 [2020-07-28]
      • 0.18.1 [2020-06-23]
      • 0.18.0 [2020-06-20]
      • 0.17.4 [2020-05-09]
      • 0.17.3 [2020-04-23]
      • 0.17.2 [2020-03-29]
      • 0.17.1 [2020-03-24]
      • 0.17.0 [2020-03-24]
      • 0.16.0 [2020-01-28]
      • 0.15.1 [2019-12-21]
      • 0.15.0 [2019-11-27]
      • 0.14.6 [2019-09-25]
      • 0.14.5 [2019-09-23]
      • 0.14.4 [2019-08-31]
      • 0.14.3 [2019-07-29]
      • 0.14.2 [2019-06-09]
      • 0.14.1 [2019-05-29]
      • 0.14.0 [2019-05-24]
      • 0.13.3 [2019-01-19]
      • 0.13.2 [2019-01-04]
      • 0.13.1 [2018-12-06]
      • 0.13.0 [2018-12-05]
      • 0.12.3 [2018-09-29]
      • 0.12.2 [2018-09-24]
      • 0.12.1 [2018-09-08]
      • 0.12.0 [2018-09-01]
      • 0.11.3 [2018-07-10]
      • 0.11.2 [2018-07-01]
      • 0.11.1 [2018-06-17]
      • 0.11.0 [2018-06-12]
      • 0.10.1 [2018-05-24]
      • 0.10.0 [2018-05-21]
      • 0.9.1 [2018-05-05]
      • 0.9.0 [2018-04-15]
      • 0.8.4 [2018-03-31]
      • 0.8.3 [2018-03-29]
      • 0.8.2 [2018-03-17]
      • 0.8.1 [2018-03-09]
      • 0.8.0 [2018-02-24]
      • 0.7.1 [2018-01-31]
      • 0.7.0 [2018-01-24]
      • 0.6.1 [2017-12-28]
      • 0.6.0 [2017-12-18]
      • 0.5.1 [2017-12-01]
      • 0.5.0 [2017-11-19]
      • 0.4.2 [2017-10-23]
      • 0.4.0 [2017-10-22]
  • Integrations with other tools
    • Image and document viewers
    • System and data visualisation tools
    • Editor integration
    • Scrollback manipulation
    • Desktop panels
    • Miscellaneous
  • Terminal protocol extensions
    • Colored and styled underlines
    • Terminal graphics protocol
      • Getting the window size
      • A minimal example
      • The graphics escape code
      • Transferring pixel data
        • RGB and RGBA data
        • PNG data
        • Compression
        • The transmission medium
          • Local client
          • Remote client
        • Querying support and available transmission mediums
      • Display images on screen
        • Controlling displayed image layout
        • Unicode placeholders
        • Relative placements
      • Deleting images
      • Suppressing responses from the terminal
      • Requesting image ids from the terminal
      • Animation
        • Transferring animation frame data
        • Controlling animations
        • Composing animation frames
      • Image persistence and storage quotas
      • Control data reference
      • Interaction with other terminal actions
    • Comprehensive keyboard handling in terminals
      • Quickstart
      • An overview
        • Key codes
        • Modifiers
        • Event types
        • Text as code points
        • Non-Unicode keys
      • Progressive enhancement
        • Disambiguate escape codes
        • Report event types
        • Report alternate keys
        • Report all keys as escape codes
        • Report associated text
      • Detection of support for this protocol
      • Legacy key event encoding
        • Legacy functional keys
        • Legacy text keys
      • Functional key definitions
      • Legacy ctrl mapping of ASCII keys
      • Bugs in fixterms
      • Why xterm’s modifyOtherKeys should not be used
    • The text sizing protocol
      • Quickstart
      • The escape code
      • How it works
        • Fractional scaling
      • Fixing the character width issue for the terminal ecosystem
      • Wrapping and overwriting behavior
      • Detecting if the terminal supports this protocol
      • Interaction with other terminal controls
        • Cursor movement
        • Editing controls
      • The algorithm for splitting text into cells
        • Unicode variation selectors
    • File transfer over the TTY
      • Overall design
        • Sending files to the computer running the terminal emulator
        • Receiving files from the computer running terminal emulator
      • Canceling a session
      • Quieting responses from the terminal
      • File metadata
      • Symbolic and hard links
        • Sending links to the terminal emulator
        • Receiving links from the terminal emulator
      • Transmitting binary deltas
        • Sending to the terminal emulator
        • Receiving from the terminal emulator
        • The format of signatures and deltas
      • Compression
      • Bypassing explicit user authorization
      • Encoding of transfer commands as escape codes
    • Desktop notifications
      • Allowing users to filter notifications
      • Being informed when user activates the notification
      • Being informed when a notification is closed
      • Updating or closing an existing notification
      • Automatically expiring notifications
      • Adding icons to notifications
        • Adding icons by transmitting icon data
      • Adding buttons to the notification
      • Playing a sound with notifications
      • Querying for support
      • Specification of all keys used in the protocol
      • Base64
      • Escape code safe UTF-8
      • Identifier
    • Mouse pointer shapes
      • Setting the pointer shape
      • Pushing and popping shapes onto the stack
      • Querying support
      • Interaction with other terminal features
      • Pointer shape names
      • Legacy xterm compatibility
    • Unscrolling the screen
    • Color control
      • Saving and restoring colors
      • Setting and querying colors
        • Querying current color values
        • Setting color values
        • Color value encoding
    • Setting text styles/colors in arbitrary regions of the screen
    • Copying all data types to the clipboard
      • Reading data from the system clipboard
      • Writing data to the system clipboard
      • Avoiding repeated permission prompts
      • Support for terminal multiplexers
    • Miscellaneous protocol extensions
      • Simple save/restore of all terminal modes
      • Independent control of bold and faint SGR properties
      • Reporting when the mouse leaves the window
      • kitty specific private escape codes
  • Press mentions of kitty
    • Video reviews
Back to top

Press mentions of kitty¶

Python Bytes 272 (Feb 2022)

A podcast demoing some of kitty’s coolness

Console #88 (Jan 2022)

An interview with Kovid about kitty

Video reviews¶

Review (Jan 2021)

A kitty review by distrotube

Review (Dec 2020)

A kitty review/intro by TechHut

Previous
Miscellaneous protocol extensions
Copyright © 2025, Kovid Goyal
Made with Furo
On this page
  • Press mentions of kitty
    • Video reviews