# WezTerm

> A GPU-accelerated cross-platform terminal emulator and multiplexer written in Rust. Features tabs, splits, ligatures, and extensive Lua configuration.

Stars: 29.4k · Language: Rust · License: MIT · Platforms: Linux, macOS, Windows · Config: Lua

Features: GPU-accelerated, cross-platform, built-in multiplexer, ligatures, inline images, configurable

- Repository: https://github.com/wez/wezterm
- Page: https://www.trmn.sh/terminals/wezterm

## Overview

WezTerm is a GPU-accelerated terminal emulator and multiplexer written in Rust by Wez Furlong. It runs on Linux, macOS, Windows 10, FreeBSD and NetBSD, and it suits users who want tabs, splits and remote sessions inside the terminal itself and are comfortable configuring it in code.

Configuration is a Lua file, usually `~/.wezterm.lua`, that returns a config table built with `wezterm.config_builder()`. It reloads automatically when saved. Because the config is a program, it can register event handlers with `wezterm.on` and run its own logic for key bindings, appearance and startup behavior. The `wezterm cli` subcommand scripts a running instance from the shell, with commands such as `split-pane`, `spawn`, `send-text`, `get-text`, `activate-tab` and `zoom-pane`.

Multiplexing is built around domains, each a separate set of windows and tabs. The default local domain manages the windows on screen. WezTerm can also start or connect to a multiplexer server over a Unix socket, over SSH, or over TLS on TCP/IP, and attach those remote tabs to the native UI with normal mouse, clipboard and scrollback handling. SSH domains need a compatible WezTerm installed on the remote host. For plain connections, `wezterm ssh user@host` uses the built-in SSH client and opens new tabs and panes as channels on the same connection. WezTerm can also connect to serial ports.

Other features include ligatures, color emoji and font fallback, true color, hyperlinks, and searchable scrollback (Ctrl-Shift-F). It supports the iTerm2 image protocol with a built-in `imgcat` command, kitty graphics, and Sixel, which the docs mark as experimental. Text attributes include double underline and strikethrough. The docs describe multiplexing as a young feature that is still evolving, and the README calls WezTerm a spare-time project.

## Alternatives

- [Windows Terminal](https://www.trmn.sh/terminals/windows-terminal.md): Microsoft's terminal for Windows that hosts PowerShell, cmd and WSL shells in tabs and panes, with GPU text rendering and JSON settings. (Windows, 105.3k stars)
- [Tabby](https://www.trmn.sh/terminals/tabby.md): Cross-platform Electron terminal with a built-in SSH, Telnet and serial client, saved connection profiles and a plugin system. (Linux/macOS/Windows, 75.3k stars)
- [Alacritty](https://www.trmn.sh/terminals/alacritty.md): Cross-platform OpenGL terminal emulator written in Rust, configured with a TOML file and leaving tabs and splits to a multiplexer like tmux. (Linux/macOS/Windows/BSD, 66.1k stars)
- [Warp](https://www.trmn.sh/terminals/warp.md): Terminal written in Rust with an IDE-style command editor, command output grouped into blocks, and built-in AI agents. (macOS/Linux/Windows, 65.8k stars)
- [Termux](https://www.trmn.sh/terminals/termux.md): Android terminal emulator and Linux environment that installs packages through its own apt repository, no root required. (Android, 64.0k stars)
- [Ghostty](https://www.trmn.sh/terminals/ghostty.md): Terminal emulator written in Zig with GPU rendering and a native UI on each platform: Swift/AppKit on macOS, GTK on Linux. (Linux/macOS, 63.3k stars)
- [Hyper](https://www.trmn.sh/terminals/hyper.md): Electron terminal built on HTML, CSS and JavaScript, themed and extended through npm plugins. (Linux/macOS/Windows, 44.8k stars)
- [Kitty](https://www.trmn.sh/terminals/kitty.md): GPU-rendered terminal written in C and Python, with its own graphics protocol, built-in tabs and splits, and scriptable 'kittens'. (Linux/macOS/BSD, 35.5k stars)

## Guides

- [Alacritty Alternatives](https://www.trmn.sh/alternatives/alacritty): Alacritty alternatives: WezTerm, Kitty and Ghostty add tabs, splits and scripting; Windows Terminal and iTerm2 cover one OS each.
- [cmder Alternatives](https://www.trmn.sh/alternatives/cmder): cmder alternatives for Windows: Windows Terminal, WezTerm, and Tabby compared by shells, multiplexing, SSH, and configuration.
- [Ghostty Alternatives](https://www.trmn.sh/alternatives/ghostty): Ghostty alternatives: WezTerm, Kitty and Alacritty compared by platform, built-in tabs and splits, scripting, and licensing.
- [Hyper Alternatives](https://www.trmn.sh/alternatives/hyper): Hyper alternatives: WezTerm, Tabby, Kitty, Ghostty and Alacritty compared by config model, platform support and built-in features.
- [Kitty Alternatives](https://www.trmn.sh/alternatives/kitty): Kitty alternatives: WezTerm, Ghostty, and Alacritty compared by platform, multiplexing, scripting and rendering, plus Rio, Contour, iTerm2 and foot.
- [Tabby Alternatives](https://www.trmn.sh/alternatives/tabby): Tabby alternatives: WezTerm, Kitty, Windows Terminal and Wave compared by platform, scripting, SSH handling and plugin support.
- [WezTerm Alternatives](https://www.trmn.sh/alternatives/wezterm): WezTerm alternatives: Kitty, Ghostty, Alacritty, Windows Terminal and Tabby compared on multiplexing, config format and platform support.
- [Windows Terminal Alternatives](https://www.trmn.sh/alternatives/windows-terminal): Windows Terminal alternatives compared: WezTerm, Tabby, Alacritty, cmder, Hyper and Contour, with platform, config and multiplexing differences.

---

Canonical: https://www.trmn.sh/terminals/wezterm
