Convert Figma logo to code with AI

wez logowezterm

A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust

16,583
742
16,583
1,052

Top Related Projects

55,502

A cross-platform, OpenGL terminal emulator.

23,729

Cross-platform, fast, feature-rich, GPU based terminal

15,104

iTerm2 is a terminal emulator for Mac OS X that does amazing things.

94,862

The new Windows Terminal and the original Windows console host, all in the same place!

43,192

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

  1. Download the appropriate package for your operating system from the WezTerm releases page.

  2. 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
  3. Create a configuration file:

mkdir -p ~/.config/wezterm
touch ~/.config/wezterm/wezterm.lua
  1. 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,
}
  1. Launch WezTerm and enjoy your new terminal emulator!

For more advanced configuration options and features, refer to the WezTerm documentation.

Competitor Comparisons

55,502

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.

23,729

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.

15,104

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.

94,862

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.

43,192

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Wez's Terminal

WezTerm Icon 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

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!

Read more about sponsoring.