Sshpyk — Run Jupyter kernels over SSH as if they were local

Hi all!

This summer I published sshpyk, a lightweight Python package that lets you launch Jupyter kernels on a remote machine via SSH and use them from many Jupyter front-end (Lab/Notebook/Console) as if they were local. It plugs into Jupyter’s kernel provisioning API, so it installs a proper kernelspec and manages tunnels for you.

Why you might care:

  • Simple remote compute: point your notebook to a remote env (GPU box, server, cluster node) without exposing a full Jupyter server.
  • From the CLI: supports persistent kernels (reconnect later) and interactive controls for interrupt/restart/leave. Unix signals are also supported for non-interactive shells.

Notes and requirements:

  • Local: sshpyk + jupyter_client; Remote: jupyter_client

  • Windows is currently not supported (local nor remote).

  • There are other approaches like ssh_ipykernel and remote_ikernel; sshpyk’s angle is to use the modern kernel provisioner mechanism and ship a focused CLI for lifecycle/persistence.

  • I donated my work to the Common Astronomy Software Applications in an attempt to have a tool that does not need to be rebuilt every few years.

Repo & docs: https://github.com/casangi/sshpyk Feedback is welcome!

Hope you find it useful, cheers!

2 Likes