Juno Connect FAQ

Juno Connect is a client app for Jupyter, an interactive cloud-based computational environment, where you can combine code execution, rich text, mathematics, plots and rich media. Juno Connect lets you use the same notebook editor you would find in Juno, but instead of running code on device it will use a remote Jupyter server (or cloud-computing service, such as CoCalc) as a computational backend. Juno Connect supports Dark Mode, Dynamic Type and split screen multitasking, and works beautifully with Apple’s Magic Keyboard and trackpad.

For issues connecting to servers running JupyterLab, see here: Connecting to JupyterLab 4.0 and later

What languages and packages does Juno Connect support?

Juno Connect is a client, so you can use all kernels and packages available on the Jupyter server you are connecting to.

How can I access my server in Juno Connect?

You can either access your Jupyter server directly over HTTP/HTTPS, or by establishing an SSH tunnel with port forwarding. See these guides on how to configure your server and connect to it from your iPad or iPhone:

Alternatively, if you don’t want to go through the hassle of configuring your own server, you could use one of cloud-computing services that are based on Jupyter, such as CoCalc or Binder.

Unfortunately, Google Colaboratory is not supported in Juno Connect (yet). Meanwhile, it wouldn’t hurt to ping them through customer support, so that they know there is interest in Juno Connect integration. 😉

Does Juno Connect support JupyterLab?

Juno Connect doesn’t support any JupyterLab specific features yet; however, all JupyterLab servers also include “classic” Jupyter Notebook as a fallback option, which Juno Connect works with perfectly. JupyterLab servers should be detected automatically in Juno Connect, redirecting to this “classic” interface — if your server keeps loading JupyterLab, try appending /tree to your JupyterLab server URL.

Connecting to JupyterLab 4.0 and later

If you are experiencing issues connecting Juno Connect to servers running JupyterLab version 4.0 and later, you will need to install the nbclassic package. This package ensures Juno Connect can interface with JupyterLab 4.0+ by providing the classic Jupyter Notebook interface, while leveraging the same backend components:

  1. On your server, install the “classic” Notebook web application in the terminal or CLI:
    pip install nbclassic
  2. After installation, update the server’s URL in Juno Connect from {SERVER_ADDRESS} to {SERVER_ADDRESS}/nbclassic/tree.

Meanwhile, we are looking into supporting JupyterLab 4.0+ in a more seamless manner.

Can I connect to a Jupyter server sitting behind another gateway/proxy machine?

It’s hard to be sure for each and every case, but many users successfully got it to work by establishing a tunnel from the jump/gateway/proxy server to final destination first, and then connecting via tunnel to that gateway server. Something like this:

  1. Initiate port forwarding on the gateway machine like this:

    ssh -C -f -N -g -L [gateway machine port]:[target server ip]:[target server jupyter port] [username]@[target server ip]
  2. Add gateway machine’s address as a server in Juno Connect, and use it to connect to the target server.

How do I edit/delete existing server connection?

You should be able to edit and delete servers by swiping rows in the servers list — this will reveal a menu with Edit and Delete options, as well as a Disconnect option if server has an active SSH tunnel connected.

Can I edit text-based files in Juno Connect, like .py, .r or .md?

Not yet, although we are working on this. Meanwhile, there is a workaround, even if somewhat involved: you can configure a connection to your server in the Secure ShellFish app, and use it to install a file provider, so that your server’s file system contents appear in the Files app Files app icon. You will then be able to edit those files with any third-party text editor app on your device.

My hardware keyboard doesn’t have an Esc key

Notebook editor in Juno and Juno Connect responds to default Jupyter shortcuts on your hardware keyboard, and also allows configuring an additional binding to Control, Option or a few other key options, which will duplicate Esc key and will let you enter command mode, for instance.

Can I change the font size?

Both Juno and Juno Connect fully support Dynamic Type, which means they will adjust their UI according to system Text Size setting (Settings > Display & Brightness > Text Size). We are working on an app-specific setting for text size too, which will override the system one — this will be released in one of app’s updates.