LinuxCommandLibrary

wezterm

Provide a GPU-accelerated terminal emulator

TLDR

Start a new Wezterm process and create a window

$ wezterm
copy

Establish an ssh session in a new Wezterm window
$ wezterm ssh [user]@[host]:[port]
copy

Connect to the multiplexer (wezterm-mux-server)
$ wezterm connect [domain_name]
copy

Output an image to the terminal
$ wezterm imgcat [path/to/image]
copy

Record a terminal session as an asciicast (by default recordings are saved to /tmp)
$ wezterm record
copy

Replay an asciicast terminal session
$ wezterm replay [path/to/cast_file]
copy

Specify the configuration file to use (overrides the normal configuration file resolution)
$ wezterm --config-file [path/to/config_file]
copy

Display help
$ wezterm help
copy

SYNOPSIS

wezterm [SUBCOMMAND] [OPTIONS]

PARAMETERS

--help, -h
    Print help information

--version
    Print version information

cli
    Interact with the wezterm multiplexer daemon

colorscheme
    List available colorschemes

copy-config
    Copy the default config file into place

create
    Create a workspace with specified windows/domains

csi
    Print CSI sequences

detect-gpu
    Show information about detected GPUs

format
    Format configuration using the configuration schema

gaussian-blur
    Apply a gaussian blur effect to an image

help
    Print help for subcommand

ls
    List windows/sessions/tabs/panes

ls-fonts
    List available fonts

print
    Print text from stdin as styled image

prune
    Prune dead ssh sessions

resize-pane-pane
    Resize a pane within its tab

screenshot
    Take a screenshot

seq
    Print a CSI sequence

set-colors-scheme
    Set the colorscheme

set-environment-variables
    Set environment variables

ssh
    Execute a command via ssh multiplexing

start
    Start a new wezterm process (default subcommand)

validate-config
    Validate the configuration file

DESCRIPTION

WezTerm is a modern, highly performant terminal emulator and multiplexer built in Rust. It utilizes GPU acceleration via Vulkan/OpenGL for smooth rendering, supporting features like ligatures, true color (24-bit), hyperlinks, scrollback search, and the Kitty image/graphics protocol. Cross-platform compatibility spans Linux, macOS, Windows, and even FreeBSD, ensuring consistent behavior everywhere.

Unlike traditional terminals, WezTerm embeds a multiplexer akin to tmux, enabling workspaces, tabs, panes, and multiplexing over SSH without external tools. Configuration is Lua-based (wezterm.lua), allowing programmatic customization of fonts, colorschemes, keybindings, leader keys, and shell integration.

The CLI (wezterm) launches instances, manages servers, queries state (e.g., window lists), and offers utilities like font enumeration, config validation, screenshots, and GPU detection. Ideal for developers needing power and portability, it prioritizes extensibility and minimal dependencies while handling large scrollbacks efficiently.

CAVEATS

Multiplexing requires a running daemon; initial setup may need config tweaks for optimal performance. GPU support varies by hardware/drivers.

CONFIGURATION

Primary config at ~/.config/wezterm/wezterm.lua; highly extensible via Lua modules.

KEY FEATURES

True color, ligatures, hyperlinks, workspaces, SSH multiplexing, Kitty protocol, scrollback regex search.

HISTORY

Developed by Wez Furlong as a personal project starting ~2017, first public release in 2020. Gained popularity for Rust efficiency and Lua config; version 20230712+ marked stable multiplexing. Actively maintained with weekly releases.

SEE ALSO

tmux(1), screen(1), alacritty(1), kitty(1)

Copied to clipboard