The #1 mistake with Ghostty 1.4: treat it like a quiet point release. You brew upgrade, open a few tabs, SSH the old way, and never notice the two features that actually change the day – idle scrollback compression and ghostty +ssh. Launch posts shout Kitty animation and benchmark charts. Your workflow still dies on remote terminfo or “why is memory still high?” if you skip the boring setup.
Install 1.4 for the security fixes, leave compression on, switch SSH to the wrapper, then play with graphics. Ghostty 1.4.0 shipped October 27, 2026 after roughly seven months, 172 contributors, and 2,889 commits (official release notes). That order pays off before lunch.
What just dropped (short version)
Ghostty is Mitchell Hashimoto’s GPU-accelerated, platform-native terminal. Parser benches in the 1.4.0 notes: plain ASCII about 5.7× faster (~128 MB/s → 725 MB/s), Kitty image payloads ~16×, macOS pty I/O +25-55%, large-scrollback resize ~6×. Full Kitty graphics – animation and relative placements – landed here first outside Kitty itself. New Linux OpenGL path goes through EGL/DMABUF. Ten security advisories closed (paste protection, graphics, tmux control mode, OSC 8, zsh integration, more). Still on 1.3.x? Update when your platform can run it.
Method A vs Method B after you install Ghostty 1.4
| Method A – old habits | Method B – 1.4 defaults + tools | |
|---|---|---|
| Scrollback | Crank a huge scrollback-limit, panic at RSS |
Keep the new 50 MB default; compression on |
| SSH / terminfo | Manual tic, SetEnv TERM=xterm-256color forever |
ghostty +ssh installs + caches terminfo |
| Memory check | Look at virtual size, declare “broken” | Watch resident memory after idle |
| Linux older LTS | Force a native build, fight GTK errors | Check GTK 4.18 / libadwaita 1.7 first |
Method B wins. A full 50 MB history under compression often sits in less physical RAM than the old 10 MB default – notes put typical text savings around 70-90% on compressed pages. The SSH wrapper kills the chicken-and-egg terminfo problem on first connect.
Hands-on: install, then make Ghostty 1.4 do the work
macOS (official signed build or community cask):
brew install --cask ghostty
# or upgrade
brew upgrade --cask ghostty
ghostty --version # expect 1.4.0
DMG works too – macOS 13 Ventura minimum – from the download page. Linux: use distro packages when your repo has them (e.g. Arch pacman -S ghostty). Packaging matrix and caveats live on the binaries docs; don’t invent a native build on an LTS that fails the GTK floor.
Config path is still ~/.config/ghostty/config. Memory knobs? You mostly leave them alone:
# optional explicit defaults - usually unnecessary
scrollback-compression = true
# scrollback-limit-bytes = 50000000
# scrollback-limit-lines = unlimited
# SSH the 1.4 way inside Ghostty's shell integration (or alias)
shell-integration-features = ssh-env,ssh-terminfo
Daily SSH without betting on the shell function:
ghostty +ssh -- [email protected]
# or
alias ssh='ghostty +ssh --'
Successful terminfo installs get cached per host – ghostty +ssh-cache lists, prunes, or forces reinstall (SSH feature docs). Remote tic fails? Fallback is TERM=xterm-256color plus a warning.
- Open a few long-running panes (build logs, agent traces,
htop). - Leave them idle a minute so compression can run.
- macOS: Activity Monitor Real Memory. Linux: RSS, not VIRT.
- SSH somewhere new with
ghostty +sshonce – colors and keys without hand-copied terminfo. - Only then try animated Kitty images if your tools emit them.
That’s the whole upgrade ritual. Fancy themes can wait.
Edge cases that bite after the hype scroll
Compression isn’t everywhere. Official notes: macOS and 64-bit Linux only. It frees physical pages; virtual mappings stay, so Activity Monitor “Memory” vs Real Memory, or htop VIRT vs RSS, will gaslight you if you pick the wrong column. Empty terminal page memory on macOS landed near 16 KiB (was ~128 KiB in 1.3.1); hidden tabs drop GPU resources hard – on a supported compression path.
Pro tip:
scrollback-limitrenamed toscrollback-limit-bytes;scrollback-limit-linesis new. Both can be unlimited; first limit hit wins. Blank cells still count in the page buffer, so a wide full-width dump burns history faster than a skinnyseqcolumn.
The catch is Linux GTK. 1.4 wants GTK 4.18 and libadwaita 1.7. Ubuntu 24.04 doesn’t ship that stack – stay on 1.3.x or use Flatpak / carefully vetted community packages (read the install page before you curl a random .deb). And shell-integrated ssh is a function: scp, rsync -e ssh, Makefile recipes, mosh, cloud SSH helpers never see it. Call ghostty +ssh or fix ~/.ssh/config.
Is “more history for free” free under pathological binary spam in the scrollback? Ratios are content-shaped. The 70-90% figure is the text-heavy happy path, not a guarantee for noise dumps.
FAQ
Do I need a custom config to get the memory win?
No. Compression defaults on where supported; ceiling is already 50 MB. Disable only if you must: scrollback-compression = false.
My SSH from scripts still has a dumb TERM. Why?
Say ./deploy.sh calls plain ssh. Non-interactive shell → Ghostty’s function never loads. Put ghostty +ssh -- host in the script, or SendEnv/SetEnv in ~/.ssh/config for hosts that can’t take automatic terminfo. Interactive tabs with shell-integration-features = ssh-env,ssh-terminfo are the smooth case.
Is Ghostty 1.4 safe on every Linux box today?
No. macOS 13+ is straightforward. Linux: clear the GTK/Adwaita floor first (see edge cases above). Security fixes alone justify moving when the platform allows it – not when it doesn’t.
Next: ghostty --version → confirm 1.4.0 → one real ghostty +ssh -- to a host you use daily. Terminfo just works? You’re done with the part of this release that matters.