2026 年 8 月 17 日,marimo 发布 0.24.0 版本。这个开源项目在 GitHub 上已有 22.6k star,被 1,799 个仓库依赖,自我定位是「AI 原生的响应式 Python notebook」。与 Jupyter 这类传统笔记本相比,它的核心差异在三点:改一个单元格会自动重跑依赖它的单元格;笔记本以纯 Python 文件存储,可以直接用 git 管理;内置 SQL 引擎,能直接查询数据库与数据帧。
marimo 由 marimo-team 维护,采用 Apache-2.0 协议,2023 年 8 月首次提交,至今累计 369 个 release、6,642 次提交、339 名贡献者,是 NumFOCUS 附属项目(与 NumPy、SciPy 同属一个社区)。
响应式执行:解决 Jupyter 的隐藏状态问题
Jupyter 用户大多遇到过这类场景:手动按顺序重跑单元格,某个变量的值其实是旧代码留下的,图表和数据对不上。marimo 的做法是让笔记本变成响应式程序——修改一个单元格后,所有引用它的单元格会自动重跑;删除一个单元格,它定义的变量也会从内存中清除,不留隐藏状态。
对计算量大的笔记本,marimo 支持配置为 lazy 模式:受影响单元格先标记为 stale,由你决定何时重跑,避免误触发昂贵的计算。
纯 Python 存储:笔记本变回普通代码文件
marimo 笔记本保存为 .py 文件,而不是 .ipynb 的 JSON。这意味着可以直接用 git 做 diff 和版本管理,代码评审像普通项目一样进行。同一个文件还能当脚本执行:
python your_notebook.py
CLI 提供 marimo edit(编辑)、marimo run(以 Web 应用方式运行并隐藏代码)等命令,还支持 marimo convert 把现有 Jupyter notebook 自动转换成 marimo 格式。
内置 SQL:在笔记本里直接查数据
marimo 的 SQL 单元格可以查询数据帧、数据库、数仓、CSV 和 Google Sheets,查询结果返回为 Python 数据帧。SQL 中的值可以引用 Python 变量,Python 代码也能使用 SQL 的结果,两种语言在同一个笔记本里互操作。
AI 原生:把 agent 接入工作流
marimo 提供 marimo pair 功能,可配对 Claude Code、Codex、OpenCode 等 agent 协作编辑笔记本;编辑器内置 AI 助手,支持自定义系统提示词、自带 API key 或使用本地模型。此外还有 GitHub Copilot 补全、VS Code 扩展和 PyCharm 插件,以及 vim 键位。
部署与分享:笔记本直接变成 Web 应用
marimo run your_notebook.py 会把笔记本作为交互式 Web 应用运行,代码隐藏、不可编辑;也支持把笔记本导出为幻灯片,或在浏览器里通过 WASM 直接运行,无需本地 Python 环境。官方还提供 molab 云服务(类似 Google Colab),可以创建并分享笔记本链接。
快速上手
安装:
pip install marimo
或:
conda install -c conda-forge marimo
需要 SQL 单元格、AI 补全等附加功能时,使用 pip install marimo[recommended]。
结论
marimo 的目标是替代 Jupyter、Streamlit、Jupytext、ipywidgets、Papermill 这一组工具:响应式执行解决隐藏状态,纯 Python 存储带来 git 友好与脚本化执行,内置 SQL 和 AI 能力覆盖数据工作流的关键环节。如果你常被笔记本「代码与输出对不上」困扰,或想把分析结果直接部署成应用,marimo 值得一试——它把一个 JSON 草稿本改成了可复现、可交互、可共享的 Python 程序。