Jump simplifies the process of starting and connecting to remote jupyter notebook servers. It support the creation of new notebook servers, as well as connecting to existing ones. It also supports the use of remote environments, such as conda/mamba or virtualenv environments. It can be very useful in particular when the connection to the remote machine is unstable.
Free software: MIT license
With conda/mamba:
conda install -c conda-forge jumpwith pip:
python -m pip install jumpAfter the installation the executable jump should be available in your path. To open a new session on a remote machine using a conda enviroment, type
jump --env-type conda REMOTEMACHINE- Start a new notebook server on a remote machine
- Connect to an existing notebook server on a remote machine
- Support for conda/mamba and virtualenv environments
- Support for jupyter lab
- Support for killing a notebook server
For options, type
jump --helpWarning Jump do not kill automatically your sessions. Closing the browser tab will not kill the session on the server. You have to kill the session manually using the
killaction. This feature is useful if your connection to the remote machine drops. In that case you only need to attach your session again.
Starting a new notebook server in remote virtual environment myenv on a remote machine REMOTEMACHINE (start at the end is optional)
jump --env-type virtualenv --env-name myenv REMOTEMACHINE startStarting a new jupyter lab server in remote conda environment myenv on a remote machine REMOTEMACHINE
jump --env-type conda --env-name myenv REMOTEMACHINE start --labListing all the running notebook servers on a remote machine REMOTEMACHINE
jump --env-type mamba --env-name myenv REMOTEMACHINE listConnecting to an existing jupyter server
jump --env-type conda --env-name myenv REMOTEMACHINE attachStarting a new notebook server with remote module cuda/9.2 loaded for GPU support
jump --env-type conda --env-name -m cuda/9.2 REMOTEMACHINE startKilling a notebook server
jump --env-type conda --env-name myenv REMOTEMACHINE killKilling all notebook servers
jump --env-type conda --env-name myenv REMOTEMACHINE kill --allOn local (UNIX) machine:
- plumbum and click (are installed automatically)
- ssh
On remote machine:
- anaconda/miniconda or mamba/micromamba or a virtualenv
- jupyter notebook (at least installed in one environment, jupyter > 5.1 required for the kill action)
- jupyter lab (to support the
--laboption)
Windows systems are not supported.
In order to use this script efficiently, it is desirable to have an efficient setup in your ~/.ssh/config file.
Concretely, you should prevent your ssh connection from prompting for a password everytime you rune a local command, like this:
Host *
ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 60m
ServerAliveInterval 90
Furthermore, you will want to set up shortcuts for the servers that you use most often:
Host YOUR_SHORTCUT
HostName FULL_REMOTE_NAME
DynamicForward 8080
User YOUR_USER_NAME_ON_THE_REMOTE`
If you have remotes that require tunneling through a login node, you may also want to define those remotes explicitly:
Host NAME_OF_REMOTE
ProxyCommand ssh FULL_LOGIN_NODE_NAME_OR_SHORTCUT -W %h:%p