An open-source web based SSH terminal multiplexer

pip install webmux==0.1.11



webmux is an open-source web based SSH terminal multiplexer.

webmux uses the Twisted framework for Python, Backbone.js, and sockjs.

Running webmux

To install, first install the libffi package (required by cffi, a dependency of Twisted):

sudo yum install libffi-devel libpython-dev libssl-dev


sudo apt-get install libffi-dev

Then, install using pip:

sudo pip install webmux


git clone
cd webmux
sudo python install

And then run webmuxd:


You can then access webmux via:


Command line parameters

To run webmux on a different port, use the -p parameter. For example, to run webmux on port 8081, use:

webmuxd -p 8081

Running webmux as a service

To run as a service, use your favorite service runner. For example, to use upstart, create a file called webmuxd.conf in your /etc/init directory, that contains:

description "webmuxd"

start on runlevel [2345]
stop on runlevel [016]

exec /usr/bin/webmuxd


  • implement tabs properly
  • remove references to focusedTerminal in favor of backbone triggered events, and fix focus issues
  • support keyboard-interactive method (
  • several other terminal features described in Christopher's tty.js project
  • make font size customizable
  • support putty keys
  • verify SSH host keys
  • proper mouse support
  • SCP file copy on drag & drop to home directory
  • SCP file browser
  • go over code and fix all TODOs
  • convert connections dictionary into an ORM
  • convert in-memory windows and terminals into an ORM, perhaps support restarts
  • Add LDAP authentication
  • "Don't remember me" in login


webmux is based on code from Christopher Jeffrey's tty.js project:


Part of the dependencies require compiling code. On Macs, a recent change to the compiler made the following command necessary when compiling packages with warnings in their code.

sudo ARCHFLAGS="-Wno-error=unused-command-line-argument-hard-error-in-future" pip install webmux


Copyright (c) 2014, Ron Reiter (MIT License)