# Integrations with other tools

kitty provides extremely powerful interfaces such as Controlling kitty from scripts or the shell and Custom kittens and icat - Display images in the terminal that allow it to be integrated with other tools seamlessly.

## Image and document viewers

Powered by kitty's The terminal graphics protocol there exist many tools for viewing images and other types of documents directly in your terminal, even over SSH.

termpdf.py

  a terminal PDF/DJVU/CBR viewer

mdcat

  Display markdown files nicely formatted with images in the terminal

ranger

  a terminal file manager, with previews of file contents powered by kitty's graphics protocol.

nnn

  another terminal file manager, with previews of file contents powered by kitty's graphics protocol.

hunter

  another terminal file manager, with previews of file contents powered by kitty's graphics protocol.

koneko

  browse images from the pixiv artist community directly in kitty

## System and data visualisation tools

neofetch

  A command line system information tool that shows images using kitty's graphics protocol

matplotlib

  show matplotlib plots directly in kitty

KittyTerminalImages.jl

  show images from Julia directly in kitty

gnuplot

  > a graphing and data visualization tool that can be made to display its output in kitty with the following bash snippet:

  >     function iplot {
  >         cat <<EOF | gnuplot
  >         set terminal pngcairo enhanced font 'Fira Sans,10'
  >         set autoscale
  >         set samples 1000
  >         set output '|kitty +kitten icat --stdin yes'
  >         set object 1 rectangle from screen 0,0 to screen 1,1 fillcolor rgb"#fdf6e3" behind
  >         plot $@
  >         set output '/dev/null'
  >         EOF
  >     }

  Add this to bashrc and then to plot a function, simply do:

      iplot 'sin(x*3)*exp(x*.2)'

## Editor integration

kitty can be integrated into many different terminal editors to add features such a split windows, previews, REPLs etc.

kakoune

  integrates with kitty to use native kitty windows for its windows/panels and REPLs.

vim-slime

  uses kitty remote control for a Lisp REPL.

vim-kitty-navigator

  allows you to navigate seamlessly between vim and kitty splits using a consistent set of hotkeys.

vim-test

  allows easily running tests in a terminal window

## Scrollback manipulation

kitty-search

  Live incremental search of the scrollback buffer.

kitty-grab

  keyboard based text selection for the kitty scrollback buffer.

## Miscellaneous

kitty-smart-tab

  use keys to either control tabs or pass them onto running applications if no tabs are present

kitty-smart-scroll

  use keys to either scroll or pass them onto running applications if no scrollback buffer is present

reload keybindings

  reload key bindings from `kitty.conf` without needing to restart kitty

kitti3

  allow using kitty as a drop-down terminal under the i3 window manager

weechat-hints

  URL hints kitten for WeeChat that works without having to use WeeChat's raw-mode.