Hide navigation sidebar
Hide table of contents sidebar

- Quickstart
  Toggle child pages in navigation
  - Install kitty
    Toggle child pages in navigation
    - Binary install
    - Manually installing
    - Desktop integration on Linux
    - Customizing the installation
    - Uninstalling
    - Building from source
  - Build from source
    Toggle child pages in navigation
    - Dependencies
    - Install and run from source
    - Building kitty.app on macOS from source
    - Build and run from source with Nix
    - Debug builds
    - Notes for Linux/macOS packagers
- Overview
  Toggle child pages in navigation
  - Design philosophy
  - Tabs and Windows
    Toggle child pages in navigation
    - Scrolling
    - Tabs
    - Windows
  - Other keyboard shortcuts
  - Configuring kitty
    Toggle child pages in navigation
    - kitty.conf
    - Fonts
    - Cursor customization
    - Scrollback
    - Mouse
      Toggle child pages in navigation
      - Mouse actions
    - Performance tuning
    - Terminal bell
    - Window layout
    - Tab bar
    - Color scheme
      Toggle child pages in navigation
      - The color table
    - Advanced
    - OS specific tweaks
    - Keyboard shortcuts
      Toggle child pages in navigation
      - Clipboard
      - Scrolling
      - Window management
      - Tab management
      - Layout management
      - Font sizes
      - Select and act on visible text
      - Miscellaneous
    - Sample kitty.conf
    - All mappable actions
      Toggle child pages in navigation
      - Mappable actions
      - Copy/paste
      - Debugging
      - Layouts
      - Marks
      - Miscellaneous
      - Mouse actions
      - Scrolling
      - Tab management
      - Window management
  - Layouts
    Toggle child pages in navigation
    - 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
    Toggle child pages in navigation
    - Extend with kittens
      Toggle child pages in navigation
      - icat
        Toggle child pages in navigation
        - Source code for icat
        - Command Line Interface
          Toggle child pages in navigation
          - Options
      - kitty-diff
        Toggle child pages in navigation
        - 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
          Toggle child pages in navigation
          - Options
        - Sample diff.conf
      - Unicode input
        Toggle child pages in navigation
        - Source code for unicode_input
        - Command Line Interface
          Toggle child pages in navigation
          - Options
      - Changing kitty colors
        Toggle child pages in navigation
        - How it works
        - Using your own themes
        - Contributing new themes
        - Changing the theme non-interactively
        - Source code for themes
        - Command Line Interface
          Toggle child pages in navigation
          - Options
      - Hints
        Toggle child pages in navigation
        - Completely customizing the matching and actions of the kitten
        - Source code for hints
        - Command Line Interface
          Toggle child pages in navigation
          - Options
      - Remote files
      - Hyperlinked grep
      - Transfer files
        Toggle child pages in navigation
        - Basic usage
        - Avoiding the confirmation prompt
        - Delta transfers
        - Source code for transfer
        - Command Line Interface
          Toggle child pages in navigation
          - Options
      - Truly convenient SSH
        Toggle child pages in navigation
        - A real world example
        - How it works
        - Host bootstrap configuration
        - Login shell environment
        - SSH configuration
        - The copy command
          Toggle child pages in navigation
          - Options
      - Custom kittens
        Toggle child pages in navigation
        - 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
        - Debugging kittens
        - Adding options to kittens
        - Kittens created by kitty users
      - broadcast
        Toggle child pages in navigation
        - Source code for broadcast
        - Command Line Interface
          Toggle child pages in navigation
          - Options
      - clipboard
        Toggle child pages in navigation
        - Source code for clipboard
        - Command Line Interface
          Toggle child pages in navigation
          - Options
      - Draw a GPU accelerated dock panel on your desktop
        Toggle child pages in navigation
        - Source code for panel
        - Command Line Interface
          Toggle child pages in navigation
          - Options
      - Query terminal
        Toggle child pages in navigation
        - Source code for query_terminal
        - Command Line Interface
          Toggle child pages in navigation
          - Options
  - Remote control
    Toggle child pages in navigation
    - 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
      Toggle child pages in navigation
      - 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
      Toggle child pages in navigation
      - The kitty remote control protocol
        Toggle child pages in navigation
        - Encrypted communication
        - 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
        - ls
        - new-window
        - remove-marker
        - resize-os-window
        - resize-window
        - scroll-window
        - select-window
        - send-text
        - set-background-opacity
        - set-colors
        - set-enabled-layouts
        - set-font-size
        - set-spacing
        - set-tab-color
        - set-tab-title
        - set-window-logo
        - set-window-title
        - signal-child
    - kitty @
      Toggle child pages in navigation
      - Options
    - kitty @ close-tab
      Toggle child pages in navigation
      - Options
    - kitty @ close-window
      Toggle child pages in navigation
      - Options
    - kitty @ create-marker
      Toggle child pages in navigation
      - Options
    - kitty @ detach-tab
      Toggle child pages in navigation
      - Options
    - kitty @ detach-window
      Toggle child pages in navigation
      - Options
    - kitty @ disable-ligatures
      Toggle child pages in navigation
      - Options
    - kitty @ env
    - kitty @ focus-tab
      Toggle child pages in navigation
      - Options
    - kitty @ focus-window
      Toggle child pages in navigation
      - Options
    - kitty @ get-colors
      Toggle child pages in navigation
      - Options
    - kitty @ get-text
      Toggle child pages in navigation
      - Options
    - kitty @ goto-layout
      Toggle child pages in navigation
      - Options
    - kitty @ kitten
      Toggle child pages in navigation
      - Options
    - kitty @ last-used-layout
      Toggle child pages in navigation
      - Options
    - kitty @ launch
      Toggle child pages in navigation
      - Options
    - kitty @ ls
      Toggle child pages in navigation
      - Options
    - kitty @ new-window
      Toggle child pages in navigation
      - Options
    - kitty @ remove-marker
      Toggle child pages in navigation
      - Options
    - kitty @ resize-os-window
      Toggle child pages in navigation
      - Options
    - kitty @ resize-window
      Toggle child pages in navigation
      - Options
    - kitty @ scroll-window
      Toggle child pages in navigation
      - Options
    - kitty @ select-window
      Toggle child pages in navigation
      - Options
    - kitty @ send-text
      Toggle child pages in navigation
      - Options
    - kitty @ set-background-image
      Toggle child pages in navigation
      - Options
    - kitty @ set-background-opacity
      Toggle child pages in navigation
      - Options
    - kitty @ set-colors
      Toggle child pages in navigation
      - Options
    - kitty @ set-enabled-layouts
      Toggle child pages in navigation
      - Options
    - kitty @ set-font-size
      Toggle child pages in navigation
      - Options
    - kitty @ set-spacing
      Toggle child pages in navigation
      - Options
    - kitty @ set-tab-color
      Toggle child pages in navigation
      - Options
    - kitty @ set-tab-title
      Toggle child pages in navigation
      - Options
    - kitty @ set-window-logo
      Toggle child pages in navigation
      - Options
    - kitty @ set-window-title
      Toggle child pages in navigation
      - Options
    - kitty @ signal-child
      Toggle child pages in navigation
      - Options
  - Startup Sessions
  - Creating tabs/windows
    Toggle child pages in navigation
    - The launch command
    - The piping environment
    - Special arguments
    - Watching launched windows
    - Finding executables
    - Syntax reference
      Toggle child pages in navigation
      - Options
  - Mouse features
    Toggle child pages in navigation
    - Scripting the mouse click
      Toggle child pages in navigation
      - Matching criteria
      - Scripting the opening of files with kitty on macOS
  - Font control
  - The scrollback buffer
  - Integration with shells
    Toggle child pages in navigation
    - Shell integration
    - Features
    - Configuration
      Toggle child pages in navigation
      - More ways to browse command output
    - How it works
    - Shell integration over SSH
    - Clone the current shell into a new window
    - Edit files in new kitty windows even over SSH
    - Manual shell integration
    - Integration with other shells
    - Notes for shell developers
  - Multiple copy/paste buffers
  - Marks
    Toggle child pages in navigation
    - Mark text on screen
    - Examples
    - Creating markers dynamically
    - Scrolling to marks
    - The full syntax for creating marks
    - Arbitrary marker functions
