Jupyter Notebook & Python

Uses network

Open, edit and run Jupyter notebooks (.ipynb) in your browser, or start a new notebook and use it as an online Python environment. No installation or account needed. Python runs locally with Pyodide, including NumPy, pandas and matplotlib. Markdown, math, saved outputs, charts and HTML tables are displayed, and the edited notebook can be downloaded.

About this tool

What does this tool do?

A Jupyter notebook (.ipynb) is a JSON file that stores code cells, Markdown text and the outputs of the last run, such as printed text, tables and plots. Reading one normally requires Jupyter, VS Code or a GitHub page, and running one requires a Python installation. This tool does both in your browser: it renders the notebook, and it runs the Python code with Pyodide, a build of CPython for WebAssembly.

You can also click New notebook and use it simply as a Python playground: write code, press Shift+Enter and see the result, a table or a chart right below it.

How to use

  1. Drag and drop a .ipynb file onto the drop area, or click it to choose a file. Or click New notebook to start from scratch.
  2. Click a code cell to edit it. Press Shift+Enter or the ▶ button to run the cell and move to the next one.
  3. Click Run all to run every code cell from the top. It stops at the first cell that raises an error.
  4. Use the buttons next to a cell to add a cell below it or to delete it.
  5. Click Download .ipynb (or press Ctrl+S / Cmd+S) to save the notebook with your edits and outputs. It opens in Jupyter, VS Code or Google Colab.

The first run downloads the Python runtime (about 10 MB) from the jsDelivr CDN, which takes a few seconds. Later runs start immediately.

What is displayed

  • Markdown cells with headings, lists, links, tables and images
  • Math written in LaTeX, such as $\alpha^2$ or $$\sum_{i=1}^n x_i$$, rendered with KaTeX
  • Code cells with syntax highlighting and execution counts (In [3]:)
  • Outputs: printed text, error tracebacks, HTML tables (for example pandas DataFrames), and PNG, JPEG, GIF and SVG images (for example matplotlib plots)

Running Python

  • Packages: NumPy, pandas, matplotlib, SciPy, scikit-learn, SymPy and many more are installed automatically when a cell imports them. Pure-Python packages from PyPI are installed with micropip when possible
  • Rich output: the value of the last expression is shown like in Jupyter, so a DataFrame appears as a table and a SymPy expression as math
  • matplotlib figures are captured and shown as SVG
  • Variables are shared between cells, just like a Jupyter kernel
  • IPython magics such as %matplotlib inline and !pip install are skipped instead of causing errors

Features

  • No installation, account or server needed. Your code runs in your browser and is not sent anywhere
  • The notebook, including your edits and outputs, is kept with the tool, so it is still there after a reload
  • Clear error messages when a file is not valid JSON, has no cells array or contains a broken cell
  • Reads both the current notebook format and the older format that stores cells under worksheets

FAQ

Is my notebook uploaded?

No. The file is read and rendered in your browser, and Python runs in your browser too. Only the Python runtime and packages are downloaded from the CDN.

Can I use it without a notebook file?

Yes. Click New notebook to get an empty notebook and use it as an online Python environment. Download it as .ipynb when you want to keep it.

Why does a package fail to import?

Pyodide can install packages that are built for it and pure-Python packages from PyPI. Packages with native extensions that have no Pyodide build (for example some database drivers) cannot be installed. Network access from Python is also limited by the browser.

Why are there no plots in my notebook?

The outputs were probably cleared before saving (for example with "Clear All Outputs" or a tool such as nbstripout). Click Run all to run the notebook here and create them again.

Are interactive widgets supported?

Not yet. Interactive outputs such as ipywidgets are not shown. Static images and HTML tables are.

Is it as fast as Python on my computer?

Pure Python code is usually a few times slower than native CPython, while NumPy and pandas operations are much closer to native speed. It is fine for learning, quick analysis and sharing examples.