Live data from Hacker News

Closer to production quality Python notebooks with `marimo check`

marimo.io

1–10 of 24 posts

Re: Closer to production quality Python notebooks with `marimo check`

#2
marimo notebooks double as python Python programs, which means they can be lint-ed like any other code. `marimo check` catches notebook-specific issues (variable redefinition across cells, circular dependencies) with Rust-inspired (and uv; uv is amazing) error messages. It outputs JSON for AI agents to self-correct, integrates into CI pipelines, and includes `--fix` flags for automatic repairs. The team is already using it in their own CI and seeing Claude Code iterate on notebooks without human intervention.

Re: Closer to production quality Python notebooks with `marimo check`

#3
I’m very interested in moving beyond Jupyter notebooks so I have my eye on marimo.

My understanding is it’s just python code with a bit of notebook hints and an idea that gives the notebook experience.

So I didn’t quite catch from the article why ruff and pylons aren’t enough.

Re: Closer to production quality Python notebooks with `marimo check`

#4
I wish this didn't have AI in it. I've been looking for a Jupyter alternative that is pure python and can be modified from a regular text editor. Jupytext works okay, but I miss the advanced Jupyter features. But I really don't want to deal with yet another AI assistant, especially not a custom one when I'm already using Claude/etc from the CLI and I want those agents to help me edit the notebooks.

Take out all the AI stuff and I'd give it a try. I use AI coding agents as my daily driver, but I really don't need this AI enshittification in every tool/library I'm using.

Re: Closer to production quality Python notebooks with `marimo check`

#5

I wish this didn't have AI in it. I've been looking for a Jupyter alternative that is pure python and can be modified from a regular text editor. Jupytext works okay, but I miss the advanced Jupyter features. But I really don't want to deal with yet another AI assistant, especially not a custom one when I'm already using Claude/etc from the CLI and I want those agents to help me edit the notebooks. Take out all the A…

I hate how much I lean into VSCode, but the Python interactive mode gets you a really good live coding environment. Instead of Jupyter cells, you have a regular .py file with chunks of code prefixed with a `# %%`. VSCode gives you a similar experience to a notebook, with the same controls (Run Above Cells, Restart and Run All, etc). So something like

  # %%
  import polars as pl

  # %%
  df = pl.DataFrame()
  df.shape

  # %%
  def foobar():
    return 1
Since it is a regular .py file all of your existing tooling will work with it. The one thing you lose vs a Jupyter notebook is saved output. I mostly use these .py files, but have a few .ipynb notebook files for when I want to commit the output from some important task.

Re: Closer to production quality Python notebooks with `marimo check`

#6

marimo notebooks double as python Python programs, which means they can be lint-ed like any other code. `marimo check` catches notebook-specific issues (variable redefinition across cells, circular dependencies) with Rust-inspired (and uv; uv is amazing) error messages. It outputs JSON for AI agents to self-correct, integrates into CI pipelines, and includes `--fix` flags for automatic repairs. The team is already us…

IME Agents work fine on human readable error messages.

Re: Closer to production quality Python notebooks with `marimo check`

#7

I wish this didn't have AI in it. I've been looking for a Jupyter alternative that is pure python and can be modified from a regular text editor. Jupytext works okay, but I miss the advanced Jupyter features. But I really don't want to deal with yet another AI assistant, especially not a custom one when I'm already using Claude/etc from the CLI and I want those agents to help me edit the notebooks. Take out all the A…

You can not use the AI features, nothing is enabled by default (you have to bring your own keys)

Re: Closer to production quality Python notebooks with `marimo check`

#8

I’m very interested in moving beyond Jupyter notebooks so I have my eye on marimo. My understanding is it’s just python code with a bit of notebook hints and an idea that gives the notebook experience. So I didn’t quite catch from the article why ruff and pylons aren’t enough.

Hi! Thanks for your interest. marimo is much more than that — unlike traditional notebooks, marimo is "reactive", meaning it models notebooks as dataflow graphs and keeps code an outputs in sync. Moreover, marimo notebooks are not "just notebooks". They can be seamlessly run as interactive web apps or as Python scripts.

Here is our original ShowHN post that explains what marimo is all about: https://news.ycombinator.com/item?id=38971966

Blog that goes deeper: https://marimo.io/blog/lessons-learned

Re: Closer to production quality Python notebooks with `marimo check`

#9

I wish this didn't have AI in it. I've been looking for a Jupyter alternative that is pure python and can be modified from a regular text editor. Jupytext works okay, but I miss the advanced Jupyter features. But I really don't want to deal with yet another AI assistant, especially not a custom one when I'm already using Claude/etc from the CLI and I want those agents to help me edit the notebooks. Take out all the A…

Reading the article, I don't think it has AI. They've just made the tools in a way that AI assistants can also use them, and so fix linting errors without anyone needing to fine-tune the LLM on the syntax.

That's actually pretty slick. I've been wondering how we could avoid blocking innovation in programming languages because of the death cycle of "no training data on language -> LLM can't learn language -> Assistant can't code language -> nobody uses language -> no training data on language".

Re: Closer to production quality Python notebooks with `marimo check`

#10

marimo notebooks double as python Python programs, which means they can be lint-ed like any other code. `marimo check` catches notebook-specific issues (variable redefinition across cells, circular dependencies) with Rust-inspired (and uv; uv is amazing) error messages. It outputs JSON for AI agents to self-correct, integrates into CI pipelines, and includes `--fix` flags for automatic repairs. The team is already us…

Unfortunately the code in Marimo notebooks implements cross-variable references as untyped function arguments, meaning that nothing passed between cells can be type-safe. This makes it very hard to use tooling directly on the Python representation of notebooks.
Post reply on HN