marimo-team/marimo
marimo-team/marimo has 23,468 GitHub stars and 1,376 forks. GitHot measured +6 stars in 24 hours. Last checked 2026-11-08 06:13 UTC. Last push 2026-11-03.
面向 Python 的响应式笔记本——可运行可复现实验、使用 SQL 查询、作为脚本执行、部署为应用,并通过 git 进行版本管理。以纯 Python 代码存储。全部集成在现代化的 AI 原生编辑器中。
实测星标增长
- 24小时
- +6
- 7天
- 正在收集历史
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README_Chinese.md
原文
这是一款响应式的Python笔记本,具有优秀的可复现性,原生支持Git,并可作为脚本或应用程序部署。
用户手册 · Discord 社区 · 示例 · 展示廊 · YouTube
English | 繁體中文 | 简体中文 | 日本語 | Español
Marimo 是一款响应式 Python 笔记本:运行单元格可与 UI 元素交互,marimo 会自动更新依赖于它的单元格(或将其标记为过时单元格),从而保持代码和输出的一致性。marimo 笔记本以纯 Python 格式存储,可作为脚本执行,也可作为应用程序部署。
为什么选择 marimo
- 🚀 功能齐全:替代
jupyter、streamlit、jupytext、ipywidgets、papermill等更多工具 - ⚡️ 响应式:运行一个单元格,marimo会响应式地运行所有依赖单元格或将它们标记为过时
- 🖐️ 交互性:绑定滑块、表格、图表等UI元素到Python代码——无需回调函数
- 🐍 支持Git版本控制:笔记本以
.py文件格式存储 - 🛢️ 为数据设计:使用SQL查询数据框和数据库,过滤和搜索数据框
- 🤖 AI原生:与AI agent结对(如Claude Code),或使用编辑器的内置AI功能
- 🔬 可复现:无隐藏状态,确定性执行,内置包管理
- 🏃 可执行:作为Python脚本执行,通过命令行参数进行配置
- 🛜 可分享:部署为交互式Web应用或幻灯片,通过WASM在浏览器中运行
- 🧩 可复用: 可从一个笔记本导入函数和类到另一个笔记本
- 🧪 便于测试: 可在笔记本上运行 pytest
- ⌨️ 现代编辑器:GitHub Copilot、AI助手、vim快捷键、变量浏览器和更多功能
- 🧑💻 使用你喜爱的编辑器:在 VS Code 或 Cursor 或 PyCharm 中运行,或在 neovim、Zed 或任何其他文本编辑器中编辑
pip install marimo && marimo tutorial intro
在我们的在线体验平台试用marimo,完全在浏览器中运行!
跳转到快速入门了解我们的命令行工具。
响应式编程环境
Marimo 确保了您的代码、输出和程序的状态始的一致性,解决了与 Jupyter 等传统笔记本相关的许多问题。
独有的响应式设计 运行一个单元格,marimo 就会自动运行引用其变量的单元格,从而避免了手动重新运行单元格这一容易出错的工作。删除单元格,marimo 会从程序内存中删除其变量,消除隐藏状态。
兼容计算密集型笔记本。marimo允许您将运行时配置为延迟模式,将受影响的单元格标记为过时而不是自动运行它们。这既能保证程序状态的完整性,又能防止意外执行计算密集型单元格。
同步的UI元素。与UI元素如滑块、下拉菜单、数据框转换器和聊天界面交互时,使用它们的单元格会自动以最新值重新运行。

交互式数据框。分页浏览、搜索、过滤和排序数百万行数据,极速运行,无需编写代码。

高效运行时。marimo通过静态分析代码,只运行需要运行的单元格。
动态Markdown和SQL。使用Markdown创建依赖Python数据的动态文档。或者构建依赖Python值的SQL查询,并针对数据框、数据库、CSV、Google Sheets或其他数据源执行,使用我们内置的SQL引擎将结果作为Python数据框返回。

