How to Install Tmux on Windows

l9c l9c

TL;DR — Run wsl --install in an Administrator PowerShell, reboot if it asks, open Ubuntu and create your user, then run sudo apt update && sudo apt install tmux. Start with tmux new -s wsl.

What you are installing

tmux is a terminal multiplexer: it keeps your shell and whatever runs in it alive, and splits one window into panes. The project ships no Windows build, so the supported way to run tmux on Windows is inside WSL 2 — a real Linux kernel, and the real tmux package.

The key bindings and most settings on this site apply unchanged there.

Before you start

  • Windows 11, or Windows 10 version 2004 (build 19041) or newer. Windows 10 reached end of support on 14 October 2025, so Windows 11 is the better host. Check with Win+R and winver.
  • Virtualization enabled in your BIOS/UEFI. Verify it in Task Manager under Performance → CPU → Virtualization: Enabled; WSL 2 will not start without it.
  • An Administrator shell: right-click Start and pick Terminal (Admin) on Windows 11, or Windows PowerShell (Admin) on Windows 10, then accept the UAC prompt.
  • ARM64 machines are fine — WSL and Ubuntu ship native arm64 builds.
  • This guide covers the tmux that ships with Ubuntu 24.04 LTS (tmux 3.4) and 26.04 LTS (tmux 3.6a).

Two shells, two prompts. Blocks labelled # PowerShell run in Windows; # Ubuntu runs inside WSL. (Administrator) marks a window that must be elevated — a plain label means a normal window is fine.

Step 1 — Install WSL 2 (Windows Subsystem for Linux)

In that Administrator window, run:

# PowerShell (Administrator)
wsl --install

This enables the Virtual Machine Platform and WSL, installs the Linux kernel and the default Ubuntu distribution, then asks for a restart. Reboot when it does — the new components only take effect afterwards. If both features were already enabled, the command can finish without asking for one. If WSL is already installed, it prints help or reports that it is already there; install a distribution explicitly instead:

# PowerShell

# list distributions available to install
wsl --list --online

# install Ubuntu (or another name from the list)
wsl --install -d Ubuntu

After the reboot, open a normal PowerShell window and check your WSL installation and the version the distribution is on:

# PowerShell
wsl --version                 # optional — shows the WSL build
wsl --list --verbose          # VERSION column must show 2

# expected from wsl --list --verbose:
#   NAME      STATE           VERSION
# * Ubuntu    Running         2

# only the VERSION column has to show 2

# VERSION shows 1? convert the existing distribution (takes a few minutes):
wsl --set-version Ubuntu 2

Changing the default for future installs is a separate command, wsl --set-default-version 2; it does not touch a distribution that is already on WSL 1.

Step 2 — Create your Ubuntu user and install tmux

By default the new distribution starts when the install finishes — or when you sign in after the reboot — and asks for your UNIX username. If no Ubuntu window appears, launch Ubuntu from the Start menu, or open a normal, non-elevated PowerShell and run wsl.

The first launch provisions the distribution, which can take a couple of minutes, and then asks for a UNIX username and password — you should see:

Provisioning the new WSL instance Ubuntu
This might take a while...
Create a default Unix user account: wsluser
New password:
Retype new password:

The username must be lowercase with no spaces. This is a separate Linux account, not your Windows login — but WSL interop is on by default, so commands you run there can still reach your Windows files and apps with your Windows user's permissions. The password is the one sudo will ask for, and nothing appears on screen while you type it — that is normal, not a frozen terminal. Then install tmux:

# Ubuntu
sudo apt update
sudo apt install -y tmux
tmux -V                       # expected: tmux 3.6a on 26.04, 3.4 on 24.04

The version comes from your distribution's repository: Ubuntu 24.04 LTS ships tmux 3.4 and Ubuntu 26.04 LTS ships 3.6a. If you want the current 3.8 release, build it once from source:

# Ubuntu
sudo apt install -y build-essential bison pkg-config libevent-dev libncurses-dev curl
curl -fLO https://github.com/tmux/tmux/releases/download/3.8/tmux-3.8.tar.gz
tar xzvf tmux-3.8.tar.gz
cd tmux-3.8
./configure
make -j"$(nproc)"
sudo make install
hash -r
tmux -V   # tmux 3.8

github.com/tmux/tmux is the official upstream repository. make install writes the binary to /usr/local/bin, which normally precedes /usr/bin in PATH; hash -r clears the shell's cached path so the new version is used immediately. The new binary shadows the packaged /usr/bin/tmux rather than replacing it, so the package's copy stays in place. A server started by the distribution package keeps running with the old code — the new client still connects to that old server. To switch, stop it with tmux kill-server — this ends every session and discards unsaved work — then start a new one.

Step 3 — Set up Windows Terminal (optional)

Windows Terminal is the recommended host window: 24-bit color, modern key encoding and mouse reporting are more reliable there than in the legacy console. Windows 11 includes it, so on 11 this step is only a default-profile change. On Windows 10 install it once — this runs in Windows, not in Ubuntu, so open a normal PowerShell tab (no elevation needed):

# PowerShell
winget install --id Microsoft.WindowsTerminal -e

If winget is not recognized, install App Installer from the Microsoft Store, or install Windows Terminal directly from the Store. If neither is available, skip this step: tmux still runs in the default console, but powerline glyphs render as boxes and some Ctrl+Shift combinations may be swallowed instead of reaching tmux. Windows Terminal alone does not fix the glyphs either — its default Cascadia Mono font has no Powerline symbols; install Cascadia Code PL or a Nerd Font and select it in the profile if your prompt uses them.

Reopen Windows Terminal so the Ubuntu profile appears, then set it as the default in Settings → Startup → Default profile. If the profile is still missing, close every Windows Terminal window and open it again.

Step 4 — Start your first session

Back inside Ubuntu, create the session first:

# Ubuntu
tmux new -s wsl

You are inside tmux now. Detach with Ctrl+b d, which drops you back to the plain Ubuntu shell. Run the reattach from that shell; only a tmux attach issued from inside a session is refused as nesting, while tmux ls works either way:

# Ubuntu
tmux ls                       # expected: wsl: 1 windows (created ...)
tmux attach -t wsl

Split side by side with Ctrl+b %, split top and bottom with Ctrl+b ", zoom a pane with Ctrl+b z.

Step 5 — Save and restore sessions with tmux-resurrect (optional)

tmux-resurrect is a small plugin that writes the layout of your sessions, windows and panes to disk and rebuilds it on demand. It is not a service manager — nothing comes back until you ask for it, and the save is only as fresh as the last time you saved.

Install it inside Ubuntu. The clone lives in ~/.tmux/plugins, and the last command tells the currently running tmux server to reload your configuration file.

# Ubuntu
git clone https://github.com/tmux-plugins/tmux-resurrect ~/.tmux/plugins/tmux-resurrect
echo 'run-shell ~/.tmux/plugins/tmux-resurrect/resurrect.tmux' >> ~/.tmux.conf
tmux source-file ~/.tmux.conf

If git is missing, run sudo apt install -y git first.

Save with Ctrl+b Ctrl+s; restore with Ctrl+b Ctrl+r. Right after a restart, start tmux and press the restore chord in that new session:

# Ubuntu
tmux                          # fresh server, then press Ctrl+b Ctrl+r
tmux ls                       # expected: your saved sessions are back

Troubleshooting

Common first-install problems:

ProblemFix
WslRegisterDistribution failed with error 0x80370102Virtualization is off. Enable VT-x/AMD-V in BIOS/UEFI, turn on the Virtual Machine Platform feature, then reboot.
wsl --list --verbose shows VERSION 1The distribution is still on WSL 1. Run wsl --set-version Ubuntu 2; conversion takes a few minutes.
tmux: command not found in Ubuntu, or The term 'tmux' is not recognized in PowerShellNot installed, or the wrong shell. In Ubuntu run sudo apt install -y tmux; in PowerShell you are in Windows, so run wsl first.
Could not get lock /var/lib/dpkg/lock-frontendUnattended upgrades are running. Wait a minute. If the lock stays, find the holder with sudo fuser -v /var/lib/dpkg/lock-frontend, stop that process, then run sudo dpkg --configure -a.
Building or testing a project feels slowThe project is under /mnt/c. Move it to ~/code inside WSL.

Frequently asked questions

Is there a native tmux for Windows?

No. tmux is a Unix program and the project ships no Windows build. On Windows you run it inside WSL 2, which provides a real Linux kernel and the tmux package from your Linux distribution.

Does tmux work on Windows 10?

Yes, on Windows 10 version 2004 (build 19041) or newer and on Windows 11 with WSL 2, though Windows 10 reached end of support on 14 October 2025 and Windows 11 is the better host. Either way, virtualization must be enabled in the BIOS or UEFI; WSL 2 will not start without it.

Which tmux version do I get inside WSL?

Whatever your distribution packages: Ubuntu 24.04 LTS ships tmux 3.4 and Ubuntu 26.04 LTS ships 3.6a. Check yours with tmux -V. Build the current 3.8 release from source if you want its newer features.

Do I need Windows Terminal to run tmux?

No. Any terminal works, but Windows Terminal is the easier host: 24-bit color, modern key encoding and mouse reporting are more reliable there than in the legacy console. Windows 11 includes it; on Windows 10 install Windows Terminal from the Microsoft Store, or install App Installer and run winget install --id Microsoft.WindowsTerminal -e.

Can I run tmux on Windows without WSL?

You can run real tmux under MSYS2 or Cygwin, but those are POSIX layers with their own quirks and no Linux kernel. WSL 2 is the supported path and the one this guide covers.

Installation done. Learn the key bindings on the tmux cheat sheet, generate a starting config with the tmux config generator, and for the prefix key and session basics read How to Install and Use Tmux.