136

I am looking for a terminal multiplexer for Microsoft Windows. I was unable to locate the installers for Microsoft Windows for both tmux and GNU Screen.

Currently I'm using Putty to connect to my Linux machine from from Windows Machine. Can somebody please suggest how to get GNU Screen or tmux working on Windows Platform.

Are there any other good alternatives to above options.

Rafa de Castro
  • 2,474
  • 1
  • 24
  • 44
Kamaal
  • 1,361
  • 2
  • 9
  • 3
  • What exactly are you trying to do? – thkala Mar 29 '11 at 13:38
  • 5
    I need a terminal multiplexer that can manage many session windows and provide persistence features as well. – Kamaal Mar 29 '11 at 13:43
  • 1
    what keeps you from running screen on the Linux box and simply detaching (or forcibly closing) the connection every time? Wouldn't that also fulfill your requirements? I've used it via Cygwin, but frankly I always went back to having either a separate Linux box or a VM on the Windows machine that would run a Linux proper and offer me what I needed. – 0xC0000022L Mar 29 '11 at 19:03
  • 2
    [Super user][1] recommends Console2 for Windows users. [1]: http://superuser.com/a/419616/92406 – gliptak Dec 11 '12 at 18:40

9 Answers9

104

Look. This is way old, but on the off chance that someone from Google finds this, absolutely the best solution to this - (and it is AWESOME) - is to use ConEmu (or a package that includes and is built on top of ConEmu called cmder) and then either use plink or putty itself to connect to a specific machine, or, even better, set up a development environment as a local VM using Vagrant.

This is the only way I can ever see myself developing from a Windows box again.

I am confident enough to say that every other answer - while not necessarily bad answers - offer garbage solutions compared to this.

Update: As Of 1/8/2020 not all other solutions are garbage - Windows Terminal is getting there and WSL exists.

dgo
  • 3,877
  • 5
  • 34
  • 47
  • 1
    A) Regarding Vagrant: Yes, Vagrant makes it [much easier than it used to be](https://docs.vagrantup.com/v2/getting-started/index.html) to quickly install a Linux VM on a Windows machine. Note that perhaps the OP doesn't want a Linux VM: e.g. perhaps he is low on RAM. – unforgettableidSupportsMonica Dec 29 '14 at 02:47
  • 12
    B) Regarding ConEmu: Cygwin, tmux, and ssh are all you need. Tmux and ssh work the same on all platforms: Cygwin, Linux, Mac, and others. ConEmu, on the other hand, is a Windows-only terminal multiplexer. Even once you get used to it, your knowledge won't translate to other OSes. You seem to be implying that ConEmu is better than tmux; but how much time have you ever spent _using_ tmux? – unforgettableidSupportsMonica Dec 29 '14 at 02:49
  • 1
    For a nice introduction to Tmux: [http://www.sitepoint.com/tmux-a-simple-start/](http://www.sitepoint.com/tmux-a-simple-start/) When they say CTRL + B % just type at the same CTRL + B, then press Shift + 5 (which is the key in my keyboard that has the % symbol). – Edenshaw Apr 07 '16 at 15:25
82

As of the Windows 10 "Anniversary" update (Version 1607), you can now run an Ubuntu subsystem from directly inside of Windows by enabling a feature called Developer mode.

To enable developer mode, go to Start > Settings then typing "Use developer features" in the search box to find the setting. On the left hand navigation, you will then see a tab titled For developers. From within this tab, you will see a radio box to enable Developer mode.

After developer mode is enabled, you will then be able to enable the Linux subsystem feature. To do so, go to Control Panel > Programs > Turn Windows features on or off > and check the box that says Windows Subsystem for Linux (Beta)

Now, rather than using Cygwin or a console emulator, you can run tmux through bash on the Ubuntu subsystem directly from Windows through the traditional apt package (sudo apt-get install tmux).

Brandon Clapp
  • 66,931
  • 6
  • 20
  • 24
  • 4
    I Believe this answer should be the right one :thumb-up:. – Ahed Eid Jul 15 '17 at 16:28
  • 1
    https://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/ – Mzq May 22 '18 at 06:22
  • Are there any security implications to doing this? – leeand00 Aug 21 '19 at 18:39
  • 4
    sure you will run Tmux inside WSL, but it won't run your windows apps, you have to re-install them but this time inside WSL to run them from inside WSL. If you are only gonna use WSL to ssh then this probably wont be an issue but it's annoying. Other inconveniences include WSL having its own filesystem, which you can't look at from windows, even tho WSL can look at windows filesystem. Etc – Jose V Jan 08 '20 at 14:46
43

Both tmux and GNU Screen work under cygwin. They can be installed from the cygwin installer. Just search for their name there and you probably will get to the latest version (at least for tmux).

marcelocra
  • 2,094
  • 2
  • 24
  • 37
Rafa de Castro
  • 2,474
  • 1
  • 24
  • 44
8

You might be able to get what you want by using Console2 with Putty or Plink.

joelpt
  • 4,675
  • 2
  • 29
  • 28
  • 1
    I can add to this, if you use the 1.5.x version of console, you can configure separate windows without borders and tabs. You can also easily configure the width, height and placement. In short, create several windows and tile them on the desktop. – Rex Whitten Sep 20 '13 at 13:00
  • 2
    won't even come close to what a true terminal multiplexer does. mouseless operation ? full screen a pane with 2 keystrokes ? multiple tabs of multiple pane layouts ? mouseless copy paste ? toggle pane layout within a layout tab ? mouseless scrolling ? mouseless pane resize ? preconfigure workspaces with multiple tabs/pane layouts and jump in and out of workspace sessions ? remote pairing ? all this with maximum 2 keystrokes and no mouse ? – Cosmin Feb 11 '15 at 01:20
8

One of alternatives is MSYS2 , in another words "MinGW-w64"/Git Bash. You can simply ssh to Unix machines and run most of linux commands from it. Also install tmux!

To install tmux in MSYS2:

run command pacman -S tmux

To run tmux on Git Bash:

install MSYS2 and copy tmux.exe and msys-event-2-1-6.dll from MSYS2 folder C:\msys64\usr\bin to your Git Bash directory C:\Program Files\Git\usr\bin.

Stas S
  • 101
  • 1
  • 3
  • symbolic links work so if you upgrade the msys2 side git bash will use the newer files. from git bash `/c/Program Files/Git/usr/bin` this worked for me just now: `$ ln -s /c/msys64/usr/bin/tmux.exe . ; ln -s /c/msys64/usr/bin/msys-event-2-1-6.dll .` – Grant Bowman Oct 12 '19 at 15:55
  • I found this [blog post](https://blog.pjsen.eu/?p=440) helpful – Grant Bowman Oct 12 '19 at 16:04
6

Adding to the thread, there's a new console in town called babun, im running tmux in it without a problem. lets you run bash or the zsh.

click here for github

Viktor Justo
  • 203
  • 2
  • 9
5

As an alternative SuperPutty has tabs and the option to run the same command across many terminals... might be what someone is looking for.

https://code.google.com/p/superputty/

It imports your PuTTY sessions too.

KCD
  • 9,873
  • 5
  • 66
  • 75
2

Here is dirty way:

  1. Log into a linux server using "ssh -X user@host"
  2. open rxvt-unicode or other X terminal.
  3. open tmux or screen
  4. Log back into your local computer from the server
  5. start your favourite shell such as msys or cygwin.
0

It's possible to compile and use tmux within Cgywin. http://sourceforge.net/mailarchive/message.php?msg_id=30850840

SCR512
  • 1