Which is the Best Linux terminal? Alacritty, Kitty, Ghostty, Foot, it's not easy

Which is the Best Linux terminal? Alacritty, Kitty, Ghostty, Foot, it's not easy

Every few months someone on Reddit declares that the terminal they use is the fastest one. Then someone else posts a benchmark, an argument starts, and everyone goes back to the terminal they already had installed. I spent the last few days collecting benchmarks and reading those arguments on Reddit and X, so you can skip the ritual and look at what the numbers and the people actually say.

The five terminals in question are Alacritty, Kitty, Ghostty, Foot, and WezTerm. They share GPU rendering (Foot, notably, does not) and they share a promise: smooth output, instant keystrokes, no lag. In 2026 that promise is basically kept by all of them, which is why the interesting differences are elsewhere.

What the benchmarks show

The most useful independent comparison I found is vizenc/terminal-benchmark, run on a ThinkPad T430 under Hyprland with default configs. Old hardware, which is a good thing here: differences show up faster.

MetricAlacrittyFootGhosttyKittyWezTerm
Input latency (ms, lower is better)16.715.038.3*18.330.8
cat of an 11 MB file (ms, lower is better)4042514074011246
Frame rate in a DOOM-fire render (FPS, higher is better)16419913527364
Memory after reboot (MB, lower is better)754317491130

* Ghostty's latency figure is an outlier that smells like a measurement artifact (GTK under XWayland on Hyprland). Other tests place it much closer to Kitty.

Three results deserve a sentence each. Foot, which renders everything on the CPU, beats every GPU terminal on both latency and raw I/O: 251 ms against roughly 400 for the others on the same 11 MB file. Kitty produces the highest sustained frame rate by a wide margin, which is what you want when a build log is scrolling at full speed. WezTerm trails badly on I/O and frame rate, roughly three times slower than the pack on that file dump.

Kitty publishes its own numbers too: 134.55 MB/s average throughput in kitten __benchmark__, against 61.83 for GNOME Terminal, 54.05 for Alacritty and 48.5 for WezTerm. Its keyboard-to-screen latency drops below 1 ms with input_delay 0 and sync_to_monitor no.

There is a caveat that keeps recurring in every honest discussion of this. On r/linuxquestions, a thread with 114 comments, the most upvoted reply says that even for power users there is almost no difference, and a follow-up points out that if output scrolls fast enough for the terminal to be the bottleneck, it is too fast to read anyway; redirect it to a file. A user who counted their own keystrokes found they open a terminal 250 times a day, where a second of startup time adds up to minutes. That is the kind of difference people actually feel.

Memory, where the differences are real

Memory is less contested. Foot idles at 35 to 43 MB, Alacritty around 40 to 75, Kitty around 85 to 91, WezTerm 110 to 130, Ghostty 170 to 229 depending on the source and the machine.

The interesting part is what happens when you open more windows. Umar Anis measured this directly for Foot and Ghostty:

WindowsGhosttyFoot (client/server)Foot (standalone)
1229 MB43 MB35 MB
5260 MB125 MB175 MB
10300 MB225 MB350 MB
25423 MB538 MB875 MB

Foot in client/server mode is the cheapest option up to about ten windows, because every window shares one backend process. Past that, Ghostty's single-process design wins: fonts, atlases and services are shared across all its windows, so 25 windows cost 423 MB. Foot in standalone mode is the worst case at any count, since each window is a full process. Use footclient with footserver if you use Foot.

Two footnotes. Ghostty's memory on Linux does not always come back down after closing windows; there is an open issue (#5491) about a leak that does not reproduce on macOS. And Anis notes that Ghostty's consumption tends to grow over time rather than stabilize, so a long-lived session looks worse than this table suggests.

Features: where the philosophies diverge

Alacritty refuses to grow. Its README says tabs and splits are best left to a window manager or multiplexer, and it means it: no tabs, no splits, no image protocol, one TOML file, nothing else. You pair it with tmux and stop thinking about it.

Kitty is the opposite bet. Native tabs and splits, the graphics protocol it invented (now copied by others), a remote control API, a custom keyboard protocol, and kittens: Python programs that extend the terminal, like kitten ssh (which forwards terminfo and image support to the remote host), kitten diff, kitten icat. Multiple Redditors name kitten ssh as the single feature that made them switch. The cost is lock-in; kittens only run in Kitty.

