mrkeyoor.com_
Tue 01 Sept 17:41 UTC
Dev Toolsevaluationupdated 30 Aug 2026

wezterm review

WezTerm is a GPU-rendered terminal emulator and terminal multiplexer for Linux, macOS, Windows, FreeBSD, and NetBSD. It combines ordinary terminal windows with panes, tabs, searchable scrollback, Lua configuration, SSH connections, serial-port access, and local or remote persistent sessions.

+33 / 2dstars / 7d
Verdict

Our WezTerm checkout pulled 790 packages, then both build and test stopped because the Debian sandbox lacked x11-xcb, so source setup is not a Cargo-only job. Install a published package if you want a programmable terminal with panes, SSH, graphics, and cross-platform configuration. Build from source only after using the documented dependency script, and prefer a recent nightly when a current platform bug affects you.

We ran it

Lab card: what happened when we ran weztermScreenshot of wezterm (wezterm.org)
Install✓ · 37s790 packages
Build✗ · 195s
Tests✗ · 93sran, no count parsed
Repo6872 files~992,581 lines of source · 283.9 MB · 35 CI workflows

Answers from our run

Does wezterm build from source?

Dependencies installed in 37 seconds (790 packages), and the build failed. We cloned commit 08e5e0a into a clean Debian container with 3 CPUs and no project-specific setup.

Do wezterm's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use wezterm?

Source builders who expect Cargo alone to supply desktop libraries: our build and test commands both stopped because x11-xcb was absent from pkg-config.

What are the alternatives to wezterm?

Kitty, Alacritty, Ghostty. Our WezTerm checkout pulled 790 packages, then both build and test stopped because the Debian sandbox lacked x11-xcb, so source setup is not a Cargo-only job.

Setup3/5Packages are easy; source build needs native X11 libraries
Docs5/5Deep platform, Lua, protocol, multiplexing, and install references
Community5/528,640 stars and active August 2026 issue and pull request work
Maturity4/5Broad platform support, though the stable tag and main have diverged

Discussed on

  1. hnOkay, I Like WezTerm488 points
  2. hnWezterm – A GPU-accelerated cross-platform terminal emulator and multiplexer181 points
  3. hnWezTerm is a GPU-accelerated cross-platform terminal emulator written in Rust175 points
  4. hnHow to Obsessively Tune WezTerm115 points
  5. hnWezTerm – A GPU-accelerated cross-platform terminal emulator and multiplexer114 points

Who it’s for

Developers who want one terminal configuration across Linux, macOS, and Windows.
Users who want tabs, panes, images, ligatures, SSH, and multiplexing in one application.
Lua users who prefer programmable key bindings, events, appearance, and launch behavior.
People willing to use nightly packages when they need fixes newer than the 2024 stable tag.

Who it’s NOT for

Source builders who expect Cargo alone to supply desktop libraries: our build and test commands both stopped because x11-xcb was absent from pkg-config.
Linux users who need a pure Wayland source build: the documentation says building without X11 is unsupported.
Teams that permit only stable tagged releases but need recent fixes: the latest GitHub release is from February 2024, while development and issue fixes continued in August 2026.
KDE Wayland users who cannot tolerate display-scaling regressions: current issues 8110 and 8112 report clipping and first-snap failures on fractional or mixed-scale setups.
Users who want a small, simple terminal codebase: the checkout had 6,872 files and about 992,581 source lines.

Setup reality

Our sandbox installed 790 packages in 37 seconds. The build failed with exit code 101 after 195 seconds, and tests failed with the same code after 93 seconds. Both logs say pkg-config could not find the required system library x11-xcb; PKG_CONFIG_PATH was unset and x11-xcb.pc was unavailable.

Installing a published package is much easier than building the repository. WezTerm provides or documents packages for major desktop systems, while source builds need Rust 1.71 or newer, Git submodules, and native support libraries. The included get-deps script attempts to install them.

Unix builds include X11 and Wayland by default, and X11 cannot be disabled. Windows source builds require the MSVC Rust toolchain plus Strawberry Perl. Lua configuration is optional for basic use, but remote multiplexing needs a compatible WezTerm installation on the other host.

WezTerm combines a terminal window with a multiplexer

WezTerm is more than a fast place to run a shell. The application manages windows, tabs, and split panes locally, and it can attach those interfaces to a multiplexer domain on another process or machine. Searchable scrollback, hyperlinks, bracketed paste, mouse reporting, ligatures, color emoji, and font fallback are built in. It can also display iTerm2 images, Kitty graphics, and experimental Sixel output.

The remote story is a reason to choose it over a simpler emulator. WezTerm can make ordinary SSH connections or start a compatible WezTerm multiplexer on the remote host. SSH domains require WezTerm at both ends. Unix-domain sessions can keep local tabs alive and can connect a Windows GUI to WSL 1. TLS domains bootstrap through SSH, obtain a certificate, and then reconnect over an encrypted TCP connection after an interruption. The documentation still labels multiplexing as a young feature.

