Ghostty vs WezTerm
Ghostty and WezTerm compared as GPU-accelerated terminal emulators: platforms and official builds, native UI vs Lua config, multiplexing and SSH, Kitty graphics, release cadence and project governance as of November 2026.
Quick Answer
Ghostty is an MIT-licensed terminal with a Zig core (libghostty) and truly native front ends: Swift/AppKit on macOS and GTK4 on Linux. It aims for zero configuration, ships hundreds of themes, has complete Kitty graphics support and gets regular tagged releases (1.4.0 on 27 Oct 2026); it does not run on Windows yet. WezTerm is an MIT-licensed Rust terminal and multiplexer that runs on Windows, macOS, Linux, FreeBSD and NetBSD, is configured and extended in Lua, and has built-in SSH, Unix and TLS multiplexing domains. Its last tagged release is from February 2024; development continues on main and in nightly builds. Pick Ghostty for a fast, native, low-config terminal on macOS or Linux; pick WezTerm if you need Windows, remote multiplexing or a fully programmable config.
Last updated November 1, 2026. Covers Ghostty 1.4.0 (27 Oct 2026) and 1.3.0, and WezTerm's latest stable release (3 Feb 2024) plus nightly status through 1 Nov 2026, using both projects' docs, release notes and GitHub data.
| Feature | Ghostty | WezTerm |
|---|---|---|
| Licence | MIT | MIT |
| Written In | Zig core (libghostty); Swift GUI on macOS, Zig + GTK4 on Linux | Rust |
| Platforms | macOS 13+ and Linux (FreeBSD via the GTK app); Windows planned | Windows 10 (17763+), macOS, Linux, FreeBSD, NetBSD |
| Official Prebuilt Binaries | macOS only (signed, notarized universal .dmg); Linux via distro packages or source | Yes for Windows (setup.exe, zip, winget), macOS (universal zip, Homebrew), Linux (AppImage, deb/rpm repos, Flathub) |
| Configuration | config.ghostty text file (key = value); zero-config defaults | .wezterm.lua (Lua) with hot reload |
| Native Platform UI | Yes: AppKit/SwiftUI on macOS, GTK4/libadwaita on Linux | No: custom-drawn tab bar and panes |
| Tabs and Splits | Yes, native tabs and splits; drag-and-drop split rearranging (GTK since 1.4) | Yes: windows, tabs, splits, plus workspaces |
| Built-in Multiplexing / Detachable Sessions | No (use tmux or Zellij) | Yes: local, SSH, Unix-socket and TLS mux domains; WSL domains |
| SSH Integration | ghostty +ssh wrapper: installs terminfo, forwards COLORTERM/TERM_PROGRAM (1.4) | Built-in SSH client (wezterm ssh), agent forwarding (nightly), SSHMUX domains |
| Inline Image Protocols | Kitty graphics protocol, 100% of the published spec incl. animation (1.4) | iTerm2 protocol + imgcat, Kitty graphics, Sixel (experimental) |
| Scrollback Search | Yes, since 1.3 (cmd+f on macOS, ctrl+shift+f on GTK) | Yes (ctrl+shift+f) |
| Plugins / Scripting | No plugin system; AppleScript on macOS; libghostty C API for embedding | Lua plugins loaded from Git URLs; full Lua event API |
| Project Governance | Non-profit, fiscally sponsored by Hack Club (501(c)(3)); donation-funded | Single-maintainer project led by Wez Furlong; GitHub sponsorship |
| Latest Tagged Release (Nov 2026) | 1.4.0 (27 Oct 2026) | 20240203-110809-5046fc22 (3 Feb 2024); nightly built continuously (last main commit 26 Oct 2026) |
Ghostty
MIT-licensed, GPU-accelerated terminal emulator with a shared Zig core (libghostty) and platform-native GUIs: Swift with AppKit/SwiftUI on macOS and GTK4 on Linux.
Pros
- Native on each platform: macOS tabs, splits, Quick Look, secure keyboard entry, a drop-down Quick Terminal and AppleScript automation; GTK4/libadwaita on Linux
- Works with zero configuration: embedded JetBrains Mono, built-in Nerd Font symbols, hundreds of bundled themes with automatic light/dark switching
- Complete Kitty graphics protocol support including animation and relative placements (1.4), plus the Kitty keyboard and clipboard protocols
- Ghostty 1.4 compresses idle scrollback (70-90% less physical memory for text-heavy history per the release notes), raised the default scrollback limit to 50 MB and improved macOS I/O throughput by 25-55% over 1.3
- ghostty +ssh wrapper installs Ghostty's terminfo on remote hosts and falls back to xterm-256color when it can't
- Regular tagged releases with long, hand-written release notes; owned by a 501(c)(3) non-profit (Hack Club fiscal sponsorship)
Cons
- No Windows build: the docs say Windows support is planned for the future
- Official binaries are macOS-only; on Linux you rely on distro or community packages, or build from source (1.4 needs GTK 4.18 and libadwaita 1.7)
- No built-in detachable sessions or remote multiplexing; pair it with tmux or Zellij
- Configuration is a plain key = value text file with no scripting language and no settings GUI yet
Best For
macOS and Linux developers who want a fast terminal that feels like a native app, works well out of the box and supports modern terminal protocols for tools like Neovim and Zellij.
WezTerm
MIT-licensed, GPU-accelerated cross-platform terminal emulator and multiplexer written in Rust by Wez Furlong, configured and extended in Lua.
Pros
- The widest platform reach of the two: Windows 10 (build 17763+), macOS, Linux, FreeBSD and NetBSD, with official installers for each
- Built-in multiplexer: SSH domains, Unix-socket domains, TLS domains and WSL, with tabs that survive a dropped connection when the remote runs a WezTerm mux server
- Integrated SSH client (wezterm ssh) that reads ~/.ssh/config and auto-populates SSH and SSHMUX hosts from it
- Everything is programmable in Lua: .wezterm.lua with hot reload, key tables, workspaces, event hooks and Git-URL plugins
- Broad graphics support: iTerm2 image protocol with a bundled imgcat, Kitty graphics and experimental Sixel
- Quick Select, copy mode, searchable scrollback and serial-port connections for embedded work
Cons
- The last tagged stable release is 20240203-110809-5046fc22 (3 Feb 2024); newer fixes ship only in continuous nightly builds
- Flathub carries only stable releases, so Flatpak users get the 2024 build
- The nightly changelog warns that Wayland support is being reimplemented and may be less stable than usual
- Lua configuration is powerful but means more setup and more to maintain than a zero-config terminal
- Custom-drawn UI rather than native platform widgets
Best For
Developers who need one terminal across Windows, macOS and Linux, want tmux-style multiplexing and SSH domains built into the terminal itself, or like scripting their setup in Lua.
Platforms and how you install them
This is the first filter and it is decisive for many readers. Ghostty runs on macOS and Linux. Its feature page states plainly that Windows support is planned for the future, and the 1.4 release notes mention FreeBSD alongside Linux for the GTK renderer. The project officially distributes binaries for macOS only: a signed, notarized universal .dmg that needs macOS 13 Ventura or later, also repackaged by the community Homebrew cask. On Linux, Ghostty relies on distribution maintainers and community packagers: it is in Arch's extra repository, Alpine testing, Gentoo, Nixpkgs and conda-forge, and otherwise you build it from source. Ghostty 1.4 raised its Linux floor to GTK 4.18 and libadwaita 1.7, following a policy of targeting what the latest Debian, Fedora and Ubuntu LTS releases ship. WezTerm covers far more ground. It runs on 64-bit Windows 10 build 17763 or later (it needs ConPTY), macOS, Linux, FreeBSD and NetBSD, and the project itself publishes a Windows setup.exe and portable zip, a universal macOS zip, a Linux AppImage, apt and rpm repositories and a Flathub package, with Homebrew and winget entries on top. The catch is version freshness: Flathub only accepts stable releases, so Flatpak users are on the February 2024 build, while the AppImage, Homebrew wezterm@nightly cask and installers offer nightly builds.
Native app vs programmable terminal: configuration philosophy
The two projects disagree about what a terminal should be. Ghostty's documentation describes a zero-configuration philosophy: it embeds JetBrains Mono, has built-in Nerd Font symbols, ships hundreds of themes that can follow the system's light or dark mode, and treats every setting a typical user must change as a bug to fix. When you do configure it, you write a plain config.ghostty file of key = value lines; there is no scripting language, and a native settings GUI is described as a future plan. Keybindings got more expressive in 1.3 with key tables, chained keybinds and a catch_all trigger, but logic still lives outside the terminal. On macOS the native angle goes further: AppleScript automation of windows, tabs and input, Shortcuts integration, Quick Look, secure keyboard entry and a drop-down Quick Terminal. WezTerm is the opposite: its configuration is a Lua program, .wezterm.lua, reloaded automatically when it changes. You can define key tables, react to events, build a custom tab bar, manage workspaces that behave like tmux sessions and pull in plugins straight from a Git URL with wezterm.plugin.require. That power is the reason many people pick WezTerm, and also the reason it takes longer to set up: there is more to learn, more to maintain, and a custom-drawn UI instead of native widgets.
Multiplexing, SSH and remote work
If you live on remote servers, this section matters most. WezTerm is a terminal and a multiplexer in one. Out of the box it multiplexes local tabs and windows; with configuration it can connect to additional multiplexing domains. An SSH domain runs a WezTerm mux daemon on the remote host (a compatible WezTerm must be installed there) and attaches its tabs to your local window, so a dropped connection does not kill your shells. Unix domains do the same over a local socket, TLS domains over TCP, and WSL distributions can be attached directly on Windows. Since version 20230408 WezTerm auto-populates plain SSH and SSHMUX hosts from ~/.ssh/config, and its embedded SSH client honours common options such as IdentityFile, ProxyCommand and Host wildcards. Ad-hoc wezterm ssh sessions open each new tab as a channel on the same connection without re-authenticating, though they are not persistent. Ghostty has no detachable sessions or remote domains in its documentation; the expected setup is Ghostty plus tmux or Zellij. What it does offer is good remote ergonomics: Ghostty 1.4's ghostty +ssh is a drop-in ssh wrapper that installs Ghostty's own terminfo on the remote, forwards COLORTERM and TERM_PROGRAM, caches installs per host and port, and falls back to TERM=xterm-256color when tic is missing. Alias ssh to it and the classic 'unknown terminal type' problem goes away.
Terminal protocols, graphics and rendering
Both are GPU-accelerated. Ghostty uses Metal on macOS and OpenGL on Linux, and 1.4 replaced the GTK renderer with an EGL pipeline that renders on its own thread and hands DMABUF frames to GTK, which the release notes say fixes blurry text under fractional scaling such as 125% or 150%. Ghostty's protocol support is its strongest technical selling point: 1.4 added Kitty graphics animation and relative placements, and the project says its implementation now covers 100% of the published Kitty graphics specification, the first terminal outside Kitty to do so. It also implements the Kitty keyboard protocol, the Kitty clipboard protocol (OSC 5522) for images and rich data, light/dark mode notifications, synchronized rendering, and now runs Thomas Dickey's esctest conformance suite in CI. Release 1.4 also fixed ten security advisories, mostly around malicious terminal output, paste protection and hyperlinks, so staying current matters. WezTerm takes a broader rather than deeper approach to images: it supports the iTerm2 image protocol with a bundled wezterm imgcat command, Kitty graphics, and Sixel, which its docs still label experimental. It renders an unusually wide set of text attributes, including double underline and strikethrough, and supports ligatures, colour emoji and font fallback. For Neovim users with image plugins, or TUI apps that use the Kitty protocols, Ghostty is the safer bet today.
Release cadence, maintenance and long-term risk
Neither project costs anything, so the real price is maintenance risk. Ghostty publishes tagged releases with detailed notes: 1.3.0 on 9 March 2026 and 1.4.0 on 27 October 2026, the latter after seven months of work by 172 contributors across 2,889 commits. The project is owned by Hack Club, a 501(c)(3) non-profit acting as its fiscal sponsor; donations are tax-deductible in the US, 7% goes to Hack Club, and the rest pays contributors and infrastructure. The non-profit structure is a deliberate guarantee that Ghostty cannot simply be sold or pivoted. WezTerm is essentially one maintainer's project. Its most recent tagged release is 20240203-110809-5046fc22 from 3 February 2024. Work has not stopped: the main branch received 168 commits between January and late October 2026, the last on 26 October, and nightly builds are produced continuously, with the changelog describing nightly as what Wez uses daily and usually the best available version. But anyone who needs a stable, versioned build for a team image or a distro package is effectively pinned to 2024 or to a moving nightly target. WezTerm's sponsor page is candid that cross-platform maintenance is labour-intensive. If predictability matters to you, Ghostty's cadence is the stronger signal; if you need WezTerm's feature set, plan to track nightlies and pin a known-good build.
Verdict
Choose Ghostty if you work on macOS or Linux and want a terminal that disappears into the platform. It uses real AppKit and GTK4 widgets, needs no configuration to look good, has the most complete Kitty graphics support outside Kitty itself, and is shipping steady tagged releases: 1.3 in March 2026 brought scrollback search, scrollbars and key tables, and 1.4 in October 2026 added scrollback compression, a new Linux renderer that fixes blurry text under fractional scaling, and the ghostty +ssh wrapper. Use it with tmux or Zellij when you need sessions that survive a closed window. Choose WezTerm if you need Windows, or if the multiplexer is the point: SSH, Unix and TLS domains let your tabs live on a remote mux server and reattach after a dropped connection, and Lua lets you script anything from key tables to workspaces. Go in knowing that the newest stable build is from February 2024, so in practice you will run nightly builds, which the maintainer describes as usually the best available version. If you are on Windows and want neither caveat, WezTerm is still the stronger of these two today because Ghostty has no Windows build at all.


