Ghostty’s scrollback compression reduced resident memory by approximately 34 MB at rest in our test on an Apple M5 Pro, with a full history. Ghostty is a free and open source (MIT) terminal emulator for macOS and Linux; version 1.4.0 was released on October 27, 2026 and on Mac installs with brew install --cask ghostty.
What is Ghostty?
Ghostty is a GPU-accelerated terminal that bets on the native interface of each platform. On macOS it’s a Swift app that renders with Metal; on Linux and FreeBSD it’s a GTK app that renders with OpenGL. Configuration is a plain text file with key = value format, and the project’s stated philosophy is that you shouldn’t need to configure anything to start using it.
It’s maintained as a nonprofit project, with Hack Club as fiscal sponsor and its finances published. The repository is MIT licensed and has around 62,800 stars and 3,800 forks on GitHub. Its terminal core is also distributed as a library, libghostty, which according to its maintainers has already been adopted by other terminal emulators.
What does Ghostty 1.4 bring?
The main focus is memory, not new features. According to the project, version 1.4 transparently compresses scrollback pages that aren’t visible (scrollback compression), which reduces physical memory usage by between 70 and 90 percent in a typical text history. Compression only runs when the terminal is idle, and pages are decompressed on the fly when you scroll back through history or search it. Because of this, the default scrollback limit increased from 10 MB to 50 MB per terminal.
Other changes in this version:
- Performance (data from the project itself): on an M4 Max, end-to-end input/output performance is between 25 and 55 percent higher on macOS than in 1.3.x. ASCII text parsing went from 128 MB/s to 725 MB/s in their benchmark, and resizing with a large history is about 6 times faster.
- Less memory elsewhere: on macOS, a new empty terminal uses about 16 KiB of page memory, compared to 128 KiB in 1.3.1. Hidden tabs free their GPU resources: the project measured a drop from 385 MiB to 18 MiB with 20 background tabs.
- New renderer on Linux and FreeBSD: EGL on its own thread, with frames delivered to GTK as DMABUF without
GtkGLArea. The visible result is crisp text with fractional scaling, like 125 or 150 percent. - Support for macOS 27 (Golden Gate), maintaining compatibility back to macOS 13.
ghostty +ssh: a drop-in replacement forsshthat installs Ghostty’s terminfo on the remote server and forwards terminal environment variables. If terminfo installation fails, it falls back toTERM=xterm-256color.- Complete Kitty graphics: animation and relative positioning arrive, and the project claims Ghostty is the first terminal outside of Kitty to cover the entire published specification.
- Kitty clipboard protocol (OSC 5522): programs can read and write rich data to the clipboard, like images or HTML. Reads ask for permission by default.
- Security fixes: 10 advisories, including ways to bypass paste protection and crashes from malicious output. At the time of publishing this note, GitHub hadn’t yet assigned CVE numbers to those advisories.
How do you install Ghostty on Mac and Linux?
macOS is the only platform with official binaries. You can download the signed and notarized .dmg from ghostty.org, or use the community-maintained Homebrew cask, which repackages that same .dmg:
brew install --cask ghostty
On Linux, packages are maintained by each distribution, not by the Ghostty project:
pacman -S ghostty # Arch Linux
apt install ghostty # Ubuntu 26.04 and later
snap install ghostty --classic # Snap
On Fedora there’s a community COPR repository, and a community AppImage also exists.
An important detail: Ghostty 1.4 requires GTK 4.18 and libadwaita 1.7, so it doesn’t work on Ubuntu 24.04 LTS. The project’s suggested alternatives are using an earlier version of Ghostty or the Flatpak package.
How much memory does scrollback compression save? We measured it
The 70 to 90 percent figure is published by the project itself, and its documentation clarifies that savings depend on content. So we measured it.
Setup: Apple M5 Pro, 24 GB RAM, macOS 27.0.1 (Golden Gate), Ghostty 1.4.0 stable with Metal renderer.
Method:
- Close Ghostty, reopen it and keep exactly one window.
- Measure starting resident memory (RSS).
- Run
seq 1 3000000, which exceeds the 50 MB scrollback limit, and measure immediately. - Leave the window untouched for 60 seconds and measure again.
We did this twice with compression enabled (the default) and twice with scrollback-compression = false. Each reading came from the terminal with:
ps axo rss,comm | grep '[G]hostty.app'
| Test | On Open | After seq |
After 60 s Idle | Retained vs. Start |
|---|---|---|---|---|
| Compression enabled #1 | 147,232 KB | 175,728 KB | 125,024 KB | −22,208 KB |
| Compression enabled #2 | 133,888 KB | 180,336 KB | 127,232 KB | −6,656 KB |
| Compression disabled #1 | — | 172,272 KB | 164,192 KB | — |
| Compression disabled #2 | 122,592 KB | 173,008 KB | 155,408 KB | +32,816 KB |
What the numbers show:
- A full scrollback costs about 46 to 50 MB at peak, in both modes. This matches the new 50 MB limit.
- After one minute idle, compression eliminated that cost. With compression enabled, Ghostty returned to its starting level or went below it. Without it, about 33 MB stayed resident.
- Comparing idle to idle, the complete process used about 126 MB versus about 160 MB: around 34 MB less, close to 21 percent.
What we can’t claim: we measured the complete process, not each scrollback page separately. The result is consistent with the 70 to 90 percent per page the project announces, but doesn’t directly confirm it. Also, memory when opening a new window varied up to 25 MB between startups, and we ran two tests per configuration. Take this as a measurement, not a benchmark.
If you repeat the test, one rule matters: don’t scroll through history during measurement. Ghostty decompresses pages when you scroll back, and that makes the number go up again.
What changes in the configuration when updating Ghostty?
The first of these changes affected us. When returning to Ghostty after a long time, it started with an error: it couldn’t find the configured theme.
- Theme names changed in 1.2, not in 1.4. Ghostty 1.2.0 updated its built-in themes from iTerm2-Color-Schemes and warned that some names might change. Our ghostty config had
theme = catppuccin-mocha; the current name istheme = Catppuccin Mocha. Runghostty +list-themesto find how yours is spelled today. Version 1.4 doesn’t rename any, but did update the colors of 10 themes, including Catppuccin Mocha, so yours might look slightly different. copy-on-selectchanged meaning. The valueclipboardnow copies only to the system clipboard; usebothfor the previous behavior. On macOS the default value is nownone: selecting text no longer copies it anywhere.scrollback-limitis now calledscrollback-limit-bytes. The previous name still works via a compatibility layer, and there’s a new option,scrollback-limit-lines.- macOS:
cmd+↑andcmd+↓jump between prompts again (jump_to_prompt). To go to the beginning of history, the release notes indicatecmd+home. MacBooks don’t have a Home key, so usefn+cmd+←(andfn+cmd+→to go to the end), or search for “scroll to top” in the command palette (cmd+shift+p). To restore the 1.3 behavior, add these two lines to your configuration:
keybind = cmd+arrow_up=scroll_to_top
keybind = cmd+arrow_down=scroll_to_bottom
- GTK:
ctrl+shift+page_upandctrl+shift+page_downnow move tabs.jump_to_promptmoved toctrl+shift+↑andctrl+shift+↓.
Two commands ease migration. ghostty +explain-config <option>, new in 1.4, shows the documentation for any option. ghostty +show-config --default lists all options with their default values.
Ghostty, iTerm2, Warp or Alacritty?
They solve different problems. Ghostty is fast, native and minimal. iTerm2 is the powerful tool for macOS. Warp is a terminal built around AI agents. Alacritty prioritizes speed and, by design, does one thing.
| Ghostty 1.4.0 | iTerm2 3.7.6 | Warp | Alacritty | |
|---|---|---|---|---|
| Platforms | macOS 13+, Linux, FreeBSD | macOS 13+ only | macOS 10.14+, Linux, Windows | macOS, Linux, BSD, Windows |
| License and price | MIT, free, nonprofit | Free, donation funded | Open source; free plan and paid plans from $20/month for AI use | Apache 2.0, free |
| Configuration | Plain text file | Graphical settings with profiles | Settings within the app (theme, input, default model) | TOML file, no graphical editor |
| Tabs and splits | Yes, with draggable splits | Yes, split panes | Sessions as vertical tabs | No, by design (use tmux or your window manager) |
| Built-in AI | No | AI chat, multiple providers, Claude Code integration | It’s their core: agents, natural language commands, model selector | No |
Choose Ghostty if you want a terminal that behaves the same on Mac and Linux, a configuration file you can save in your dotfiles, and low memory with huge outputs. Plus, ghostty +ssh prepares remote servers for you.
Choose iTerm2 if you work only on macOS and depend on native tmux -CC integration, triggers, password manager, or AI chat and Claude Code integration from its 3.7 series. Support for tmux -CC in Ghostty still isn’t connected to its interface.
Choose Warp if you want the terminal itself to launch and supervise code agents, with multiple models and team features. Warp today presents itself as an agentic development environment. The terminal can be used free, and AI usage beyond the free plan is paid: at publishing time, the Build plan costs $20 per month.
Choose Alacritty if you want the most minimal option and already live in tmux. Its README clarifies it has no tabs or splits by design, and still describes it as beta software, though many use it daily.
In this test we only measured Ghostty, so the table compares features, not memory or speed.
Does Ghostty work on Windows?
No. The project removed Windows from Ghostty’s app roadmap. libghostty, the library, is Windows compatible, and the official stance is that other projects build on it. If you need a modern terminal on Windows today, Warp and Alacritty have versions for that system.
What about you? What’s the first thing you change in the configuration when you install a new terminal?
- Ghostty
- iTerm2
- Warp
- I prefer another option (tell us which)
Comment below or, if this article reached you by email, reply directly to the email: your reply gets published here.
Related: Terax: the terminal with AI that weighs 7 MB and runs your own keys or local models