Choosing A Terminal for my macOS โ Alacritty, Kitty & iTerm2
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 ๐
~ | Alacritty | Kitty | iTerm2 | Terminal |
---|---|---|---|---|
GPU rendering | yes | yes | no | no |
language | Rust | Python, C, Go | Obj-C | ~ |
performance | 5/5 | 4/5 | 3/5 | 2.5/5 |
efficiency | 5/5 | 2/5 | 2/5 | 2/5 |
feature-rich | 1/5 | 3/5 | 5/5 | 1/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 ๐
- Alacritty: https://github.com/alacritty/alacritty
- Kitty: https://github.com/kovidgoyal/kitty
- iTerm2: https://github.com/gnachman/iTerm2
- Terminal.app : the stock terminal emulator app is not open source software (I think).
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.
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 ๐ ).
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 (RTL language) support in Kitty:
Arabic (RTL language) support in Terminal:
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 , and GitHub .