marimo

A reactive notebook for Python — run reproducible experiments, execute as a script, deploy as an app, and version with git.

APACHE-2.0 License

Downloads
66.1K
Stars
3.9K

Bot releases are visible (Hide)

marimo - 0.6.3

Published by akshayka 5 months ago

What's Changed

A small fix for mo.ui.table.

Full Changelog: https://github.com/marimo-team/marimo/compare/0.6.2...0.6.3

marimo - 0.6.2

Published by akshayka 5 months ago

What's Changed

Small fixes.

Full Changelog: https://github.com/marimo-team/marimo/compare/0.6.1...0.6.2

marimo - 0.6.1

Published by akshayka 5 months ago

What's Changed

Highlights

This change includes many quality-of-life improvements to the marimo editor.

📝 Improved markdown editing. The markdown editor now includes basic keyboard shortcuts for bolding text, italicizing, inserting links and more. "Markdown cells", i.e. cells that have a single mo.md expression, automatically render with the markdown editor. We've also added a "add markdown cell" button to the bottom of the cell array for convenience.

📑 Go-to definition. Use Ctrl/Cmd+Click on a variable to automatically jump to its definition!

📣 Markdown admonitions. Admonitions in markdown are now supported! For example:

mo.md(
  r"""
      !!! {hint} "Here's a hint!"
          You can now use admonitions in marimo.
   """
)

See the Python markdown docs for more info on syntax.

🤖 Generate with AI button. If you have AI completions enabled, at the bottom of the cell array you'll now see a "Generate with AI" button.

🗺 Routes. Use mo.routes to create a list of routes that are switched based on the URL path. This is helpful if your working on a marimo notebook that will be deployed as an app -- you can use it in conjunction with mo.sidebar to create multipage apps.

All changes

New Contributors

Welcome to the marimo family!

Full Changelog: https://github.com/marimo-team/marimo/compare/0.6.0...0.6.1

marimo - 0.6.0

Published by akshayka 5 months ago

What's Changed

Version 0.6.0 includes two big new features — first-class markdown support and token-authentication — and small quality of life improvements.

Highlights

marimo ❤️ markdown: marimo edit nb.md. marimo now supports markdown as a first-class file format. This means that if you're working on notebook that's heavy on text, you can write your notebook in markdown using an editor of your choice (VSCode, vim — anything you like!). Save it as nb.md, then fire up the marimo editor to interact with it — marimo edit nb.md — or run it as an app with marimo run nb.md.

When working with markdown, create a notebook cell using a special fenced code block that starts with {python} (note the braces!).

```{python}
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
```

Here's a full example:

# Hello, world!                                                                  
                                                                                 
This is a markdown powered notebook.                                             
                                                                                 
```{python}                                                              
import random                                                                    
random.randint(0, 1000)                                                          
```                                                                              
                                                                                 
```{python, hide_code=true} 
import marimo as mo 
```

The markdown file format is not meant as a replacement for the Python one, but it gives you the flexibility to choose the format that's best for your workflow. You can convert markdown notebooks to Python with

marimo convert nb.md > nb.py

and export Python to markdown with

marimo convert nb.py > nb.md

marimo export notebook.md > notebook.py

Check out our tutorial to learn more.

Huge shout out to @dmadisetti for contributing the markdown support! 💪🎉

Token-based authentication 🔑. marimo now runs with token-based authentication by default — this makes sure that only trusted parties can access the marimo server. Most users won't notice changes to their workflow. To learn more, check out the docs.

Export as ipynb 📝. Export marimo notebooks as Jupyter notebook files with marimo export ipynb nb.py -o nb.ipynb.

Split cell hotkey ⌨️: Split cells with our new hotkey: Ctrl/Cmd-Shift-'.

Breaking changes

mo.hstack and mo.vstack now require you to use keyword args (except for the list of items).

New Contributors

Welcome to the marimo family!

Full changelog

Full Changelog: https://github.com/marimo-team/marimo/compare/0.5.2...0.6.0

marimo - 0.5.2

Published by mscolnick 5 months ago

Highlights

  • mo.sidebar to portal any elements into a collapsible sidebar for your application
mo.sidebar([
    mo.md("# marimo"),
    mo.nav_menu({
        "#home": f"{mo.icon('lucide:home')} Home",
        "#about": f"{mo.icon('lucide:user')} About",
        "#contact": f"{mo.icon('lucide:phone')} Contact",
        "Links": {
          "https://twitter.com/marimo_io": "Twitter",
          "https://github.com/marimo-team/marimo": "GitHub",
        },
      }, orientation="vertical",
    ),
])

