Ghostty 1.4 cuts terminal memory up to 90%, adds full Kitty graphics with animation, a built-in ghostty +ssh wrapper, and better Claude Code support.
Vamsi Tallapudi
Manager, Architect Technology at Cognizant
Ghostty 1.4 shipped on October 27, 2026, and the headline is memory: scrollback compression cuts physical RAM use by 70% to 90% for typical text-heavy history, a new empty terminal now takes about 16 KiB instead of 128 KiB on macOS, and Mitchell Hashimoto says a single empty terminal uses roughly 90% less RAM than it did six months ago. On top of that you get full Kitty graphics protocol support with animation, a built-in ghostty +ssh wrapper, a rewritten Linux renderer, and a long list of performance fixes that actually show up when you're staring at Claude Code output all day.
I've been running the beta builds for about three weeks and the memory change is the one I actually notice, not because my machine was struggling, but because I keep a dozen tabs open for parallel agent sessions and Activity Monitor used to make me flinch.
Ghostty has always had a reputation, fair or not, for holding onto memory you'd expect a terminal to free. The 1.4 release attacks that from three directions at once.
Scrollback compression is the big one. Ghostty now compresses scrollback pages while the terminal is idle and decompresses them on demand when you scroll back or search. The release notes put the savings at 70% to 90% for typical text-heavy history, which tracks with what a few people measured independently (one DEV Community writer tested five kinds of content and landed in that range for plain logs). It's currently available on macOS and 64-bit Linux, and Ghostty used the headroom to raise the default scrollback limit from 10 MB to 50 MB per terminal, while still generally using less physical memory than the old 10 MB default did.
Second, idle terminals got leaner. A brand-new, empty terminal page now costs about 16 KiB on macOS instead of 128 KiB. Multiply that across a tmux grid with 20 panes and it adds up fast.
Third, hidden tabs now release GPU resources. On macOS, one visible tab plus 20 hidden ones used to hold about 385 MiB of GPU memory; now it's closer to 18 MiB. Memory freed by clearing scrollback also gets returned to the OS instead of sitting there until you close the terminal.
None of this is the "~450x lower for a non-visible window" meme number that Hashimoto posted as a tease before the release (that was an extreme case, not the typical one), but the real-world numbers in the actual release notes are still a big jump. Worth noting: HN commenters pointed out this cuts both ways as marketing, since "90% less than before" only means something if you know what "before" was, and Ghostty's memory footprint six months ago wasn't exactly competitive to begin with.
If you've ever SSH'd into a box and gotten unknown terminal type 'xterm-ghostty', you already know the problem ghostty +ssh solves. Instead of manually copying terminfo entries around or hacking your TERM variable, you run:
ghostty +ssh [email protected]
and it does three things before handing off to the real ssh with your arguments untouched: it tries to install Ghostty's terminfo on the remote host so you get proper xterm-ghostty behavior, it forwards COLORTERM, TERM_PROGRAM, and TERM_PROGRAM_VERSION, and if the remote host doesn't have tic available to install terminfo, it falls back to TERM=xterm-256color instead of just breaking.
It also caches successful installs per user@hostname, so the second time you connect to the same box it skips the setup step entirely. You can turn any of it off with flags: --terminfo=false, --forward-env=false, --cache=false, or get verbose output with --verbose. Most people will just alias it:
alias ssh='ghostty +ssh --'
and forget it exists, which is honestly the right amount of attention this feature deserves. It's a small quality-of-life fix, but it's the kind of thing that used to eat ten minutes of your day for no good reason.
Ghostty 1.4 implements 100% of the published Kitty graphics protocol spec, including animation and relative placements, and the release notes call it out as the first terminal besides Kitty itself to support those two pieces. Image parsing is also roughly 16x faster now using SIMD.
Separately, Ghostty also shipped full support for the Kitty clipboard protocol (OSC 5522), which lets programs read and write non-text clipboard data like images, not just plain strings. Hashimoto specifically called out that "the biggest program to support this is probably Claude Code," which lines up with what's actually happening in the community: there are already several open-source mods (claude-inline-images, ghostty-image-mcp, image-preview, among others) that use this to render screenshots and MCP tool output directly inline in the Claude Code transcript instead of dumping a file path you then have to go open separately.
If you work with Claude Code on anything visual, design review, chart debugging, screenshot-driven bug reports, this is the feature that actually changes your workflow, more than the memory numbers do.
Yes, and it's been quietly becoming the default recommendation in a bunch of "best terminal for Claude Code" roundups this year, for reasons that mostly aren't about 1.4 specifically:
The common setup I'd actually recommend is Ghostty plus tmux: Ghostty handles GPU rendering so multiple panes don't lag, tmux gives you the actual multiplexing so you can run two or three agent sessions side by side and keep full visibility into each one. I wrote more about managing multiple parallel Claude sessions in the Claude Code desktop nested sessions piece if you want the fuller setup.
| Terminal | Config style | Graphics protocol | Notable strength |
|---|---|---|---|
| Ghostty 1.4 | Plain text config | Full Kitty graphics + clipboard | Native GPU rendering, lowest memory now |
| Kitty | Plain text config | Native Kitty graphics | "Hints mode" for link selection, mature scripting |
| WezTerm | Lua scripting | Partial | Built-in remote multiplexing |
| iTerm2 | GUI settings | Limited | Best rendering polish on macOS, heavier feature set |
Kitty still has things Ghostty doesn't, hints mode for jumping to links and file paths with the keyboard is the one people bring up most, and it's also non-commercial software, which matters to some people on principle. WezTerm wins if you specifically want remote session multiplexing baked in rather than reaching for tmux. iTerm2 is still the most polished pure-macOS experience, but it's also the heaviest, and the config UI gets unwieldy once you start customizing.
The Hacker News thread on the 1.4 release had a decent amount of "why do we need another terminal, Konsole already exists" pushback too, and a KDE developer actually showed up and agreed Konsole is starting to show its age: no Qt Quick support, no Vulkan or OpenGL rendering path, older protocol coverage. Fair critique on both sides. The other recurring complaint was that Ghostty's "zero config" pitch rings a little hollow when the default config file is empty and you have to go read docs to set basics like font size.
This is the part that's easy to skip past if you just want a terminal, but it's arguably the bigger story. Ghostty's actual terminal engine, libghostty, is a portable C and Zig library with no Ghostty-specific dependencies, and it's being adopted well outside the Ghostty app itself. Starting with version 2026.3, the built-in terminal in JetBrains IDEs runs on libghostty, replacing JediTerm, across more than 12.5 million active users. It's also behind Ghostel, a libghostty-powered terminal for Emacs, and has been verbally accepted to replace Neovim's terminal core, with that work still in progress.
Hashimoto's framing is that Ghostty the app was always somewhat secondary to libghostty the library, and 1.4 leans into that with official bindings for Go, Swift, Python, Rust, and .NET on top of the existing C and Zig support, plus builds tested on iOS, visionOS, Windows, FreeBSD, Android, and WebAssembly. If terminal emulation becomes infrastructure other tools quietly build on, the way a lot of AI coding agent terminals already do, this is the layer doing the work.
A grab bag of changes that matter if you hit them, and invisible if you don't:
GTK builds now need GTK 4.18 and libadwaita 1.7, and building from source needs Zig 0.17, so if you're on an older distro you may need to update dependencies before you upgrade.
If you're already on Ghostty, update, there's no real downside here and the memory numbers alone are worth it if you keep a lot of tabs or panes open. If you're on Kitty and happy, I wouldn't rush to switch just for this release, the two terminals are converging on capability faster than either team probably expected. If you're still on Terminal.app or a years-old setup and you run Claude Code or any other terminal-based agent for hours at a time, this is a good moment to try Ghostty, it's free, it's a five-minute install, and the notification and graphics support alone will change how you work with agent output.
Grab it from the official download page, or check the full 1.4.0 release notes for the complete changelog.
If you're setting up a terminal workflow around agents in general rather than just Claude Code, it's worth reading how other teams are structuring parallel agent sessions in Claude Code and comparing notes on what's actually worth using in 2026.
New AI tools, automation workflows, and course drops — straight to your inbox. Join 2,400+ builders.
PEP 836 was withdrawn on Oct 19, 2026, so Python's experimental JIT is leaving CPython's main branch. Here's what changes in 3.15, 3.16, and what doesn't.
gpu-unlock is a free Linux kernel mod that removes Nvidia's FP16/BF16 tensor cap on RTX 30 GPUs, up to 80% more BF16 throughput on a 3090 Ti. Here's the real breakdown.
Sebastian Raschka's free 11-hour video course builds a reasoning model from scratch in Python and PyTorch, covering GRPO RL, inference scaling, and distillation.
Comments