Run Jupyter on a remote server

jupyter, remote, ssh, slurm, pexpect, orchestra, o2
pip install jupyter-remote==0.9.3



Jupyter-Remote is a command-line tool that automatically runs Jupyter on a remote server. It is derived from Jupyter-O2.

Jupyter-Remote aims to streamline remote Jupyter usage for a range of remote configurations, from simple servers to SLURM clusters that require request forwarding to a compute node.


Set up Jupyter on the remote server.

Next, install Jupyter-Remote.

pip install jupyter-remote

Then, generate the config file.

jupyter-remote --generate-config

Follow the printed path to jupyter-remote.cfg and edit to suit your needs.

For more info on setting up Jupyter and troubleshooting Jupyter-Remote, see the jupyter-remote tips.


jupyter-remote [profile] [subcommand]

Both arguments are optional.

If Jupyter is installed on your machine, Jupyter-Remote can be run as a Jupyter subcommand:

jupyter remote o2 lab

Be sure to try out JupyterLab!

For more info on the Jupyter-Remote command-line options, use jupyter-remote --help.


Make a copy of jupyter-remote.cfg and name it jupyter-remote-[profile name].cfg. See example_cfgs/jupyter-remote-o2.cfg.

Note: Both the profile and subcommand option are optional. If only one is provided, Jupyter-Remote will first look for a profile with that name, and if none is found, it will use the default profile with the given subcommand.

Requirements and compatibility

  • python 2.7 or 3.6
  • pexpect.pxssh
  • POSIX: Jupyter-Remote has been tested on MacOS and Linux, while on Windows it will require Cygwin and Cygwin's version of Python.
  • pinentry (suggested)