What's Changed

Full Changelog: https://github.com/marimo-team/marimo/compare/0.5.1...0.5.2

marimo - 0.5.1

Published by akshayka 5 months ago

Highlights

🏝️ marimo islands: marimo islands are a way to embed marimo outputs and/or python code in your HTML that will become interactive when the page is loaded. This is useful for creating interactive blog posts, tutorials, and educational materials, all powered by marimo’s reactive runtime.

<marimo-island data-app-id="main" data-cell-id="MJUe" data-reactive="true">
  <marimo-cell-output>
    <span class="markdown">
      <span class="paragraph">Hello, islands!</span>
    </span>
  </marimo-cell-output>
  <marimo-cell-code hidden>mo.md('Hello islands 🏝️!')</marimo-cell-code>
</marimo-island>

Read more about islands: https://docs.marimo.io/guides/wasm.html#islands

Export as Markdown: Export your marimo app to markdown from the code editor.

mo.nav_menu: Navigate to different marimo notebooks, when running multiple notebooks at a time.

What's Changed

Full Changelog: https://github.com/marimo-team/marimo/compare/0.5.0...0.5.1

marimo - 0.5.0

Published by akshayka 5 months ago

What's Changed

Version 0.5.0 introduces a brand new lazy runtime which makes working with expensive notebooks much more ergonomic, and it also makes it possible to export notebooks as markdown.

Highlights

Lazy runtime. We've heard your feedback: you can now configure the marimo runtime to be lazy, giving you full control over when cells are run. When a cell is run, instead of automatically running affected cells, marimo's lazy runtime will mark them as stale. Cells are still always run with the latest inputs (stale parents of a cell are run if needed), and your notebook is still required to be a DAG, so you're still guaranteed that your code and outputs are consistent.

Learn more: https://docs.marimo.io/guides/runtime_configuration.html

Export as markdown. Export marimo notebooks as markdown with marimo export md notebook.py -o notebook.md, or convert markdown to marimo with marimo convert notebook.md > notebook.py.

Shout out to @dmadisetti for contributing this feature.

What's coming

Future updates in the 0.5.x series will bring more improvements to both the runtime and using markdown -- stay tuned!

All changes

Thanks @Ubehebe for making your first contribution; welcome to the marimo fam!

New Contributors

Full Changelog: https://github.com/marimo-team/marimo/compare/0.4.11...0.5.0

marimo - 0.4.11

Published by akshayka 6 months ago

What's Changed

This release includes a few major UX improvements to the marimo editor.

Highlights

Improved DAG viewer. The built-in dependency graph viewer is now much more useful: view your cells in a top-down topological order. Click on an edge to see the variables that flow on it, or double click a cell to automatically bring it into focus.

This viewer can help you understand which cells when run when a given cell runs.

Hardware utilization meters. The editor footer shows total RAM and CPU usage on your machine.

Use mo.status.progress_bar as a context manager:

with mo.status.progress_bar(total=10) as bar:
    for i in range(10):
        # do work
        bar.update(increment=1, subtitle=f"finished iteration number {i]")

All changes

Shout out to @seantur for making their first contribution (thank you!), and @fuenfundachtzig for continuing to make marimo better.

New Contributors

Full Changelog: https://github.com/marimo-team/marimo/compare/0.4.10...0.4.11

marimo - 0.4.10

Published by mscolnick 6 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/marimo-team/marimo/compare/0.4.9...0.4.10

marimo - 0.4.9

Published by akshayka 6 months ago

What's Changed

Fixes a bug in which some console outputs were not showing up.

Full Changelog: https://github.com/marimo-team/marimo/compare/0.4.8...0.4.9

marimo - 0.4.8

Published by mscolnick 6 months ago

Highlights

  • You can now configure the app_title to display a different tab title than the filename
  • You can display mo.ui.spinner as a UI element, without using it as a context manager (with)

What's Changed

Full Changelog: https://github.com/marimo-team/marimo/compare/0.4.7...0.4.8

marimo - 0.4.7

Published by akshayka 6 months ago

What's Changed

Improvements and bug fixes.

Full Changelog: https://github.com/marimo-team/marimo/compare/0.4.6...0.4.7

marimo - 0.4.6

Published by akshayka 6 months ago

What's Changed

Improvements and fixes.

Full Changelog: https://github.com/marimo-team/marimo/compare/0.4.5...0.4.6

marimo - 0.4.5

Published by akshayka 6 months ago

What's Changed

