Coderefercoderefer
CoursesWebinarsBlogAbout
Coderefercoderefer

Discover. Learn. Automate. Grow.

Learn

  • Courses
  • Webinars
  • Blog
  • Search

Company

  • About
  • Contact
  • FAQ

Legal

  • Privacy Policy
  • Terms of Service
  • Refund Policy
© 2026 Coderefer. All rights reserved.
HomeBlogGhostty 1.4 Explained: 90% Less Memory, Full Kitty Graphics, and ghostty +ssh
ai-toolsOctober 28, 20269 min read

Ghostty 1.4 Explained: 90% Less Memory, Full Kitty Graphics, and ghostty +ssh

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.

V

Vamsi Tallapudi

Manager, Architect Technology at Cognizant

Ghostty 1.4 Explained: 90% Less Memory, Full Kitty Graphics, and ghostty +ssh

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.

What actually changed in memory usage?

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.

What is ghostty +ssh and why should you care?

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.

How good is the Kitty graphics support now?

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.

Is Ghostty actually a good terminal for Claude Code?

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:

  • Claude Code sends desktop notifications by default in Ghostty, Kitty, and iTerm2, with zero config
  • Shift+Enter for multi-line input just works
  • It's native and GPU-accelerated (Metal on macOS), not an Electron shell, so streaming long agent output or a big diff doesn't chug
  • The new Kitty graphics and clipboard support means community tooling can show you images inline instead of just a filename

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.

How does it compare to Kitty, WezTerm, and iTerm2?

TerminalConfig styleGraphics protocolNotable strength
Ghostty 1.4Plain text configFull Kitty graphics + clipboardNative GPU rendering, lowest memory now
KittyPlain text configNative Kitty graphics"Hints mode" for link selection, mature scripting
WezTermLua scriptingPartialBuilt-in remote multiplexing
iTerm2GUI settingsLimitedBest 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.

What's libghostty and why does it matter more than the terminal itself?

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.

What else shipped in 1.4?

A grab bag of changes that matter if you hit them, and invisible if you don't:

  • I/O throughput improved 25% to 55% on macOS from reading the pty concurrently
  • Plain ASCII parsing got about 5.7x faster, from roughly 128 MB/s to 725 MB/s
  • Resizing a terminal with a large scrollback buffer is about 6x faster
  • Catting a 150 MB file dropped from 1.5 seconds to 566 milliseconds
  • The Linux GTK renderer was rewritten on EGL, which fixes the blurry text a lot of people saw at fractional scaling like 125% or 150%
  • macOS 27 support landed, along with titlebar tab fixes
  • An OSC8 hyperlink vulnerability got patched, which a few HN commenters used as a reminder that terminal emulators handling untrusted escape sequences is still a real attack surface worth watching

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.

Should you switch to Ghostty 1.4?

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.

Official Announcements

Mitchell Hashimoto on Ghostty, libghostty, and building terminal infrastructure

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.

ai-tools terminal claude-code 2026

Comments

    Get AI tricks that save you hours every week

    New AI tools, automation workflows, and course drops — straight to your inbox. Join 2,400+ builders.

    Read Next

    Python's JIT Is Being Removed: PEP 836 Withdrawn, What 3.15 and 3.16 Mean for You
    ai-tools

    Python's JIT Is Being Removed: PEP 836 Withdrawn, What 3.15 and 3.16 Mean for You

    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.

    October 28, 20267 min read
    gpu-unlock Explained: Up to 80% More FP16/BF16 Speed on RTX 3090/3080
    ai-tools

    gpu-unlock Explained: Up to 80% More FP16/BF16 Speed on RTX 3090/3080

    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.

    October 28, 20268 min read
    Raschka's Free Reasoning Models From Scratch Course, Explained
    ai-tools

    Raschka's Free Reasoning Models From Scratch Course, Explained

    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.

    October 27, 20265 min read
    View all posts →