Ghostty 1.4 ships full Kitty graphics, lower memory and security fixes
Ghostty 1.4.0 was released on October 27, 2026. The maintainers call it a major release. It represents 7 months of work, with changes from 172 contributors over 2,889 commits. The notes say they were hand-written by human maintainers, changelog included, and took a combined 16+ hours to write.
Security comes first in the notes. They list ten advisories. Six apply across platforms: GHSA-4hwh-wx3w-3fqg (paste protection did not treat carriage returns as line endings, so a paste could run a command without confirmation in programs that do not use bracketed paste; it needs a copy-paste by the user); GHSA-mhff-mv4q-fp63 (malicious Kitty graphics commands could crash or hang Ghostty, force huge allocations, or in limited cases read or delete files outside the allowed temporary directories, just by displaying malicious output); GHSA-hcr9-7hcr-mjm8 and GHSA-hp9c-qp4q-cpw3 (malicious terminal output could crash Ghostty and close every window via tmux control mode, the second through a layout with a zero-sized or oversized pane; tmux need not be installed; both affect 1.3.0 and 1.3.1); GHSA-w9q4-5jvv-mcv4 (clearing the screen into scrollback could corrupt memory if it deleted the page holding a styled or hyperlinked cursor, but only with a very small scrollback-limit such as 0; the default is not known to be affected); and GHSA-2r63-vmw6-3m3c (a crafted directory name could make the zsh shell integration send arbitrary escape sequences, such as silently replacing the clipboard via OSC 52; bash was affected in a more limited way; it needs the user to cd into a directory from untrusted content, such as a cloned repository). Four more are macOS only: GHSA-cw69-wm67-5pv8 (cmd-clicking a crafted OSC 8 hyperlink could open unsafe local files or custom URL schemes, leading to arbitrary command execution; Ghostty now blocks unsafe targets and confirms custom URL schemes); GHSA-mfw9-xcr3-7gfp (the same issue for links detected by the link configuration, including the default URL matcher); GHSA-v8cw-fg4j-jcc4 (drag-and-drop text skipped paste protection); and GHSA-mxqx-236q-wrv7 (opening a file whose name contains control characters could run a different command than the one shown in the confirmation dialog). The author writes that CVEs were requested weeks ago but GitHub has not assigned them yet, and that the notes will be updated if and when they are.
Ghostty 1.4 supports macOS 27 (Golden Gate), mostly through compatibility fixes: tabs in the titlebar lay out correctly again, the native tab bar no longer draws as a solid gray bar over the theme, macos-titlebar-style = hidden no longer covers the top lines of the terminal when Reduce Transparency is on, the app icon lost a thin border, and the Shortcuts 'New Window' action no longer opens two windows when Ghostty has none open. It stays compatible back to macOS 13 (Ventura). Ghostty 1.3.1 runs on macOS 27 but shows some of these visual issues, such as the gray tab bar.
On graphics, Ghostty now supports Kitty graphics animation and relative placements, the last major features of the protocol it lacked. Animated images, such as a GIF shown with kitten icat, now play instead of showing one frame, and animations pause while the terminal is not visible. Relative placements let a program position one image relative to another so the child moves with its parent. A conformance pass against the specification and Kitty itself fixed dozens of behavioural differences: images scroll with text inside scroll regions, retransmitting an image ID replaces the old image, and invalid image data now gets an error response rather than silence. Image payloads are parsed in bulk with SIMD, which the maintainers measured as about 16x faster for large transfers (64 MiB of image data, x86_64 Linux). They say coverage of the published specification is now 100%, making Ghostty and libghostty the first terminal to reach that outside Kitty itself.
Memory is the other headline. Ghostty now transparently compresses scrollback that is not visible, cutting the physical memory those pages use by 70% to 90% for typical text-heavy history. Compression runs only while the terminal is idle, and pages are decompressed on demand when you scroll back or search, so the notes say it has no measurable effect on I/O throughput. Because of it, the default scrollback limit rises from 10 MB to 50 MB per terminal; where compression is supported, a full scrollback should generally still use less physical memory than the old 10 MB did. It lowers resident memory, not virtual memory, and is available on macOS and 64-bit Linux. Other savings: a new empty terminal on macOS uses about 16 KiB of terminal page memory, down from 128 KiB in 1.3.1; memory freed by clearing or trimming scrollback now goes back to the OS on macOS and Linux; and hidden tabs release their GPU resources. With one visible tab and 20 hidden ones on macOS, GPU memory fell from about 385 MiB to 18 MiB, and rebuilding takes under a millisecond.
Performance gains are broad. The biggest came from a discovery: on macOS the kernel caps every pty read at about 1 KiB however large the buffer is, so Ghostty used to pay per-read overhead every kilobyte while the writing program sat blocked. It now drains the pty on one thread and parses on another, raising end-to-end I/O throughput by 25% to 55% on macOS (M4 Max, plain and Unicode text) over 1.3.x. VT parsing is faster too: in parser benchmarks plain ASCII went from 128 MB/s to 725 MB/s (5.7x), CJK text got 3.4x faster, and a 2.6 GB dataset of asciinema recordings is processed about 25% faster. Together this took cat-ing a 150 MB text file on macOS from 1.5 seconds to 566 milliseconds. Further items: resizing a terminal with large scrollback is about 6x faster (120x80 with 10,000 lines), and 3x to 5x faster with CJK or emoji history; the renderer holds the terminal lock 2.7x to 11x less per frame; formatting contents as plain text, HTML or VT (behind clipboard copy, write_screen_file and scrollback search) is 1.5x to 8x faster; macOS launches about 15% faster to a visible window and 27% faster to the first rendered frame; the macOS display link sleeps when there is nothing to draw, and hidden GTK tabs stop rendering; OSC 52 payloads parse about 30x faster and short sequences such as title changes about 6x faster.
The GTK app gets a new rendering pipeline. It no longer uses GtkGLArea: the renderer draws with EGL on its own thread, exports each frame as a DMABUF and hands it to GTK. Rendering is triple-buffered, which should greatly reduce tearing, and no OpenGL calls run on the main thread, letting the team remove a number of workarounds. The visible result is crisp text and box-drawing characters under fractional scaling such as 125% or 150%; an earlier fix had regressed after upstream GTK changes. The new surface needs a system EGL library, and on GPU drivers that cannot export DMABUFs Ghostty falls back to copying frames through the CPU, which is slower but works.
Ghostty also implements the Kitty clipboard protocol (OSC 5522) on macOS and GTK; 1.3 could parse it but not act on it. Unlike OSC 52, which handles plain text only, it lets programs read and write any clipboard data, such as images or HTML, choose among formats, and enable paste events (mode 5522) so a program learns what a paste contains and can accept, for example, a pasted image. It follows the existing clipboard-read and clipboard-write settings: by default reads prompt for permission and writes are allowed. The prompt previews the contents, including images, and a program that sends a password can have your answer remembered for the terminal session. A new clipboard-write-limit-bytes setting caps a single write (default 64 MiB); an over-limit write fails and leaves the clipboard untouched.
GTK users can now rearrange splits by dragging, matching the macOS feature from 1.3. With two or more splits, each shows a drag handle at the top; drop it on any other split, including in other tabs and windows, with an overlay showing which side it will land on. Contents, working directory and running processes move with it. A new drag-handle setting (auto by default, always, or never) controls the handles on macOS and GTK; never disables mouse rearranging, which answers a common request from users who found the handles in the way. On GTK splits can only be dropped onto other splits; dragging one out to a new tab or window is macOS-only. The release also mentions SSH integration improvements and dozens of terminal emulation improvements, but those sections are not covered here.
Key facts
- Ghostty 1.4.0 (released October 27, 2026) covers 7 months of work, 172 contributors and 2,889 commits.
- Kitty graphics now includes animation and relative placements; the maintainers say it covers 100% of the published spec, a first outside Kitty itself, with SIMD parsing of large image transfers about 16x faster in their benchmarks.
- Scrollback that is not visible is compressed, cutting its physical memory by 70% to 90% for typical text-heavy history; the default scrollback limit rises from 10 MB to 50 MB per terminal.
- Draining the pty on one thread and parsing on another raises macOS I/O throughput by 25% to 55% (M4 Max); cat-ing a 150 MB file drops from 1.5 seconds to 566 milliseconds.
- Ten security advisories are fixed, from paste-protection bypasses to tmux-triggered crashes and a Kitty graphics file read/delete issue; CVE numbers have not yet been assigned.
Why it matters
Ghostty is a terminal emulator, and this release attacks the two things terminal users feel most: speed under heavy output and memory held by long scrollback. The maintainers trace their biggest gain to a macOS quirk, the kernel's roughly 1 KiB cap on every pty read, and report that cat-ing a 150 MB file now takes 566 milliseconds instead of 1.5 seconds. Compressing hidden scrollback is what lets them raise the default history from 10 MB to 50 MB without using more physical memory in a full buffer. On features, they say Ghostty is now the first terminal besides Kitty to implement the whole published Kitty graphics spec, and it adds the Kitty clipboard protocol so terminal programs can handle images and HTML, not just text.
Who it affects
Everyone running Ghostty on macOS or Linux (GTK). macOS users get macOS 27 (Golden Gate) fixes and faster launch, with support kept back to macOS 13 (Ventura). GTK users get the new EGL/DMABUF renderer, sharper text at fractional scaling and split dragging. Anyone on 1.3.0 or 1.3.1 is exposed to the tmux control mode crashes. Authors of terminal programs that use Kitty graphics, animation or the clipboard protocol gain new capabilities, and package maintainers must now supply a system EGL library for the GTK build.
How to use it
Upgrade to 1.4.0 from the release notes at ghostty.org. Scrollback compression needs no setup, but to measure it look at resident memory, not virtual memory. Settings added or changed: clipboard-write-limit-bytes (default 64 MiB) caps one clipboard write; clipboard-read and clipboard-write still decide access, with reads prompting and writes allowed by default; drag-handle takes auto (default), always or never. Animated Kitty images can be tried with something like kitten icat on a GIF. If you have changed scrollback-limit, check it against the new 50 MB default. The notes mention no price or licence change.
How solid is it
The notes come straight from the Ghostty maintainers, with PR numbers listed under each section. All performance figures are the maintainers' own measurements, and some name their hardware: the 25% to 55% I/O gain was on an M4 Max, the 16x image parsing on x86_64 Linux; other speedups give no hardware. The 'first non-Kitty terminal' and 100% spec coverage claims are their own statement. The retelling here rests on the part of the notes that was available; the terminal emulation section and the rest of the changelog are not covered.
Risks and caveats
The security fixes show what was exposed before: displaying malicious output alone could crash Ghostty or, in limited cases, read or delete files outside the allowed temporary directories via Kitty graphics, and a crafted directory name could make zsh integration silently replace the clipboard. Several others need a user action, such as pasting, cmd-clicking or dragging. The GHSA identifiers have no CVE numbers yet; the author says GitHub has not assigned them. Compression works only on macOS and 64-bit Linux, and it cuts resident memory only, not virtual. On GPU drivers that cannot export DMABUFs the GTK renderer falls back to slower CPU copying. Dragging a split into a new tab or window is macOS-only, and the pty throughput finding is specific to macOS.
“on macOS, the kernel caps every read from a pty at about 1 KiB no matter how large the read buffer is.”
— Ghostty 1.4.0 release notes