Ghostty, by Mitchell Hashimoto, sits between them. Zig, tabs and splits, support for Kitty's graphics protocol, a plain key = value config, native window behavior on each platform, theme switching. It reads like Alacritty's simplicity with Kitty's feature list, and that is roughly how people describe it in the wild.

Foot is Wayland-only by design and refuses to start without a compositor. No GPU, no tabs, no images, an INI file. What it gives back is that latency figure above, fractional scaling, presentation-time scheduling, and the smallest memory footprint in the group.

WezTerm is a terminal, a multiplexer and a Lua interpreter in one binary. Your config is a program: conditional keybindings, dynamic tab titles, per-host behavior. It is the only one of the five whose sessions survive an SSH disconnect through its own mux server, and the only one with a single config that works identically on Linux, macOS, Windows and FreeBSD. The last stable tag is from February 2024, though nightly builds ship daily and the community runs them without complaints.

What people say when you ask them

I searched Reddit and X for arguments between users of these terminals rather than reading only review sites.

On r/KittyTerminal, a thread titled "Kitty vs Alacritty which is better" collected 140 comments. The result was predictable, but the complaints were not: Alacritty lacks an image protocol, its ligatures arrived late, and one commenter who benchmarked Alacritty, Kitty and Foot together found Alacritty the slowest and hungriest of the three despite its reputation. Several commenters answered "Ghostty" to a question about Kitty or Alacritty, which is a good sign of where the momentum is. Font rendering came up often too: Kitty's was praised, Ghostty's was called too thin on one person's Linux machine.

On r/Ghostty, someone asked why Ghostty felt slower than Kitty when dumping large logs. The answers were Kitty at 1.4 to 2 times faster, a pointer to recent nightly builds that fixed a lot of it, and one reply worth quoting: both are extremely fast compared to non-GPU terminals, so stop worrying about the last fraction of a percent and use whichever interface you prefer.

The X crowd leans Ghostty. It shows up in agentic coding stacks (Ghostty plus Codex or Claude), in people deleting iTerm2 for it, and in threads where someone asks for a terminal recommendation and gets Alacritty, Kitty or Ghostty in roughly equal measure. Two dissenting voices stuck with me: one argued WezTerm beats Alacritty because it contains everything both Kitty and Alacritty offer, and another said Alacritty beats Kitty until you need to view an image. There are also signs that Ghostty's moment may be contested by newer tools aimed at agent workflows, like Tern and Hashimoto's own Rex, which keeps terminal sessions alive on a server.

Two specific foot questions: blur and inertial scrolling

Since these came up in my own testing, here is the current state for Foot.

Background blur exists, sort of. Foot 1.26.0 added preliminary, explicitly untested support for blur through the new ext-background-effect-v1 Wayland protocol. You enable it with blur=yes under [colors-dark] or [colors-light]. It works only if foot was compiled against wayland-protocols 1.45 or newer and your compositor implements the protocol with blur capability. According to the support matrix on wayland.app, KWin, Mutter and niri implement it; Hyprland, Sway, Wayfire, river, labwc and COSMIC do not yet. On those compositors the old path still works: set alpha below 1 in foot.ini and let the compositor blur translucent windows (Hyprland's decoration:blur, SwayFX, KDE's Blur effect).

Inertial scrolling does not exist in any release. The issues asking for it date to 2024, and a new one opened in August 2026. There is a pull request, #2404, that adds momentum scrolling plus a separate scrollback.multiplier-touchpad option, and it is still open after three months of activity. The maintainer is hesitant about merging a niche feature into a terminal whose selling point is minimalism. Until that changes, the options are building foot from the PR branch, raising scrollback.multiplier and accepting that the mouse wheel becomes too fast, or picking something else.

Choosing one

If you already live in tmux and want to stop thinking about your terminal, Alacritty is the least demanding choice and stays under 75 MB. If you are on a Wayland-only setup and care about memory or latency, Foot at 43 MB is the number to beat, provided you use its client/server mode and do not need images. If you spend your day in SSH, TUIs and image previews, Kitty has the deepest feature set and the best frame rate, and the price is a config file with hundreds of options. If you want tabs, a simple config and a modern default, Ghostty is the balanced pick, with the caveat of its higher memory use. If you move between operating systems or want a multiplexer that survives a dropped connection, WezTerm is the only real option, and you will pay for it in RAM and in setup time.

The honest summary from that 114-comment thread applies to most people: for regular users there is no measurable difference, and for people who spend all day in the terminal the difference is satisfaction rather than saved minutes. Pick the one whose configuration style you enjoy. You will spend more time in it than any benchmark will ever give back.