WezTerm
wezfurlong.org- Category
- Developer Tools
- Rank
- No. 149Tools index
- Listed in
- #22 Interface with your agents
- Pricing
- Open Source
- Type
- TOOL
- Builder
- wez
- GitHub
- 28.8k stars
- Latest release
- 20240203-110809-5046fc22
- Date
About
GPU-accelerated terminal emulator and multiplexer in Rust. Mac, Linux, Windows.
What it does
WezTerm combines terminal windows, tabs, split panes, scrollback, and remote sessions in one configurable workspace. It renders rich text and graphics, handles clickable links, connects through SSH or serial ports, and can preserve remote work through its multiplexer.
Why it's ranked here
Its breadth is unusually coherent. Local panes, remote multiplexing, an integrated SSH client, keyboard-driven copy mode, searchable scrollback, inline graphics, and hot-reloaded configuration all serve daily terminal work. The repository also separates major capabilities into a substantial Rust workspace.
What's good
Remote tabs share an existing SSH session, avoiding repeated authentication. Multiplexing works across local and remote hosts with native mouse support and scrollback. Text rendering covers ligatures, color emoji, font fallback, true color, and many underline styles. Custom rules can turn terminal output into clickable links.
Tradeoffs
Ad-hoc SSH sessions are not persistent, so their tabs die when the network drops. Multiplexer sessions do not fully handle the inline image protocol. Serial mode prevents opening additional tabs. Some terminal behavior still depends on correctly configured UTF-8 locales, fonts, shell settings, and compatibility layers. Support comes from a spare-time project.
How to use it well
It best suits engineers who want panes, tabs, rich rendering, SSH, and serial access under one keyboard-oriented terminal workflow. Use remote multiplexing when sessions must survive disconnections, and configure explicit font fallbacks for needed scripts. It does not replace a persistent remote service when using ordinary SSH connections.
Technical notes+
Cargo.toml defines a resolver-2 Rust workspace with components including wezterm, wezterm-gui, wezterm-mux-server, wezterm-ssh, wezterm-escape-parser, and wezterm-surface. Makefile builds the main CLI, GUI, mux server, and strip-ansi-escapes targets, while tests run through cargo nextest, including a separate no_std parser pass. docs/ssh.md describes the embedded SSH client, channel reuse, configuration parsing, and persistence limits. docs/imgcat.md documents iTerm2-compatible inline images, docs/serial.md covers serial-port access, and docs/features.md inventories local and remote multiplexing, graphics protocols, hyperlinks, searchable scrollback, and hot-reloaded configuration.
Observed
- Primary language
- Rust
- Platforms
- Linux, macOS, Windows 10, FreeBSD, and NetBSD
- Interfaces
- Graphical terminal, command-line subcommands, embedded SSH client, serial client, and multiplexer server
- Build and packaging surface
- Cargo workspace building the main CLI, GUI, multiplexer server, and ANSI-stripping utility
- Configuration
- Configuration file with hot reloading
- Testing
- Cargo nextest covers the workspace, with a separate no_std escape-parser run
Read from README.md, Makefile, Cargo.toml, docs/faq.md, docs/ssh.md, docs/help.md, docs/tags.md, docs/index.md, docs/imgcat.md, docs/serial.md, docs/sponsor.md, docs/copymode.md, docs/features.md, docs/changelog.md, docs/hyperlinks.md.
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.