Multiplexing is an actively evolving feature in WezTerm. Your feedback and suggestions are welcomed!
What is Multiplexing?
Multiplexing allows you to run multiple terminal sessions in a single terminal emulator instance. Think of it as having multiple terminals in one, similar to tools like tmux or screen.Benefits of Multiplexing
- Organize your workspace - Group related tasks in tabs or split them into panes
- Preserve sessions - Keep sessions alive even when disconnected (with domains)
- Remote access - Connect to multiplexer sessions on remote machines
- Efficient workflow - Switch between tasks without managing multiple terminal windows
Core Concepts
1
Panes
Panes are individual terminal sessions within a tab. You can split a tab horizontally or vertically to create multiple panes.
2
Tabs
Tabs contain one or more panes. Each tab can be split independently and has its own title.
3
Windows
Windows are separate operating system windows, each containing tabs. Multiple windows allow you to use multiple monitors effectively.
4
Domains
Domains are distinct sets of tabs and panes. Domains can be local or remote (via SSH, Unix socket, or TLS).
Working with Panes
Panes allow you to divide a single tab into multiple terminal sessions.Creating Panes
Split Horizontally
Split Horizontally
Default:
Ctrl+Shift+Alt+% (or Cmd+Shift+% on macOS)Split Vertically
Split Vertically
Default:
Ctrl+Shift+Alt+" (or Cmd+Shift+" on macOS)Navigating Between Panes
Move focus between panes using directional keys:Resizing Panes
Adjust pane sizes dynamically:Working with Tabs
Tabs help you organize multiple terminal sessions without cluttering your screen.Creating and Managing Tabs
Jump to Specific Tab
Quickly switch to a tab by number (1-9):Setting Tab Titles
Customize tab titles programmatically:Multiplexing Domains
Domains are the foundation of WezTerm’s multiplexing architecture. Each domain represents a distinct set of windows and tabs.Local Domain
The default domain manages tabs and windows in your local WezTerm instance. These sessions persist until closed but don’t survive application restarts.Unix Domains
Unix domains allow you to connect to a WezTerm multiplexer server via Unix sockets, enabling persistent sessions that survive client disconnections.Unix domains work on all platforms, including Windows (using named pipes), and are perfect for connecting Windows to WSL.
Basic Configuration
Manual Connection
Advanced Configuration
Connecting Windows to WSL
Inside WSL:SSH Domains
SSH domains connect to a remote WezTerm multiplexer over SSH, providing persistent remote sessions.A compatible version of WezTerm must be installed on the remote system.
Configuration
Connecting
Auto-populated SSH Hosts
Starting with version 20230408-112425-69ae8472, WezTerm automatically populates domains from your~/.ssh/config:
SSH:hostname- Regular SSH connectionSSHMUX:hostname- Multiplexing SSH domain
TLS Domains
TLS domains use encrypted TCP connections for remote multiplexing with bootstrap via SSH.Client Configuration
Server Configuration
Connecting
After initial SSH bootstrap, WezTerm automatically reconnects using the obtained certificate, resuming sessions even after network interruptions.
Advanced Features
Moving Panes Between Tabs
Move a pane to a new tab:Pane Selection Mode
Visually select panes:Workspace Management
Organize windows into named workspaces:Best Practices
1
Use domains for persistent sessions
Set up Unix or SSH domains for work that needs to survive disconnections or client restarts.
2
Organize by project
Create separate tabs or workspaces for different projects to keep context organized.
3
Leverage shell integration
Use shell integration to spawn new panes in the current working directory automatically.
4
Customize keybindings
Configure keybindings that match your workflow and muscle memory.
Learn More
- Terminal Basics - Understand PTYs and how terminals work
- Shell Integration - Enhanced features with OSC sequences
- Key Bindings - Complete keybinding reference