Polynote | The polyglot Scala notebook

Learn to love your notebooks.

Try it!

Polynote is a different kind of notebook. It supports mixing multiple languages in one notebook, and sharing data between them seamlessly. It encourages reproducible notebooks with its immutable data model. (Learn more)

Here are some of its unique features:


Interactive auto-complete helps you find what you're looking for without switching to the documentation.

Highlighting your errors helps you quickly figure out what's gone wrong.

Rich text editing lets you see your formatted text cells as you write them, and edit them like a document.

Easily insert LaTeX equations into your text cells.


Always know what the kernel is doing with individual task tracking.

The symbol table keeps track of what you've defined, and what's available in the current cell. Inspect any value for detailed information and rich visualizations.

See exactly what code is executing right now, as Polynote highlights the running statement in real-time.

Ordered cell semantics ensures your notebook can be reproducibly executed.

Data and visualization

First-class integration with Apache Spark™ for exploring, analyzing, and visualizing big data.

Browse table-structured data, including collections of data structures and Spark data sets.

See rich representations of your data, automatically derived or supplied by a typeclass.

Easily create visualizations with the built-in plot editor, or define your own with the Vega visualization language.