Skip to main content

rmux

rmux allows you to run your local project on multiple remote machines in parallel.

The command names comes from remote-tmux as it allows multiplexing commands on multiple remote machines, synchronized.

The original purpose was to allow testing local changes to a project on other platforms, like running tox on another distribution.

Usage

# run df locally
rmux df

# close tmux session
exit

# run df on two remote hosts, syncronized windows
HOSTS="node1 node2" rmux df

# run a script downloaded from the web (installs pip)
rmux -w https://bootstrap.pypa.io/get-pip.py

If you fail to define the HOSTS variable the tool will default to localhost but it will still use its logic of doing a rsync and running commands using tmux and ssh.

How it works

rmux will detect current project by looking for the .git folder it in current directory or its parents. If it fails to find any .git folder, it will skip the rsync part.

The script will not rsync .gitignored files but it will sync untracked files.

The destination folder on remote machines is ~/.cache/.rmux/<projectname> which will also become default directory.

The remote user is based on host names or your ssh configuration.

Installation

pip install rmux

While rmux is currently only a pure bash script, I used pip wheel as a way to distribute it as it cross platform and easy to use. In addition, it allows me to easily upgrade it.

If you prefer you can just download the shell script and add it to your path.

See also

  • tmux - terminal multiplexer
  • tmux-xpanes - auto-window layout for tmux, a current requirement for rmux. Still, it should be possible to avoid using it if you have only one remote host, just make a feature request and I can implement it.
  • direnv - define environment variables specific to current directory. This can be very handy if you want to have different set of HOSTS for each project and avoid mentioning them on the command line.
  • rtox which allows running tox on remote machines this being the original project. With rmux you will no longer need rtox as you can just do rmux tox instead of rtox, the big difference being that the session is not closed automatically and that you can now run on multiple remote hosts instead of just one.

Links

Release files for rmux 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rmux 1.0.6
File Size Uploaded
rmux-1.0.6.tar.gz 456.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rmux 1.0.6
File Interpreter ABI Platform
rmux-1.0.6-py2-none-any.whl Python 2 none any Details

Total release size: 467.3 kB

Release files / rmux-1.0.6.tar.gz

Download URL rmux-1.0.6.tar.gz
Size 456.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0d141792cffa5881960c1cdd3798c56c779da5c0134fbb2544784814be89c8d9
BLAKE2b-256 checksum
How to use checksums
9983b4b97d46e5088123c0c0c8fd48115a0483191b69b4c87af2c06b363f666d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

Release files / rmux-1.0.6-py2-none-any.whl

Download URL rmux-1.0.6-py2-none-any.whl
Size 10.4 kB
Tags Python 2
SHA-256 checksum
How to use checksums
55c3abb4d1b74f6a8471541a0eddceff49c3dd4069bd606a1f88616358578bb9
BLAKE2b-256 checksum
How to use checksums
29fcf68f9f18f51fa84d12ec2efe19b76b1b5416b30821ef64e1d7d81e8c5e0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.15

Release history Release notifications | RSS feed

This release

1.0.6 This release

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

0.1.0

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page