Small bug fixes.

Full Changelog: https://github.com/marimo-team/marimo/compare/0.4.4...0.4.5

marimo - 0.4.4

Published by akshayka 6 months ago

What's Changed

Highlights

🐍 marimo export script: Export marimo notebooks as flat Python scripts:

marimo export script notebook.py -o flat_script.py

marimo notebooks are already executable as scripts (python notebook.py), but we're providing this for convenience, in case you need to use your notebook as a script in an environment that doesn't have marimo installed.

🔔 Better UX for undoing cell deletion. Many of you told us you didn't know how to undo cell deletions.

Tab to start completions. In addition to Ctrl+Space.

🏁 Windows compatibility. Fixes for our Windows users. Thanks for your patience!

Full changelog

Full Changelog: https://github.com/marimo-team/marimo/compare/0.4.3...0.4.4

marimo - 0.4.3

Published by akshayka 6 months ago

What's Changed

Highlights

This release adds mo.ui.range_slider — thanks @wasimsandhu for your contribution! It also includes performance improvements
and bug fixes.

Full changelog

Full Changelog: https://github.com/marimo-team/marimo/compare/0.4.2...0.4.3

marimo - 0.4.2

Published by akshayka 6 months ago

What's Changed

This version includes improvements to mo.ui.plotly, the module autoreloader, mo.status.progress_bar, as well as other bug fixes.

Full changelog

New Contributors

Full Changelog: https://github.com/marimo-team/marimo/compare/0.4.1...0.4.2

marimo - 0.4.1

Published by akshayka 6 months ago

What's Changed

Highlights

⚡️ Reactive module autoreloading. marimo now ships with the most advanced module autoreloader out of any interactive Python programming environment. When enabled (via the notebook settings menu), marimo automatically react to modifications made to packages and modules that your notebook imports. This lets you develop complex logic in Python modules, using an editor of your choice, and use the marimo notebook as a DAG or main script that orchestrates your logic.

Autoreloading comes in two flavors:

  • “detect”: automatically marks cells affected by module modifications as stale, letting you know which cells need to be re-run.
  • “autorun”: automatically re-runs cells affected by module modification.

Thanks @MartinBernstorff, @astrowonk for the feature request!

Command-line arguments. Give arbitrary command-line arguments to your notebook, and read them with mo.cli_args(): this works in edit and run modes, and also while running as a script.

  • marimo edit notebook.py -- -arg1=foo -arg2=bar
  • marimo run notebook.py -- -arg1=foo -arg2=bar
  • python notebook.py -arg1=foo -arg2=bar

Thanks @twrightsman for the feature request!

📄 Programmatic HTML export. Long requested, finally here: use marimo export html at the command-line to export your notebooks as beautiful documents:

  • to HTML: marimo export html notebook.py -o notebook.html
  • with CLI args: marimo export html notebook.py -o notebook.html -- -arg1=foo -arg2=bar

Thanks @egemenimre, @scls19fr, @bmeyers for the feature request!

🔎 Check if running in a notebook. Use mo.running_in_notebook() to tell whether Python is executing inside a marimo notebook. Use this when developing library code that integrates with marimo, or to tell whether your notebook file is running via the notebook kernel or as a Python script.

P.S. Check out our new guide on integrating your objects with marimo.

Full changelog

New Contributors

Full Changelog: https://github.com/marimo-team/marimo/compare/0.4.0...0.4.1

marimo - 0.4.0

Published by akshayka 6 months ago

What's Changed

Highlights

🏠 Edit multiple notebooks with marimo edit!: marimo edit now opens a notebook homepage that lets you create new notebooks, and start and stop exiting ones. That is, this homepage gives you a single marimo server to edit multiple notebooks.

You can still use marimo edit notebook.py to edit a specific notebook. To create a new notebook without going through the notebook server, use marimo new.

This feature is new and will evolve rapidly — please give us your feedback!

🗂️ File browser: Use mo.ui.file_browser to add an interactive file browser to your notebooks! Thanks @wasimsandhu for the contribution!

Quality-of-life improvements: Version 0.4.0 includes accessibility updates to mo.ui.number, lets you format notebooks with ruff (in addition to Black), and other small improvements.

All changes

Full Changelog: https://github.com/marimo-team/marimo/compare/0.3.12...0.4.0

marimo - 0.3.12

Published by akshayka 6 months ago

What's Changed

A small bug-fix for release 0.3.11, which has many interesting new features.

Full Changelog: https://github.com/marimo-team/marimo/compare/0.3.11...0.3.12