Alacritty vs WezTerm

Alacritty vs WezTerm: a minimal TOML-configured OpenGL terminal versus a Lua-scripted terminal with built-in tabs, splits and multiplexing.

Updated

short verdict

Pick Alacritty if you already run a window manager or a separate terminal multiplexer and want a terminal with a TOML config and vi mode. Pick WezTerm if you want tabs, splits, ligatures and SSH or TLS multiplexing built in, and you are fine configuring it in Lua.

Alacritty and WezTerm are both GPU-accelerated terminal emulators written in Rust, and both run on Linux, macOS and Windows. They differ in scope. Alacritty leaves tabs and splits to other programs and keeps configuration in a static TOML file. WezTerm includes tabs, splits and a multiplexer, and its config is a Lua program.

this page is for

  • Developers choosing between a minimal terminal and one with built-in multiplexing
  • Users deciding between TOML and Lua configuration
  • Anyone who needs font ligatures or remote sessions in the terminal itself
pick

Alacritty

★ 66.1kRust
details

Better when you already use a window manager or a separate multiplexer and want a terminal that only renders and has vi mode.

best for

  • Users with an existing multiplexer or tiling window manager setup
  • Keyboard-driven users who want vi mode and regex hints

strengths

  • TOML config in alacritty.toml, reloaded live, with an import option for extra files
  • Vi mode (Ctrl+Shift+Space) with vi motions, block and line selections, and / and ? search
  • Regex hints pass matched text to an external program or built-in action by keyboard or mouse
  • Runs on Linux, macOS, Windows and BSD; alacritty msg create-window opens a window on Unix

weaknesses

  • No tabs, splits or GUI settings editor; you need a window manager or multiplexer for those
  • Font ligatures are not supported and the request is still an open issue
  • The README rates it beta, and Alacritty does not create the config file for you
pick

WezTerm

★ 29.4kRust
details

Better when you want tabs, splits, ligatures and remote multiplexing inside the terminal and are comfortable scripting config in Lua.

best for

  • Users who want tabs, splits and remote sessions without a separate multiplexer
  • Users who want to script behavior with Lua event handlers

strengths

  • Lua config in ~/.wezterm.lua with wezterm.on event handlers, reloaded on save
  • Multiplexer domains over Unix socket, SSH or TLS, plus wezterm ssh with a built-in SSH client
  • wezterm cli scripts a running instance with split-pane, spawn, send-text and get-text
  • Ligatures, color emoji, kitty graphics, Sixel (experimental) and the built-in imgcat command

weaknesses

  • SSH domains need a compatible WezTerm installed on the remote host
  • The docs describe multiplexing as a young feature that is still evolving
  • The README calls it a spare-time project, and a Lua config means writing code rather than editing static settings

Key differences

  • Scope: Alacritty has no tabs or splits; WezTerm includes tabs, splits and a multiplexer
  • Config format: Alacritty uses TOML (alacritty.toml); WezTerm uses a Lua file (~/.wezterm.lua)
  • Ligatures: WezTerm supports them; Alacritty does not
  • Remote sessions: WezTerm has SSH, TLS and Unix socket domains and serial ports; Alacritty has none
  • Platforms: Alacritty lists Linux, macOS, Windows and BSD; WezTerm lists Linux, macOS, Windows 10, FreeBSD and NetBSD
  • Language and license: both are Rust; Alacritty is Apache-2.0 and WezTerm is MIT

Choose Alacritty when

  • You already run a window manager or a separate terminal multiplexer for tabs and splits
  • You want vi mode with search and block selections in the scrollback
  • You prefer a static TOML file over a Lua program
  • Throughput matters and you want to test it yourself; the project publishes its own vtebench tool

Choose WezTerm when

  • You want tabs and splits without installing a separate multiplexer
  • You work over SSH and want remote tabs attached to the native UI
  • You need ligatures, color emoji, or image protocols such as kitty graphics
  • You want to script the terminal with Lua handlers or wezterm cli from the shell

When not to use these

  • You need a mature, stable multiplexer for long-lived remote sessions; WezTerm's docs call its multiplexing young
  • You need a terminal that works without OpenGL ES 2.0 support, which Alacritty requires for rendering

FAQ

Which is faster, Alacritty or WezTerm?
Alacritty makes performance its main focus and measures throughput with its own vtebench tool, but its FAQ says latency is hard to quantify and suggests testing your own workloads. WezTerm does not publish a comparison in its documentation, so test both.
Can I use Alacritty and WezTerm together?
Neither project documents a combined setup. They are separate terminal emulators, so you can install both and run either one.
Which is easier to configure?
Alacritty uses a TOML file that you create yourself, documented in man 5 alacritty. WezTerm uses a Lua file that returns a config table, which allows logic but means writing code. Both reload on save.
Does Alacritty support tabs and splits?
No. Alacritty has no tabs or splits and its FAQ recommends a window manager or a terminal multiplexer. WezTerm has them built in.

related