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
        • clipboard
          • Source code for clipboard
          • Command Line Interface
            • Options
        • 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 on macOS
    • 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.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
      • Support for terminal multiplexers
    • Miscellaneous protocol extensions
      • Simple save/restore of all terminal modes
      • Independent control of bold and faint SGR properties
      • kitty specific private escape codes
  • Press mentions of kitty
    • Video reviews
Back to top

Screenshots

Screenshot, showing the kitty floating quick access terminal above the background which is the program btop, running inside kitty, on macOS

macOS¶

Screenshot, showing the kitty floating quick access terminal above the background which is the program btop, running inside kitty, on Hyprland in Linux

Linux¶

Screenshot, showing a sample panel

A sample panel on Linux¶

How the screenshots were generated.

Copyright © 2025, Kovid Goyal
Made with Furo