Kitty vs foot
Kitty vs foot: GPU-rendered terminal with tabs, splits and kittens versus a small Wayland-only terminal with a server mode.
Updated
short verdict
Pick Kitty if you want built-in tabs and splits, ligatures, the kitty graphics protocol and scriptable remote control, or if you use macOS or BSD. Pick foot if you run a Wayland compositor on Linux and want a small C terminal with an INI config, a shared-process server mode and tabs left to the compositor or a multiplexer.
Both are terminal emulators written with performance in mind, but they take opposite approaches. Kitty (Python/C, GPL-3.0) renders with OpenGL, runs on Linux, macOS and BSD, and bundles window management and scripting. foot (C, MIT) is Wayland-only on Linux, does not use the GPU, and keeps its scope narrow: it leaves tabs and tiling to other tools.
this page is for
- Readers choosing between a GPU terminal with built-in multiplexing and a minimal Wayland terminal
- Linux users on a Wayland compositor weighing foot against Kitty
- macOS or BSD users who need to know foot is not an option
The better pick when you want tabs, splits, ligatures and scripting inside the terminal, or when you work on macOS or BSD.
best for
- Keyboard-driven users who want built-in tabs and splits
- Users who script their terminal through remote control
- macOS and BSD users
strengths
- Seven layouts (Fat, Grid, Horizontal, Splits, Stack, Tall, Vertical) plus session files via kitty --session
- Remote control over SSH and Python watchers; kitten icat, kitten diff and kitten ssh extend it
- Supports ligatures, variable fonts and per-range font substitution, so powerline symbols need no patched fonts
- Runs on Linux, macOS and BSD, with OpenGL rendering
weaknesses
- The custom xterm-kitty terminfo is missing on many remote hosts, causing unknown-terminal errors or broken arrow keys
- The same terminfo problem can appear under sudo or su; the documented fix is kitten ssh
- Python plus C (and Go kittens) is a larger stack than foot's single C codebase
The better pick when you run a Wayland compositor on Linux and want a small terminal that leaves tabs and tiling to the compositor.
best for
- Wayland users who want low memory use and few dependencies
- People who already tile with the compositor or a multiplexer
- Users who want Sixel image output
strengths
- foot --server with footclient shares fonts and the glyph cache across windows, cutting memory use and startup time
- INI config at ~/.config/foot/foot.ini, documented in the foot.ini(5) man page, with every key binding remappable
- Sixel images, synchronized updates, IME via text-input-v3 and OSC 7 / OSC 133 shell integration
- Ctrl+Shift+O labels visible URLs for keyboard opening, or copying with show-urls-copy
weaknesses
- Wayland on Linux only; no macOS, BSD or X11-only setups
- No programming-font ligatures, because it shapes grapheme clusters, not whole text runs
- In server mode all windows share one thread, so a busy window slows others and a crash closes every window
Key differences
- Platforms: Kitty runs on Linux, macOS and BSD; foot is Wayland-only on Linux.
- Rendering: Kitty draws with OpenGL; foot does not use GPU rendering.
- Window management: Kitty has built-in tabs and seven layouts; foot leaves tabs and tiling to the compositor or a multiplexer.
- Config format: Kitty uses a single kitty.conf; foot uses an INI file at ~/.config/foot/foot.ini.
- Language and license: Kitty is Python/C under GPL-3.0; foot is C under MIT.
- Images and fonts: Kitty has its own graphics protocol and ligatures; foot supports Sixel and no ligatures.
Choose Kitty when
- You use macOS or a BSD, where foot does not run.
- You want tabs, splits and session files without a separate multiplexer.
- You want to script the terminal with remote control, watchers or kittens.
- You need ligatures or the kitty graphics protocol, for example kitten icat.
Choose foot when
- You run a Wayland compositor and want a small terminal with few dependencies.
- You want foot --server and footclient to share fonts and glyph cache across windows.
- You prefer an INI file and a foot.ini(5) man page over kitty.conf.
- You rely on Sixel images and handle tabs or tiling in the compositor.
When not to use these
- You need a terminal on Windows; neither project lists Windows as a supported platform.
- You use X11 without Wayland on Linux and want foot; it only targets Wayland.
FAQ
- Which is faster, Kitty or foot?
- Neither project publishes a head-to-head benchmark. Kitty uses OpenGL, threaded rendering and SIMD instructions. foot does not use the GPU, but uses rendering threads per window and a shared glyph cache in server mode.
- Can I use both Kitty and foot?
- Yes on Linux with Wayland, since they are separate programs with separate config files (kitty.conf and foot.ini). Neither project documents running them together, and foot is not available on macOS or BSD.
- Which is easier to configure?
- Neither project makes a comparative claim. foot has one INI file with a foot.ini(5) man page. Kitty has one kitty.conf, plus session files and Python scripting for extra behavior.
- Does foot support ligatures or tabs?
- No to ligatures: foot shapes grapheme clusters, not whole text runs. It has no built-in tabs and relies on the compositor or a multiplexer. Kitty supports both.