marimo

0

A next-generation Python notebook: explore data, build tools, deploy apps!

Analytics

python
apps
marimo
notebooks

A next-generation Python notebook: explore data, build tools, deploy apps!

marimo is a next-generation Python notebook where every notebook is also shareable as an interactive web app. It provides a seamless environment for exploring data, running experiments, building tools, and deploying apps.

Highlights:

  • Reactive: When you run a cell, marimo automatically runs all other cells that depend on it, similar to a spreadsheet. This reactivity, combined with built-in interactive UI elements, allows you to create powerful notebooks and apps that make your data tangible.
  • Interactive: Connect inputs like sliders, dropdowns, plots, and more to Python, enabling interactivity in your notebooks.
  • Expressive: Write dynamic markdown parametrized by UI elements, plots, or anything else, making your notebooks more flexible and expressive.
  • Pythonic: marimo uses pure Python without callbacks or magical syntax, providing a familiar programming experience.
  • Git-friendly: Notebooks are stored as .py files, making them friendly for version control using Git.

Quickstart:

  1. Install marimo by running pip install marimo in a terminal.
  2. To see a tutorial notebook in your browser, run marimo tutorial intro.
  3. Create new notebooks using marimo edit or edit existing ones with marimo edit your_notebook.py. marimo reacts to code changes, providing rapid feedback to keep your code and outputs in sync.

Import marimo in your notebooks to use interactive elements like sliders, dropdowns, tables, and more. Detailed documentation is available for learning advanced features such as laying out outputs in tabs, rows, columns, and more.

marimo allows you to run your notebook as a web app, hiding and making Python code uneditable. It also offers automatic conversion of Jupyter notebooks to marimo notebooks using the command marimo convert your_notebook.ipynb > your_notebook.py.

Tutorials, examples, and FAQs are provided to guide users in utilizing marimo effectively. Contributions from the community are welcome, and details on how to contribute can be found in the CONTRIBUTING.md file. For further assistance or discussion, reach out to the marimo community on Discord.

The marimo team invites users to explore its features and join the growing community by starring the project on GitHub, subscribing to the newsletter, following on Twitter and LinkedIn, and participating in GitHub Discussions. Check out the public gallery for deployed examples demonstrating the power and versatility of marimo.

Company Screenshot