wezterm
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
Top Related Projects
A cross-platform, OpenGL terminal emulator.
Cross-platform, fast, feature-rich, GPU based terminal
iTerm2 is a terminal emulator for Mac OS X that does amazing things.
The new Windows Terminal and the original Windows console host, all in the same place!
A terminal built on web technologies
Quick Overview
WezTerm is a powerful, GPU-accelerated cross-platform terminal emulator and multiplexer written in Rust. It offers a rich set of features including support for multiple tabs and panes, ligatures, and a Lua-based configuration system, making it highly customizable and extensible.
Pros
- Cross-platform support (Windows, macOS, Linux)
- GPU acceleration for improved performance
- Highly customizable through Lua configuration
- Rich feature set including multiplexing, ligatures, and unicode support
Cons
- Steeper learning curve compared to some simpler terminal emulators
- Larger resource footprint due to its feature-rich nature
- Configuration in Lua might be unfamiliar to some users
- Still in active development, which may lead to occasional instability
Getting Started
-
Download the appropriate package for your operating system from the WezTerm releases page.
-
Install WezTerm following the instructions for your platform:
- Windows: Run the installer
- macOS: Drag the app to your Applications folder
- Linux: Use the provided package manager commands
-
Create a configuration file:
mkdir -p ~/.config/wezterm
touch ~/.config/wezterm/wezterm.lua
- Add basic configuration to
~/.config/wezterm/wezterm.lua
:
local wezterm = require 'wezterm'
return {
font = wezterm.font("JetBrains Mono"),
color_scheme = "Solarized Dark",
enable_tab_bar = true,
use_fancy_tab_bar = false,
window_background_opacity = 0.95,
}
- Launch WezTerm and enjoy your new terminal emulator!
For more advanced configuration options and features, refer to the WezTerm documentation.
Competitor Comparisons
A cross-platform, OpenGL terminal emulator.
Pros of Alacritty
- Extremely fast and lightweight, with minimal resource usage
- Simple configuration through a YAML file
- Cross-platform support (Linux, macOS, Windows, and BSD)
Cons of Alacritty
- Limited built-in features compared to WezTerm
- Less customizable without additional tools or scripts
- No built-in tabs or multiplexing support
Code Comparison
Alacritty configuration (YAML):
window:
dimensions:
columns: 80
lines: 24
padding:
x: 2
y: 2
font:
normal:
family: Fira Code
style: Regular
size: 11.0
WezTerm configuration (Lua):
return {
font = wezterm.font("Fira Code"),
font_size = 11.0,
initial_cols = 80,
initial_rows = 24,
window_padding = {
left = 2,
right = 2,
top = 2,
bottom = 2,
},
}
Both Alacritty and WezTerm are modern, GPU-accelerated terminal emulators. Alacritty focuses on simplicity and performance, while WezTerm offers more features and customization options. Alacritty uses a YAML configuration file, whereas WezTerm uses Lua for configuration, providing more flexibility and programmability.
Cross-platform, fast, feature-rich, GPU based terminal
Pros of Kitty
- Faster rendering performance, especially for large amounts of text
- More extensive documentation and user guides
- Broader platform support, including Linux and macOS
Cons of Kitty
- Less intuitive configuration process
- Fewer built-in features compared to WezTerm
- Steeper learning curve for new users
Code Comparison
Kitty configuration example:
font_family Fira Code
font_size 12.0
cursor_shape beam
scrollback_lines 10000
WezTerm configuration example:
return {
font = wezterm.font("Fira Code"),
font_size = 12.0,
default_cursor_style = "SteadyBar",
scrollback_lines = 10000,
}
Both terminals offer powerful customization options, but WezTerm uses Lua for configuration, which can be more flexible for advanced users. Kitty's configuration is simpler but may be less intuitive for complex setups.
While both projects are actively maintained and feature-rich, WezTerm generally offers more built-in functionality out of the box, such as multiplexing and split panes. Kitty, on the other hand, focuses on performance and simplicity, making it a solid choice for users who prioritize speed and efficiency in their terminal emulator.
iTerm2 is a terminal emulator for Mac OS X that does amazing things.
Pros of iTerm2
- Mature and stable project with a long history and large user base
- Extensive feature set, including split panes, search, and autocomplete
- Native macOS application with seamless integration
Cons of iTerm2
- Limited to macOS only, not cross-platform
- Less customizable compared to WezTerm's Lua configuration
- Slower development cycle and less frequent updates
Code Comparison
iTerm2 (Objective-C):
- (void)setSessionTitle:(NSString *)title
{
[_delegate sessionDidSetTitle:title];
_name = [title copy];
}
WezTerm (Rust):
pub fn set_title(&mut self, title: &str) {
self.title = title.to_string();
self.notify_title_changed();
}
Key Differences
- WezTerm is cross-platform (Windows, macOS, Linux), while iTerm2 is macOS-only
- WezTerm uses Lua for configuration, offering more flexibility
- iTerm2 has a more traditional GUI, while WezTerm focuses on keyboard-driven workflows
- WezTerm is written in Rust, potentially offering better performance and memory safety
- iTerm2 has a larger ecosystem of themes and integrations due to its longer history
Both terminals offer excellent features and performance, with the choice often coming down to personal preference and platform requirements.
The new Windows Terminal and the original Windows console host, all in the same place!
Pros of Terminal
- Integrated with Windows, providing seamless system integration
- Supports multiple tabs and panes within a single window
- Extensive customization options through JSON profiles
Cons of Terminal
- Limited to Windows platforms, lacking cross-platform support
- Slower development cycle compared to WezTerm
- Less extensive feature set for advanced users
Code Comparison
WezTerm configuration (Lua):
return {
font = wezterm.font("JetBrains Mono"),
color_scheme = "Dracula",
default_prog = {"pwsh"},
}
Terminal configuration (JSON):
{
"profiles": {
"defaults": {
"fontFace": "Cascadia Code",
"colorScheme": "Campbell",
"commandline": "powershell.exe"
}
}
}
Both projects allow for easy configuration, but WezTerm uses Lua for more flexible and powerful customization, while Terminal relies on JSON for a simpler but more limited approach. WezTerm offers cross-platform support and a faster development cycle, making it more appealing for advanced users and those working across different operating systems. Terminal, however, benefits from tight Windows integration and a more user-friendly interface for casual users.
A terminal built on web technologies
Pros of Hyper
- Built with web technologies (HTML, CSS, JavaScript), making it highly customizable and accessible to web developers
- Extensive plugin ecosystem, allowing for easy extension of functionality
- Cross-platform support (Windows, macOS, Linux) with a consistent user experience
Cons of Hyper
- Performance can be slower compared to native terminals, especially with multiple plugins
- Higher resource usage due to Electron framework
- Limited built-in features, relying more on plugins for advanced functionality
Code Comparison
WezTerm configuration (Lua):
return {
font = wezterm.font("JetBrains Mono"),
color_scheme = "Dracula",
default_prog = {"pwsh"},
}
Hyper configuration (JavaScript):
module.exports = {
config: {
fontSize: 14,
fontFamily: 'JetBrains Mono',
shell: 'pwsh'
},
plugins: ['hyper-dracula']
};
Both terminals offer configuration files, but WezTerm uses Lua while Hyper uses JavaScript. WezTerm's configuration is more concise and built-in features are readily available, whereas Hyper relies more on plugins for extended functionality.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Wez's Terminal
A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
User facing docs and guide at: https://wezfurlong.org/wezterm/
Screenshot of wezterm on macOS, running vim
Installation
https://wezfurlong.org/wezterm/installation
Getting help
This is a spare time project, so please bear with me. There are a couple of channels for support:
- You can use the GitHub issue tracker to see if someone else has a similar issue, or to file a new one.
- Start or join a thread in our GitHub Discussions; if you have general questions or want to chat with other wezterm users, you're welcome here!
- There is a Matrix room via Element.io for (potentially!) real time discussions.
The GitHub Discussions and Element/Gitter rooms are better suited for questions than bug reports, but don't be afraid to use whichever you are most comfortable using and we'll work it out.
Supporting the Project
If you use and like WezTerm, please consider sponsoring it: your support helps to cover the fees required to maintain the project and to validate the time spent working on it!
Top Related Projects
A cross-platform, OpenGL terminal emulator.
Cross-platform, fast, feature-rich, GPU based terminal
iTerm2 is a terminal emulator for Mac OS X that does amazing things.
The new Windows Terminal and the original Windows console host, all in the same place!
A terminal built on web technologies
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot