Juno 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.

When you write code in Juno, the actual computing is happenning on a remote Jupyter server, giving you access to virtually unlimited computational resources from your iPhone or iPad. Juno lets you connect to your own Jupyter server, or use cloud computing services, such as CoCalc and Azure Notebooks.

Jupyter Notebook has support for over 40 programming languages, including Python, R, Julia and Scala.
• Produce rich output with your code: HTML, images, videos, LaTeX, and custom MIME types, all wrapped into a single notebook file.
• Leverage big data tools, such as Apache Spark, from Python, R and Scala. Explore that same data with pandas, scikit-learn, ggplot2, TensorFlow.

• Optimizing Jupyter for iOS, Juno delivers a full-featured code editor experience and a complete development environment on your iPhone or iPad.
• Use all familiar Jupyter shortcuts with your external hardware keyboard.
• Launch Juno in Split-screen mode alongside other apps on iPad. Run notebooks with documentation, terminal, or other code editor in front of you.
• Get code completion suggestions for your programming language as you type, powered by your Jupyter Notebook server's kernel.
• Try Jupyter without any preliminary configuration. We have bundled introductory notebooks on Python, Matplotlib, NumPy, SciPy — and will keep adding more!

What’s New

Version 1.3.0

Thank you for using Juno! What's new in Juno 1.3:

• Binder integration. You can now launch GitHub, GitLab and arbitrary git repositories in Juno using integration.
• Kernel switcher. You can now switch between kernels that are available on your server from the Kernel menu in notebook editor.
• Improved Azure Notebooks integration. Some new projects couldn't be accessed in Juno, now you should be able to launch all of them.
• Improved CoCalc integration. CoCalc connection should now be more reliable in terms of keeping your server alive, and all of your projects should now be displayed with correct status.
• More control over your custom server. You can now check the URL your custom server is loading and change it on the go: for instance, if your JupyterHub is using some non-conventional authentication.
• Unsaved changes alerts. Juno will now alert you when closing a notebook with unsaved changes, as well as display unsaved changes indicator while editing the notebook.
• Fix for broken edit mode. Sometimes Juno couldn't re-enter edit mode when switching between apps in iOS 12, this should now be properly detected and handled.
• Optional Esc key binding. You can now map Esc key to your hardware keyboard's Control or Option key, or disable mapping altogether.
• Improved JupyterLab fallback detection. Whenever you connect to a JupyterLab server, it should now be correctly identified and accessed via fallback Jupyter Notebook route.
• Improved kernel reporting. Previously Juno would sometimes fail to display notebook's kernel, this should now be fixed.
• R markdown notebooks support. R markdown files (.rmd) should now open in notebook editor as usual notebooks.
• Basic HTTP Authentication support. Juno will now allow you to authenticate against your Jupyter server if it's using Basic HTTP Authentication.

...As well as a few other smaller fixes and improvements.

Thanks again for your support, and please reach out if you face any issues with the app, or if you can't get it to work with your Jupyter server — I'll be happy to help!

Ratings and Reviews

4.5 out of 5
178 Ratings
178 Ratings
angry violinist ,

Near perfect except missing port forwarding

I suspect most people’s setup is to use ssh tunneling. Currently, I use the workaround of using Blink Shell’s port forwarding feature. However, that solution is not perfect because iOS does not allow a background app to maintain a connection for more than 10 minutes. So, currently, I have to either (1) switch back to Blink Shell every 10 minutes or (2) run Blink Shell side-by-side with Juno, which takes up much precise screen space on the iPad.

Had Juno supported port forwarding, then as a foreground app it wouldn’t have the 10-minutes connectivity issue.

Would love to bump up to 5 stars when that feature is finally implemented!

Developer Response ,

Hey! 👋 I am indeed planning to add SSH tunnelling in Juno, although I'm afraid I'm not sure when this will be released exactly — possibly in Juno 1.4, being the next significant update after soon-to-be-released Juno 1.3. Hope this gives you some reassurance, and sorry for inconvenience meanwhile. 😔

Ryan J ,

Jupyter on the iPad, Finally!

I’ve been wanting something like this app for years, now, as I’ve built up a large collection of Jupyter (formerly Ipython) notebooks. I can’t praise the fine folks who have built this app enough. I have a few notebooks on Microsoft Azure Notebook and they execute flawlessly when interacting with them through the Juno app. Editing is easy and intuitive. Try out the demo notebooks and pay for the full version. It’s an absolute joy to use.

Andron1424 ,

Useful for Students

The ability to access Jupyter notebooks on azure has assisted in my write ups for physics classes, facilitated my production of scripts for automating aspects of my research, and allowed me to create small computational programs for students that I TA all from my iPad. No bugs I’ve noticed. Very fast loading. Excellent editing options. Thanks for that tab key haha! Look forward to continuing to use this app. (I’m actually doing a Prelab rn on Juno lelll)


Rational Matter Ltd
29.6 MB
Requires iOS 10.3 or later. Compatible with iPhone, iPad, and iPod touch.
Age Rating
You must be at least 17 years old to download this app.
Unrestricted Web Access
© 2018 Rational Matter Ltd
In-App Purchases
  1. Juno Pro $14.99


  • Family Sharing

    With Family Sharing set up, up to six family members can use this app.

You May Also Like