- Frequently Asked Questions
  Toggle child pages in navigation
  - 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 when SSHing into a different computer?
  - Keys such as arrow keys, backspace, delete, home/end, etc. do not work when using su or sudo?
  - 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 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
- Changelog
  Toggle child pages in navigation
  - Recent major new features
    Toggle child pages in navigation
    - Truly convenient SSH
    - Shell integration
  - Detailed list of changes
    Toggle child pages in navigation
    - 0.26.4 [future]
    - 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
  Toggle child pages in navigation
  - Image and document viewers
  - System and data visualisation tools
  - Editor integration
  - Scrollback manipulation
  - Miscellaneous
- Terminal protocol extensions
  Toggle child pages in navigation
  - Colored and styled underlines
  - Terminal graphics protocol
    Toggle child pages in navigation
    - Getting the window size
    - A minimal example
    - The graphics escape code
    - Transferring pixel data
      Toggle child pages in navigation
      - RGB and RGBA data
      - PNG data
      - Compression
      - The transmission medium
        Toggle child pages in navigation
        - Local client
        - Remote client
      - Querying support and available transmission mediums
    - Display images on screen
      Toggle child pages in navigation
      - Controlling displayed image layout
    - Deleting images
    - Suppressing responses from the terminal
    - Requesting image ids from the terminal
    - Animation
      Toggle child pages in navigation
      - 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
    Toggle child pages in navigation
    - Quickstart
    - An overview
      Toggle child pages in navigation
      - Key codes
      - Modifiers
      - Event types
      - Text as code points
      - Non-Unicode keys
    - Progressive enhancement
      Toggle child pages in navigation
      - 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
      Toggle child pages in navigation
      - Legacy functional keys
      - Legacy text keys
    - Functional key definitions
    - Legacy `ctrl` mapping of ASCII keys
    - Bugs in fixterms
  - File transfer over the TTY
    Toggle child pages in navigation
    - Overall design
      Toggle child pages in navigation
      - 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
      Toggle child pages in navigation
      - Sending links to the terminal emulator
      - Receiving links from the terminal emulator
    - Transmitting binary deltas
      Toggle child pages in navigation
      - 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
  - Unscrolling the screen
  - Saving and restoring colors
  - Setting text styles/colors in arbitrary regions of the screen
- Press mentions of kitty
  Toggle child pages in navigation
  - Video reviews

Back to top
Toggle table of contents sidebar