即使使用了Markdown或SQL,您的笔记本仍然是纯Python代码。
确定性执行顺序。笔记本按照基于变量引用而非单元格页面位置的确定性顺序执行。您可以根据想要讲述的故事组织笔记本。
内置包管理。marimo内置支持所有主要的包管理器,允许您在导入时安装包。marimo甚至可以序列化包依赖到笔记本文件中,并在隔离的venv沙箱中自动安装它们。
功能齐全。marimo集成了GitHub Copilot、AI助手、Ruff代码格式化、HTML导出、快速代码补全、VS Code扩展、PyCharm扩展、交互式数据框查看器和更多便捷功能。
快速起步
安装 在终端运行以下代码:
pip install marimo # or conda install -c conda-forge marimo
marimo tutorial intro
要安装包含额外依赖项的版本(启用SQL单元格、AI补全等功能),运行:
pip install marimo[recommended]
创建新的笔记本
使用以下命令创建或编辑笔记本
marimo edit
运行应用 将笔记本作为Web应用运行,隐藏并锁定Python代码:
marimo run your_notebook.py

作为脚本执行 在命令行中将笔记本作为脚本执行:
python your_notebook.py
自动转换已有的 Jupyter 笔记本 通过命令行将 Jupyter 笔记本自动转换为 marimo 格式的笔记本
marimo convert your_notebook.ipynb > your_notebook.py
对此,我们也有在线工具可供使用。
教程 列出所有的可用教程:
marimo tutorial --help
如果你有一些问题?
请参阅我们文档中的FAQ部分。
更多信息
Marimo 很容易上手,为高级用户提供了很大的空间。 例如,这是一个用 marimo 制作的 embedding 可视化工具 (示例视频):
|
|
|
|
| 教程 | 输入控件 | 绘图 | 布局 |
|
|
|
|
|
贡献
我们感谢所有人的贡献! 这是为所有人设计的工具,我们真挚的欢迎任何人的任何意见! 请参阅CONTRIBUTING.md 获取更多信息,了解如何参与到这个项目中来。
有问题?请在Discord上联系我们。
社区
我们也正在建设 marimo 社区,来和我们一起玩吧!
- 🌟 在GitHub上为我们点赞
- 💬 在Discord上与我们交流
- 📧 订阅我们的通讯
- ☁️ 加入我们的云服务候补名单
- ✏️ 在GitHub上开始讨论
- 🦋 在Bluesky上关注我们
- 🐦 在Twitter上关注我们
- 🎥 在YouTube上订阅
- 🕴️ 在LinkedIn上关注我们
愿景 ✨
marimo 是对 Python 笔记本的重塑,它是一个可复制、可交互、可共享的 Python 程序,而不是容易出错的 JSON 便笺。
我们相信,我们使用的工具会影响我们的思维方式--更好的工具,造就更好的思维。我们希望通过 marimo 为 Python 社区提供一个更好的编程环境,以便进行研究和交流;进行代码实验和分享;学习计算科学和教授计算科学。
我们的灵感来自于很多已有的项目, 特别是 Pluto.jl, ObservableHQ,和 Bret Victor's essays。 marimo 是向响应式数据流编程迈进的一大步。从 IPyflow,streamlit, TensorFlow, PyTorch, JAX,到 React,函数式、声明式和响应式编程的理念正在改善一系列工具。
探索相关项目
Asabeneh/30-Days-Of-Python
30 Days of Python 编程挑战是一份循序渐进的指南,用于在 30 天内学习 Python 编程语言。这项挑战可能需要超过 100 天。请按自己的节奏进行。这些视频或许也有帮助:https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,370 星标grafana/grafana
开放且可组合的可观测性与数据可视化平台。可对来自 Prometheus、Loki、Elasticsearch、InfluxDB、Postgres 等众多数据源的指标、日志和追踪进行可视化。
77,752 星标redis/redis
对于正在构建实时数据驱动应用的开发者而言,Redis 是首选、速度最快且功能最丰富的缓存、数据结构服务器和文档与向量查询引擎。
77,288 星标apache/superset
Apache Superset 是一个数据可视化与数据探索平台
75,448 星标