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.

