A modern terminal underneath.

Blocks, a smart input and every protocol your tools expect.

It knows your tools.

Syntax highlighting as you type, suggestions from your history accepted with →, and completions that know git, docker, kubectl, your cloud CLIs and your package scripts.

Progress from any tool.

OSC 9;4, or a percentage a tool prints as it goes, fills a strip above the input and the shell's ring in the sidebar.

\e]9;4;1;24\a Set to 24%

Find across blocks.

⌘F searches every block and highlights each match, with match case, whole word and regex.

Built for the programs you run.

Multi-line input.

Return adds a line while a quote, heredoc or block is still open, and runs the command once it is complete.

Mouse reporting.

X10, UTF-8, SGR, urxvt and SGR-pixel, with button and any-motion tracking.

Inline images.

The kitty graphics protocol, with animation and unicode placeholders.

zsh, bash and fish.

Shell integration for all three.

Completions for the tools you use.

Subcommands, branches, containers, contexts and scripts for these, plus aws, az, make, just, ansible, terraform workspaces, conda environments and node and python versions. Hosts for ssh, scp, rsync and mosh, and processes for kill. Everything else gets flags read from its man page.

  • git
  • docker
  • kubectl
  • gcloud
  • gh
  • terraform
  • helm
  • brew
  • npm
  • pnpm
  • yarn
  • bun
  • cargo
  • uv
  • pip
  • conda

And the rest.

Select while it runs

Select and copy output while a command is still going. Scroll up and it stops following.

The program's own cursor

A running command's cursor shows in its output, and follows the program when it hides it or changes its shape.

Kitty keyboard protocol

Full key reporting for editors and TUIs that ask for it.

Keep exploring.