wezterm
Provide a GPU-accelerated terminal emulator
TLDR
Start a new Wezterm process and create a window
Establish an ssh session in a new Wezterm window
Connect to the multiplexer (wezterm-mux-server)
Output an image to the terminal
Record a terminal session as an asciicast (by default recordings are saved to /tmp)
Replay an asciicast terminal session
Specify the configuration file to use (overrides the normal configuration file resolution)
Display help
SYNOPSIS
wezterm [OPTIONS] [COMMAND]
wezterm start [OPTIONS]
wezterm cli <SUBCOMMAND> [ARGS]
PARAMETERS
--config <FILE>
Specify an alternative configuration file to load instead of the default.--font <FONT>
Override the default font family for the session.--class <CLASS>
Set a specific window class/resource name, useful for window manager rules.--daemonize
Start the WezTerm multiplexer server in the background as a daemon.--front-end <BACKEND>
Select the rendering backend for the UI (e.g., OpenGL
, WebGpu
).--program <PROGRAM>
Specify the program to run in the initial terminal pane instead of the default shell.--cwd <DIR>
Set the current working directory for the initial pane.--dimension <COLSxROWS>
Set the initial window dimensions in columns and rows.--tab-title <TITLE>
Set the title for the initial tab opened.--color-scheme <SCHEME>
Apply a specific color scheme for the session.--lua <SCRIPT>
Execute a Lua script on startup, then exit. Useful for scripting tasks.--hide-tab-bar
Hide the tab bar even if multiple tabs are open.--hide-window-decorations
Hide native window decorations (title bar, borders), relying on WezTerm's own UI.
DESCRIPTION
WezTerm is a powerful, cross-platform terminal emulator written in Rust, leveraging GPU acceleration for exceptional performance and smooth rendering. It's designed to be highly customizable and extensible, offering features typically found in separate tools like terminal multiplexers (e.g., tmux or screen). WezTerm supports true color, font ligatures, Unicode, and various modern terminal capabilities.
A standout feature is its comprehensive Lua scripting API, allowing users to deeply customize keybindings, appearance, and automate complex workflows. It includes a built-in multiplexer, enabling splitting panes and managing tabs within a single window, and even connecting to remote multiplexer instances via SSH, providing a seamless multi-session experience. WezTerm aims to be a modern, fast, and feature-rich replacement for traditional terminal setups.
CAVEATS
WezTerm's powerful Lua scripting for configuration and automation, while highly flexible, can have a learning curve for new users. As an actively developed project, new features and behaviors are frequently introduced, which occasionally might require adjustments to existing configurations.
SUBCOMMANDS
WezTerm extends its functionality through several powerful subcommands beyond just starting the GUI:
wezterm cli
: The command-line interface for interacting with a running WezTerm multiplexer server, used for managing panes, tabs, windows, and sending commands programmatically.wezterm ssh
: Connects to a remote host via SSH, optionally launching a remote multiplexer server or connecting to an existing one.wezterm connect
: Connects to a WezTerm multiplexer domain, which can be local or remote, enabling seamless session management.wezterm ls-fonts
: Lists all fonts detected and available to WezTerm, useful for debugging and configuring font settings.
CONFIGURATION FILE
WezTerm's primary configuration is done via a Lua script, typically located at ~/.config/wezterm/wezterm.lua
(or %USERPROFILE%\.wezterm.lua
on Windows). This file allows for deep customization of nearly every aspect of the terminal, from keybindings and color schemes to font rendering, appearance, and multiplexer behavior, offering unparalleled flexibility.
HISTORY
WezTerm was initiated by Wez Furlong, a prominent open-source developer with contributions to projects like Rust and MySQL. The first public commit to its GitHub repository dates back to August 2018. Furlong developed WezTerm to create a modern, high-performance terminal emulator that could address the limitations of older options. It was designed from scratch in Rust, prioritizing GPU acceleration, cross-platform compatibility, and extensive customizability through a Lua scripting interface. Its continuous development has integrated features like a built-in multiplexer and advanced rendering capabilities, solidifying its position as a leading modern terminal solution.