
marimo
marimo team · 程式設計
marimo 是一款免費、開放原始碼的反應式 Python 筆記本,適合想要可重現程式碼、對 Git 友善的檔案,以及可分享應用程式的資料科學家與開發者。

關於 marimo
什麼是 marimo
marimo 是一款開放原始碼的 Python 筆記本,圍繞著一個想法打造:你的程式碼與它的輸出永遠不該互相矛盾。marimo 不去追蹤你執行過哪些儲存格、順序又是什麼,而是在你改動筆記本中任何一處數值時,自動執行相依的儲存格。如此一來,傳統筆記本那種難以信任、更難交接給同事的隱藏狀態就消失了。
它把每個筆記本存成單純的 .py 檔案,版本控制因此和你的其他程式碼一樣運作。同一個檔案可以當指令碼執行、啟動成互動式網頁應用程式,或完全不需要伺服器、透過 WebAssembly 在瀏覽器開啟。另有一個免費的託管選項 molab,讓你直接在線上試用。
問題在哪?反應式執行意味著昂貴的儲存格會隨每次小改動重跑,繁重的工作流程就得小心。你可以把慢速儲存格標記為過期,而不讓它自動執行,但這是一個你得先想到的設定。marimo cloud 仍在封閉測試,這表示想要全託管、不想自己架伺服器的團隊,只能等它開放,或自行建置基礎設施。
開始使用
- 用 pip(
pip install marimo)、uv 或 conda 安裝套件,或跳過安裝,直接在 molab 這個免費線上版開啟筆記本。 - 在終端機執行
marimo edit,啟動編輯器並建立新筆記本。 - 在儲存格裡寫 Python。執行時,marimo 會自動執行所有相依於其變數的儲存格。
- 把滑桿、表格或圖表綁定到 Python 變數來加入互動性,不需要回呼函式。
- 把成果存成
.py檔案,之後當指令碼執行,或在你準備分享時部署成網頁應用程式。
產品資訊
快速了解 marimo 的定價、支援平台與效能。
適合對象
這項工具最適合的使用者、任務與情境。
使用者
- 資料科學家:反應式執行讓分析維持可重現、不必手動重跑,前提是你對 Python 夠熟悉。
- 開發者:`.py` 儲存格式與指令碼執行方式,能融入現有的 Git 工作流程與程式碼審查。
- 教育工作者:互動式小工具讓現場示範與共享儀表板在教學上變得可行。
任務
- 探索資料集並建立圖表:把表格和圖表綁定到變數,看它們一起更新。
- 對資料框架與資料倉儲撰寫 SQL:直接在 Python 筆記本裡查詢資料。
- 把筆記本變成小型內部工具:部署成團隊每個人都能開啟的網頁應用程式。
情境
- 幾個月後重現一次模型訓練,並得到相同的數字。
- 分享互動式報告,讓審閱者拖動滑桿,而不是閱讀靜態輸出。
- 透過 WebAssembly,在瀏覽器裡原型化儀表板,不必架設後端。
主要功能
反應式執行
這正是定義 marimo 的功能。你執行一個儲存格,所有相依於它的儲存格都會重跑,筆記本因此不會陷入那種讓 Jupyter 使用者吃足苦頭的過期、亂序狀態。若某個儲存格代價高昂,你可以要 marimo 把相依儲存格標成過期,而不是重跑它們。結果就是一本輸出永遠與上方程式碼相符的筆記本。
純 Python 檔案儲存
每個 marimo 筆記本都存成 .py 檔案,而不是 JSON。這表示差異檔可讀、合併衝突好處理,你的筆記本也能和專案其餘部分一起待在 Git 裡。你可以把某個筆記本的函式匯入另一個筆記本,讓筆記本變成可重複使用的模組,而不是孤立的文件。
內建互動性
你把介面元素直接綁定到 Python 變數。滑桿不是透過回呼函式接上去的,它只是讀取和寫入一個值,其餘交給 marimo 處理。表格、圖表和表單輸入都以此運作,讓「把分析變成小型應用程式」這件事更省力,而不是更費工。
SQL 支援
marimo 在 Python 之外原生支援 SQL。你可以查詢資料框架、資料庫、資料倉儲與資料湖,不必離開筆記本,並把結果與 Python 工作混用。如果你的分析一半在 pandas、一半在資料倉儲,這確實很方便。
當指令碼或應用程式執行
同一個檔案可以當 Python 指令碼執行、以命令列參數參數化,或部署成互動式網頁應用程式或簡報。沒有另立的匯出步驟,也不必改寫。一個檔案,三種用法。
透過 WebAssembly 在瀏覽器執行
marimo 能透過 WebAssembly 完全在瀏覽器裡執行,不需要伺服器。這降低了把筆記本分享給不想安裝任何東西的人的門檻。免費的 molab 選項也是靠這個,讓你在幾秒內就跑起來。
AI 原生工作流程
marimo 在設計時就考慮到 AI 工具。你可以把筆記本與 Claude Code 這類 AI 程式編寫代理搭配,或使用編輯器內建的 AI 功能,在撰寫時獲得補全與協助。反應式模型在這裡也幫得上忙,因為自動編輯無法留下隱藏的相依關係。
優缺點
優點
- 反應式執行移除了隱藏狀態,輸出永遠與你看到的程式碼相符。
- 把筆記本存成 `.py` 檔案,讓版本控制與程式碼審查變得簡單直接。
- 一個檔案能當指令碼、網頁應用程式或在瀏覽器裡執行,減少了匯出工作。
- 以免費且寬鬆授權的開放原始碼形式提供,功能沒有付費牆。
缺點
- 在大型資料集上,反應式重跑可能變得很貴,逼你得管理哪些儲存格會過期。
- 相較於成熟的 Jupyter 外掛生態,第三方外掛與教學較少。
- marimo cloud 仍在封閉測試,託管服務還不是人人都能用。
常見問題
marimo 是一款反應式 Python 筆記本,用於資料分析、模型訓練與 SQL 查詢。它的對象是想要可重現結果與對 Git 友善檔案的人,而不是傳統筆記本容許的隱藏狀態。
相關內容
探索與 marimo 相關的工具、技能與文章。
marimo 替代方案
DevAlly AI Agent
DevAlly · 程式設計 · 生產力DevAlly AI Agent 是無障礙合規平台,掃描網站產品、找出 WCAG 2.2 AA 違規處、提出程式碼修正,並產出採購單位要的 VPAT 報告。
Databench by Alkera
Alkera (Alkera AI, Inc.) · 程式設計 · 生產力 · 商業Databench by Alkera 是開放原始碼、可自架的資料工作空間,讓資料團隊與 AI 代理在同一處共用筆記本、檔案、對話與運算資源。
Velozity
Velozity Labs Inc · 程式設計 · 生產力 · 商業Velozity 是一個 AI 工作空間,團隊在這裡與 AI 代理對話、把會議變成任務,也能把工作交給在專屬雲端電腦上運作的 AI 隊友。
