Choosing A Terminal for my macOS โ€” Alacritty, Kitty & iTerm2

ยท 626 words ยท 3 minute read

I use and love the stock Terminal app in macOS (Terminal.app) but I want to have another efficient/performant alternative. So, I am exploring to find the suitable one and gain more knowledge and experience.

Comparison of Terminal apps ๐Ÿ”—

~AlacrittyKittyiTerm2Terminal
GPU renderingyesyesnono
languageRustPython, C, GoObj-C~
performance5/54/53/52.5/5
efficiency5/52/52/52/5
feature-rich1/53/55/51/5

The information in the above comparison table is got from GitHub source code of the each respective terminal emulator app, and from Gemini AI chat (by Google).

Terminal Emulators source code ๐Ÿ”—

Experimenting with Alacritty ๐Ÿ”—

I installed Alacritty with Homebrew on my macbook using this command.

brew install --cask alacritty

The release version of Alacritty is 0.13.2 and the binary size is 16.4 MB. The stock terminal emulator is 10.6 MB for relative comparison.

Alacritty terminal emulator on macOS

I created a TOML configuration in ~/.config/alacritty/alacritty.toml for Alarcitty and it works well. But I did not notice any performance improvements or speed while editing huge text files in VIM and NeoVIM.

Alacritty makes macOS kinda sluggish ๐Ÿ”—

When I put Alacritty on top of other windows/apps, then I use three-finger swipe up. If the focused/top window is Alacritty the animation of the swipe is sluggish (too many dropped frames). If Kitty or the stock terminal app is focused, it works well with no slow down animation/sluggish performance.

Here is a screencast. Watch it yourself.

Experimenting with Kitty ๐Ÿ”—

I installed Kitty with Homebrew package manager on my macbook by this command.

brew install --cask kitty

The release version of Kitty is 0.34.1 and the binary size is 119.4 MB. Kitty’s size is ~13x times bigger than Alacritty ๐Ÿคฏ but with more feature ๐Ÿ‘Œ (which I frankly do not need right now ๐Ÿ˜… ).

Kitty terminal emulator on macOS

I could not change the default SHELL of Kitty terminal emulator. It uses the assigned shell by the $SHELL evironment variable.

I did not notice any performance improvements nor any efficiency. I dislike Kitty’s big binary size.

Benchmarking Alacritty vs Kitty vs Terminal ๐Ÿ”—

  • Scrolling long text: I run cat main.go which output a long text file of code written in Go. This file has 3099 lines of text/code.
    • Alacritty: CPU% is tops at 15% and memory is at 0.6%.
    • Kitty: CPU% is tops at 8.7% and memory is at 1.0%.
    • Terminal.app: CPU% tops at 69.2% and memory is at 0.7%.
  • supporting Arabic language in standard output: the pre-installed terminal app is the best in supporting RTL languages and the correct ligatures and characters of Arabic language.

Arabic (RTL language) Support in Alacritty:

Arabic language support in Alacritty terminal emulator in macOS

Arabic (RTL language) support in Kitty:

Arabic language support in Kitty terminal emulator in macOS

Arabic (RTL language) support in Terminal:

Arabic language support in the stock terminal emulator (Terminal.app) which comes pre-installed with macOS by default

Final thoughts ๐Ÿ”—

I ignored iTerm2 as it is not GPU accelerated and feature-rich (which I have no need for). I tried Alacritty and Kitty for their promises on performance and efficiency. I found them as performant as the stock Terminal.app for the initial usage.

After 2 days of heavy use of Alacritty, Kitty and Terminal, I decided to stick with the pre-installed Terminal app by Apple. No real need for another terminal emulator. No real benefit for using another terminal emulator if I do not too much customization.

I just uninstalled Alacritty and Kitty by this command:

brew uninstall --cask alacritty kitty

I hope you enjoyed reading this post as much as I enjoyed writing it. If you know a person who can benefit from this information, send them a link of this post. If you want to get notified about new posts, follow me on YouTube , Twitter (x) , LinkedIn , Facebook , Telegram and GitHub .

Share: