Terminal Multiplexers

A terminal multiplexer provides separation between where a shell is running and where the shell is accessed. Each shell can be running on a different computer, but to the developer it does not matter where each shell is being executed.

For example, a developer could have many shells running within a terminal, like the following screenshot.

tmux terminal multiplexer with many panes.

The above terminal window is using the tmux terminal multiplexer implementation with two windows and three panes.

Why are terminal multiplexers awesome?

Developers gain greater control over the usage of their shells by working with a terminal multiplexer.

Shells are typically executed locally on a computer but terminal multiplexers allow one or more virtual shells to be run within a single terminal. Shells can also be left running within the multiplexer and attached to again from a different machine.

Terminal multiplexers are used by developers to run many virtual shells within a single terminal. These shells can be run via a mix of local, remote, containerized and virtualized resources. The shells can also be persisted and moved while running from one computer to another.

Terminal multiplexer implementations

Many terminal multiplexer implementations exist, including:

  • tmux

  • screen

  • byobu

  • Pymux (source code) is a terminal multiplexer implementation written in Python that clones the functionality of tmux. Like tmux and Screen, Pymux makes it easier for programmers to use many shells within a single terminal window during development.

Terminal multiplexer resources

Learn more about dev environments or move to web frameworks?

I want to learn how to code a Python web application using a framework.

Tell me about using the Vim editor for Python development.

I'd like to learn about Emacs for Python coding.

Matt Makai 2012-2022