ノートブックしたい(marimo)
$ pip install marimo
$ poetry add marimo --group dev
$ uv pip install marimo
$ uv tool install marimo
$ uv add marimo --dev
チュートリアルしたい(marimo tutorial)
$ marimo tutorial intro
$ marimo tutorial dataflow
$ marimo tutorial ui
$ marimo tutorial --help
marimo tutorialコマンドでノートブックの使い方を体験できます。
ローカルサーバーが起動し、ブラウザーが自動で立ち上がります。
intro | dataflow | ui | markdown | plots | sql | layout | fileformat | markdown-format | for-jupyter-usersのトピックごとのサブコマンドがあります。
この順番で確認するのが公式でオススメされています。
Jupyter Notebookを使ったことがある場合はfor-jupyter-usersから確認してもいいかもしれません。
編集したい(marimo edit)
$ marimo edit notebook.py
marimo editコマンドでノートブックを編集できます。
引数なしで実行するとMarimoのスタート画面が起動します。
実行したい(marimo run)
$ marimo run notebook.py
$ marimo run --sandbox notebook.py
marimo runコマンドでノートブックを実行できます。
--sandboxオプションで、uvで隔離した環境で実行できます。
新規作成したい(marimo new)
$ marimo new
$ marimo new "prompt text"
$ marimo new prompt.txt
marimo newコマンドで新しいノートブックを作成できます。
引数を指定しない場合は、空のノートブックが立ち上がります。
プロンプト文字列もしくはファイルを指定すると、Marimo AIがノートブックをプロトタイプしてくれます。
参考
ヘルプにあったプロンプトを実際に入力してみました。
$ uvx marimo new "Plot an interactive 3D surface with matplotlib."
Before using marimo's Text-To-Notebook AI feature, you should know:
1. Your prompt will be sent to marimo's API at `https://ai.marimo.app/`
2. The API uses OpenAI/Anthropic's models to convert your prompt into a notebook
3. Your prompt is securely stored for caching purposes (fast response times)
4. No personal data beyond the prompt itself is collected
5. You can revoke consent at any time by modifying ~/.marimo/state.toml
Do you accept these terms? (y/n)
利用条件に同意すると、
numpyやmatplotlibなどをインポートするノートブックが作成されました。
この段階ではファイルは/var/folders/の中に一時的な名前になっていますが、
Cmd + Sで任意のパスに保存できます。
最初のセルを実行するとModuleNotFoundErrorが発生しましたが
ノートブック上に表示されたMissing packagesダイアログにしたがうだけで
スムーズにuvを使ってインストールできました。
移行したい(marimo convert)
$ marimo convert notebook.ipynb --output marimo.py
$ marimo convert notebook.md --output marimo.py
$ marimo convert notebook.py --output marimo.py
marimo convertコマンドで、既存のJupyter NotebookをMarimo Notebookに変換できます。
入力にしていできるファイル形式は
ノートブック形式(.ipynb)、
Markdown形式(.md)、
スクリプト形式(.py)がサポートされています。
--outputオプションで、出力ファイル名を指定できます。
指定がない場合は標準出力(stdout)に変換した結果が表示されます。
注釈
Jupyter Notebook -> Marimo Notebookへの一方向変換コマンドです。
配布したい(marimo export)
$ marimo export html marimo_nb.py
$ marimo export html-wasm marimo_nb.py
$ marimo export ipynb marimo_nb.py
$ marimo export md marimo_nb.py
$ marimo export script marimo_nb.py
marimo exportコマンドでMarimoノートブックを配布できる形式に変換できます。
配布形式はexportのサブコマンドとして用意されてます。
注釈
既存のMarimo Notebookに対して、配布できる形式のスナップショットを作成するコマンドのようです。
convertの逆操作ではないようです(要確認)。
チェックしたい(marimo check)
$ marimo check .
$ marimo check marimo_nb.py --fix
marimo checkコマンドでMarimo Notebookの構文チェックができます。
--fixオプションで自動修正できます。
--strictオプションでwarningもerrorとみなし厳格チェックできます。
CIなどで使う際に有効かもしれません。
Marimo or Jupyter
Marimo NotebookとJupyter Notebookは解析のフェーズに合わせて 使い分けるのがよさそうです。
解析の方向性を模索している段階では、セルの実行順序に依存しないJupyter Notebookのほうが思いつくままに試行錯誤できてよさそうです (この段階ではソースコードもGit管理しなくてもいいかも)。
ある程度、方向性が固まってきて、データセットを変更しながら反復処理するような段階でMarimo Notebookに移行して、ソースコードを管理しながら解析を進めるのがよさそうです。