Lua can change almost every visible behavior

A basic .wezterm.lua file returns a configuration table. It can set fonts, colors, initial dimensions, launch commands, panes, key tables, domains, and window behavior. WezTerm watches the file and hot-reloads most changes. Command-line values can override the file, and a window can receive its own overrides. Larger configurations can be split into Lua modules under the documented config paths.

That flexibility has a cost. The file is executable Lua, and WezTerm may evaluate it several times in one process during startup or reload. The documentation warns against unconditional side effects such as launching background processes, since repeated evaluation can spawn many copies. People who only want a color scheme can keep the file tiny. People building a personalized terminal environment should treat it like maintained code, with source control and a fallback config.

What happened when we ran it

Our sandbox fetched 790 Rust packages in 37 seconds for commit 08e5e0a. The checkout itself contained 6,872 files, about 992,581 lines of source, and occupied 283.9 MB. The build ran for 195 seconds before failing with Cargo exit code 101. It did not reach a completed WezTerm binary.

The final error is concrete. Pkg-config could not locate x11-xcb.pc, PKG_CONFIG_PATH was unset, and the x11 crate reported that its required x11-xcb system library was missing. The test command then ran for 93 seconds and failed with the same exit code and the same missing-library message. The log contains no test summary, so claiming any number of passed or failed tests would be false.

Our scan found 35 CI workflow files, no Dockerfile, and no tests directory. Those signals show a large platform matrix without making the fresh Debian source build self-contained. The source-install guide tells users to run the repository's get-deps script because Cargo does not install all native window-system libraries. In this container, skipping or not satisfying that prerequisite prevented both compilation and tests.

Linux packages avoid the missing x11-xcb build step

WezTerm documents Flatpak, AppImage, APT, Copr, distribution packages, Linuxbrew, Nix, and other Linux routes. Flatpak is convenient for a trial, but its sandbox limits process inspection and changes some CLI behavior. The project recommends moving to a native package for full use. AppImage is another low-commitment option, while native repositories make normal upgrades simpler.

Building from source needs Rust 1.71 or newer, initialized Git submodules, and the native libraries handled by get-deps. Unix builds enable X11 and Wayland by default. A build can omit Wayland, but the guide says X11 cannot be disabled. Windows source builds must use the MSVC Rust toolchain and Strawberry Perl. These requirements make source work reasonable for contributors, but excessive for someone who only wants a terminal executable.

The 2024 stable tag and 2026 main branch are different choices

The latest GitHub release is 20240203-110809-5046fc22, published on February 3, 2024. GitHub showed the main branch pushed on August 29, 2026, with 28,640 stars and 1,829 combined issues and pull requests. Current work includes Windows pointer behavior, macOS input methods, Wayland sizing, and a gradual move away from the unmaintained winapi crate. A stale tag alone does not mean the project is abandoned.

It does mean stable-only users miss more than 2 years of main-branch changes. The installation guide offers nightly packages across several systems, and recent issue templates ask reporters to try the latest nightly. That development model is workable for individual developers who can update or roll back. An organization that pins only formal releases must test whether the 2024 build has the platform behavior it needs.

Fractional scaling remains a current Linux risk

Issue 8110 reports the bottom terminal row clipped on KDE Wayland at 1.15 scaling when a window is maximized. Issue 8112 describes the first snap reverting on a mixed-scale Wayland setup and includes a proposed code change. Both reports are specific to recent builds and display configurations. They do not establish a general Wayland failure.

WezTerm remains a strong choice for developers who will use its Lua events, graphics protocols, SSH client, or multiplexer. If those features are unnecessary, Alacritty plus tmux has fewer application-specific concepts. For WezTerm, install a platform package first, reproduce your font and scaling setup, then decide whether a nightly is preferable to the old stable release. The source tree should be the contributor route, not the default installation plan.

Alternatives

ProjectWhat it isPick it when
Kitty gh↗A GPU terminal with tabs, layouts, graphics, and scriptable remote control.pick this instead when Kitty's keyboard-driven layout model and remote-control tools fit better than Lua configuration.
Alacritty gh↗A focused GPU terminal that leaves multiplexing to separate tools.pick this instead when you want a smaller terminal surface and already use tmux or another multiplexer.
Ghostty gh↗A native terminal emulator with GPU rendering and platform-specific interfaces.pick this instead when native desktop integration matters more than WezTerm's remote multiplexer.
tmux gh↗A long-running terminal multiplexer that works inside many terminal emulators.pick this instead when persistent remote sessions matter and you do not want the client and server tied to one terminal application.

What people are saying

  1. [velocity-scout] wezterm/wezterm

Sources

  1. WezTerm README
  2. WezTerm feature guide
  3. WezTerm source installation guide
  4. WezTerm multiplexing guide
  5. Issue 8110: KDE fractional scaling clipping
  6. Issue 8112: mixed-scale Wayland snap failure

More dev tools reviews

workmux · v2rayNG · SecLists · hashcat · eslint · fastfetch · the whole board →