marimo vs Polynote
marimo
marimo.ioPolynote
polynote.orgSide by side
| Figure | marimo | Polynote |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | Yes | Yes |
| Windows | Yes | — |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | — |
| Self-hosted | Yes | Yes |
| Plans published | 3 | 1 |
| Spec score · Notebook Software | 8.6 (#8) | 7.4 (#20) |
| Product | marimo is an open-source reactive Python notebook that automatically runs dependent cells and stores notebooks as Git-friendly Python files. | Polynote is a polyglot notebook with first-class Scala support. |
| Reproducibility | marimo uses deterministic execution without hidden state and can store package requirements in notebook files. | Polynote encourages reproducible notebooks with an immutable data model and ordered cell semantics. |
| Security | marimo says no user code runs without explicit user action, and notebooks opened in edit mode are statically loaded rather than executed as Python modules. | The installation documentation warns that Polynote allows arbitrary remote code execution and says running it on an internet-accessible computer is unsafe. |
Plans
In their own words
marimo
marimo is an open-source reactive Python notebook for reproducible experiments, data work, and interactive apps. When a cell runs, dependent cells run as well or are marked stale, helping keep code and outputs consistent. Notebooks are stored as Python files that can be tracked with Git, run as scripts, or reused as modules. Users can build interfaces with sliders, dropdowns, dataframe tables, and selectable plots, then deploy notebooks as interactive web apps or run them in browsers through WebAssembly. SQL cells work with dataframes, databases, CSVs, and Google Sheets, with named backends including Polars, Pandas, PyArrow, DuckDB, SQLite, and Postgres. AI notebook features support OpenAI, Anthropic, Gemini, Ollama, and compatible APIs. marimo has extensions for VS Code and PyCharm, with the VS Code extension also working in Cursor and other VS Code forks. The free hosted option molab provides 4 CPUs, 32 GB RAM, and sessions up to 12 hours; notebooks are public by default. Running notebook code can execute arbitrary code, so the maker advises using trusted notebooks or reviewing code first. The open-source notebook is free.
Polynote
Polynote is free, open-source notebook software with first-class Scala support. One notebook can mix Scala, Python, SQL, and Vega while sharing data between languages. Its immutable data model and ordered cell semantics support reproducible work. Editing includes autocomplete, error highlighting, rich text, and LaTeX equations. The interface tracks kernel tasks and highlights the statement currently running. A plot editor and Vega support handle visualization. Polynote integrates with Apache Spark for Scala and Python; Python runs through Jep in the JVM and can share data with Scala. The software is a JVM-based server that serves a web client and is distributed for self-hosting on Linux, macOS, and other listed environments. It supports Jupyter .ipynb and Zeppelin .json formats. Runtime documentation reports successful testing with Java 8 and Java 11 and requires Python 3 with pip. Installation warns that arbitrary remote code execution makes internet-accessible deployment unsafe.