Why Developers Look for WezTerm Alternatives
WezTerm is an excellent terminal emulator with powerful Lua scripting and GPU rendering. But it comes with a steep configuration curve. To get a productive shell environment, you still need to separately install and configure Starship, Delta, zoxide, syntax highlighting, autosuggestions, and a Nerd Font. For developers who want a turnkey experience, this setup tax adds up.
arb was built to solve exactly this problem. It takes WezTerm’s proven core — the same GPU rendering engine, the same Lua API — and adds zero-config defaults with a complete built-in shell suite. You get the power of WezTerm without the hours of setup.
Pain PointsCommon WezTerm Frustrations
Configuration Overload
WezTerm requires a Lua config file for basics like font, color scheme, and keybindings. New users spend hours reading docs before their terminal looks right.
Missing Shell Tools
WezTerm gives you a terminal but no shell suite. You still need to separately install Starship, Delta, zoxide, syntax highlighting, autosuggestions, and a Nerd Font.
Binary Bloat
WezTerm’s ~80MB binary includes X11, Wayland, and Windows backends even on macOS. You pay the disk and memory cost for platforms you never use.
New Machine Setup
Setting up a new Mac means recreating your WezTerm environment from scratch: Lua config, font install, shell plugins, color scheme. arb makes this a single brew command.
arb vs WezTerm: Feature Comparison
| Feature | arb | WezTerm |
|---|---|---|
| GPU-accelerated rendering | ✓ | ✓ |
| Lua scripting | ✓ | ✓ |
| Built-in Starship prompt | ✓ | — |
| Built-in Delta (diffs) | ✓ | — |
| Built-in z (dir jumping) | ✓ | — |
| Built-in syntax highlighting | ✓ | — |
| Built-in autosuggestions | ✓ | — |
| Nerd Font included | ✓ | — |
| Zero config required | ✓ | — |
| macOS optimized | ✓ | Cross-platform |
| Binary size | ~40MB | ~80MB |
| Shell boot | ~100ms | ~200ms |
What arb Keeps from WezTerm
- Lua scripting API — same
wezterm.font(),wezterm.actionpatterns. Most WezTerm configs work with minimal changes. - GPU-accelerated rendering — Metal-backed on macOS for smooth scrolling even with heavy output.
- Multiplexing — tabs, panes, splits with the same keybinding system.
What arb Adds
- Built-in shell suite — Starship, Delta, z, syntax highlighting, autosuggestions, zsh-completions. All compiled in.
- Zero-config defaults — JetBrains Mono Nerd Font, Arb Dark theme, optimized font rendering, smooth animations. Works out of the box.
- Smaller binary — ~40MB vs WezTerm’s ~80MB. Aggressive feature pruning and symbol stripping.
- macOS-first — Native macOS integration, notarized for Gatekeeper, Homebrew tap install.
What arb Removes (and Why)
arb’s 40MB binary (vs WezTerm’s ~80MB) comes from deliberate removal of features that macOS users do not need:
- X11 and Wayland backends — arb is macOS-only, so Linux display server code is removed entirely.
- Windows support — No Windows-specific code, terminal emulation quirks, or ConPTY integration.
- SSH domain multiplexing — WezTerm’s remote multiplexer is removed. Use SSH directly in your shell instead.
- Serial port support — Rarely used, removed to reduce binary size.
The space saved is reallocated to the built-in shell suite (Starship, Delta, z, syntax highlighting, autosuggestions) that ships with every arb install.
MigrationHow to Switch from WezTerm to arb
Migrating from WezTerm to arb takes under 5 minutes:
- Install arb — Run
brew tap szj2ys/arb && brew install arb. This installs the arb binary and GUI app. - Copy your config (optional) — If you have a WezTerm Lua config, copy it:
cp ~/.wezterm.lua ~/.config/arb/arb.lua. Most configs work as-is. - Remove font/theme config — arb ships JetBrains Mono and Arb Dark by default. You can delete your
fontandcolor_schemesettings unless you have a custom preference. - Remove shell plugin configs — If your
.zshrchas lines for Starship, Delta, zoxide, zsh-syntax-highlighting, or zsh-autosuggestions, you can remove them. arb handles all of these automatically. - Launch arb — Open arb. Your shell is ready with Starship prompt, Delta diffs, z navigation, and syntax highlighting. No further setup needed.
Config Translation Examples
Here is what changes (and what does not) when moving your WezTerm config to arb:
- Font configuration — WezTerm:
config.font = wezterm.font("JetBrains Mono"). arb: not needed (JetBrains Mono is the default). Only add a font line if you want a different typeface. - Color scheme — WezTerm:
config.color_scheme = "Catppuccin Mocha". arb: not needed (Arb Dark is the default). Custom schemes still work via the same API. - Keybindings — WezTerm:
config.keys = { ... }. arb: works exactly the same. Samewezterm.actionAPI, same key names. - Tab bar — WezTerm:
config.use_fancy_tab_bar = true. arb: works the same. arb defaults to a clean tab bar style.
Who Should Switch from WezTerm to arb
If you spend more time configuring WezTerm than using it, arb is for you. If you set up a new machine and want a fully-equipped terminal in one brew install command, arb is for you. If you are a macOS developer who wants the power of WezTerm with the convenience of a turnkey solution, arb is for you.
If you rely on WezTerm’s cross-platform support (Linux, Windows) or need specific advanced features like SSH domains, you may want to stay with WezTerm.
FAQFrequently Asked Questions
wezterm Lua module and API. The config file lives at ~/.config/arb/arb.lua. Font and color scheme settings can usually be removed since arb provides polished defaults.arb doctor to diagnose common configuration issues before reporting.