An excerpt from the repository, fetched Nov 13, 2026.
Read the project’s introduction
wemux enhances tmux to make multi-user terminal multiplexing both easier and
more powerful. It allows users to host a wemux server and have clients join
in either:
Mirror Mode gives clients (another SSH user on your machine) read-only
access to the session, allowing them to see you work, or
Pair Mode allows the client and yourself to work in the same terminal
(shared cursor)
Rogue Mode allows the client to pair or work independently in another
window (separate cursors) in the same tmux session.
It features multi-server support as well as user listing
and notifications when users attach/detach.
How To Install
IMPORTANT: Wemux requires tmux version >= 1.6
MacPorts (on OS X)
If you have MacPorts installed you can
install wemux with a very simple:
sudo port install wemux
Homebrew (on OS X)
If you have Homebrew installed you can
install wemux with a fairly simple:
brew install wemux
The user that installed wemux will automatically be added to the wemux host list.
To change the host or add more hosts, edit /usr/local/etc/wemux.conf and add the
username to the host_list array.
Users in the host_list will be able to start new wemux servers, all other
users will be wemux clients and join these servers.
$ vim /usr/local/etc/wemux.conf
OR
$ wemux conf
host_list=(zolrath brocksamson)
Manual Installation
The rest of this readme will operate under the assumption you'll place wemux
in wemux/ in your /usr/local/share directory. To make wemux available for
all users, perform the following steps, using sudo as required:
Git clone this repo.
git clone git://github.com/zolrath/wemux.git /usr/local/share/wemux
Symlink the wemux file into your $PATH via /usr/local/bin/,
being sure to use the full path.
ln -s /usr/local/share/wemux/wemux /usr/local/bin/wemux
IMPORTANT: Copy the wemux.conf.example file to /usr/local/etc/wemux.conf
cp /usr/local/share/wemux/wemux.conf.example /usr/local/etc/wemux.conf
Then set a user to be a wemux host by adding their username to the host_list in
/usr/local/etc/wemux.conf. Users in the host_list will be able to start new wemux
servers, all other users will be wemux clients and join these servers.
vim /usr/local/etc/wemux.conf
host_list=(zolrath brocksamson)
To upgrade to a new version of wemux return to the /usr/local/share/wemux
directory and perform a git pull
Host Commands
wemux start
Use wemux start to start a wemux server, chmod /tmp/wemux-wemux to 1777 so
that other users may connect to it, and attach to it. If a wemux server
already exists, it will attach to it instead.
wemux attach
Use wemux attach to attach to an existing wemux server.
wemux stop
Use wemux stop to kill the wemux server and remove the /tmp/wemux-wemux
socket.
wemux kick username
Use wemux kick <username> to kick an SSH user from the server and remove
their wemux rogue sessions.
wemux config
Use wemux config to open /usr/local/etc/wemux.conf in your $EDITOR.
Note this only works if you have the environment variable EDITOR configured.
wemux
When wemux is run without any arguments in host mode, it is just like
running wemux start. It will reattach to an existing wemux server if it
exists, otherwise it will start a new server.
Client Commands
wemux mirror
Use wemux mirror to attach to server in read-only mode.
wemux pair
Use wemux pair to attach to server in pair mode, allowing the client to
control the terminal as well.
wemux rogue
Use wemux rogue to attach to server in rogue mode, which allows both editing
with the host and switching to windows independently from the host.
wemux logout
Use wemux logout to remove your rogue mode session.
wemux
When wemux is run without any arguments in client mode, its behavior
attempts to intelligently select mirror, pair, or rogue:
If the client does not have an existing rogue session it will attach to the
wemux server in pair mode.
If the client has already started a wemux rogue session, it will
reattach to the server in rogue mode.
If both rogue and pair mode are disabled, it will attach in mirror mode.
By setting default_client_mode="rogue" in wemux.conf this can be changed
to always join in rogue mode, even if a rogue session doesn't already exist.
Other Commands
wemux passes commands it doesn't understand through to tmux with the correct
socket setting.
wemux list-sessions is equivalent to entering tmux -S /tmp/wemux-wemux list-sessions
User List
wemux can display a list of connected users, indicating users in mirror mode
with [m] at the end of their name.
If you'd like to see a list of all users currently connected to the wemux
server, you have three options:
wemux users
Enter wemux users in the terminal to display a list of all currently
connected wemux users.
$ wemux users
Users connected to 'wemux':
1. zolrath
2. csagan[m]
Status Bar
You can add the user list to your status bar by adding #(wemux status_users)
where you see fit by editing your ~/tmux.conf file.
set -g status-right "#(wemux status_users)"
Display Message
If you'd rather display users on command via a tmux message, similar to the
user attachment/detachment messages, you can do so by editing your
~/tmux.conf file. Pick whatever key you'd like to bind the displaying the
message to. Using t as an example:
unbind t
bind t run-shell 'wemux display_users'
Note that the tmux prefix should be pressed before t to activate the command.
User listing can be disabled by setting allow_user_list="false" in
wemux.conf
Short-form Commands
All commands have a short form. s for start, a for attach, p for pair etc.
For a complete list, type wemux help (or wemux h)
Multi-Host Capabilities
wemux supports specifying the joining different wemux servers via wemux join <server>. This allows multiple hosts on the same machine to host their own
independent wemux servers with their own clients. By default this option is
disabled.
wemux will remember the last server specified to in order to make reconnecting
to the same server easy. wemux help will output the currently specified
server along with the we
Read the full README on GitHub