この記事は GMOインターネットグループ Advent Calendar 2025 5日目の記事です。
こんにちは!
GMOインターネット株式会社の杉浦巧です。
今回は最近触って感動したmarimoに関して紹介します!
目次
はじめに
Python で分析や可視化をするとき、セルごとに実行できる Notebook 形式は本当に便利ですよね。
みなさんは普段、どの Notebook を使っていますか?
多くの方は Jupyter や Google Colab を使っているのではないでしょうか。
そんな中、最近 “次世代ノートブック” と呼ばれる marimo を触ってみたところ、あまりにも快適で驚きました。
「え、もう Jupyter に戻れない…」と本気で感じるレベルです。
marimoとは何か?
marimo は オープンソースの Python ノートブック で、
従来のノートブックが抱えていた “再現性” や “バージョン管理のしづらさ” を解決することを目的に作られたツールです。
一言でいえば、
「ノートブックの手軽さ」と「ソフトウェアとしての堅牢さ」を両立させた新しい開発体験を提供してくれる存在です。
公式サイトとリポジトリのリンクを以下にまとめておきます。
https://marimo.io/
https://github.com/marimo-team/marimo
marimoのここがすごい!!
セルの依存関係の自動管理
marimo はノートブック全体を「データフローグラフ」として扱い、あるセルを変更すると、そのセルに依存する部分だけが自動で再実行されます。
そのため「どのセルから実行するべきか」「実行順がバグって壊れた」という Notebook 特有の悩みがなくなります。常に一貫した状態を保てるのが大きな魅力です。
リアクティブ性
コードや値を変更すると、グラフやUIが即座に更新されます。
“実行ボタンを押す” という概念がほぼ不要で、リアクティブアプリのような体験が得られます。UIパーツとコードも自動で同期するため、手間なくインタラクティブな分析環境を構築できます。
Gitフレンドリー
marimo のノートブックは .py ファイルとして保存されるため、Git でのバージョン管理が非常にしやすいです。
差分が綺麗に表示され、レビューやマージがスムーズに行えます。従来の Notebook にありがちな「出力混ざり問題」も回避できます。
DBフレンドリー
SQL の実行、データフレーム操作、データベースとの接続が自然に記述できるようになっています。
データ分析〜集計〜可視化までの一連の流れを marimo 上で完結させることができ、データ関連の作業と相性が非常に良いです。
AIネイティブな設計
marimo は AI 活用を前提にした設計になっており、AI の提案によるコード作成、Chat UI の埋め込み、LLM と連動したインタラクティブアプリの構築などが可能です。
Notebook と AI の組み合わせが自然に扱えるのは大きな強みです。
テスト可能性
marimo のノートブックは Python モジュールとして import できるため、pytest などを使ったユニットテストを簡単に書けます。
Notebook を “本番品質” に寄せるための仕組みが初めから用意されている点が特徴的です。
デモ
今回は marimo を立ち上げて BigQuery と連携し、データを可視化するところまでを紹介します。
インストール&起動
Python環境があればpipでインストールするだけで、簡単に利用できます。
pip install marimo
uvやconda環境の方は以下で追加します。
uv add marimo or conda install -c conda-forge marimoインストールが完了したら、marimo_notebook を起動してみます。
自動的に .py ファイルが作成されるので、任意の名前を付けてください。
marimo edit my_notebook.py起動が完了すると、次のように URL が出力されます。
クリックするか、ブラウザにコピーしてアクセスしてください。
(marimo-sample) marimo-sample$ marimo edit my_notebook.py
Edit my_notebook.py in your browser 📝
➜ URL: http://localhost:2718?access_token=q3546u57ektyjrt4u57eiyjリンクに遷移して以下のような画面になっていれば起動成功です。

Agent設定
このままでも利用できますが、今の時代は AI チャットやコード補完が欲しくなりますよね。
marimo でも、設定を行えば Copilot のような補完を使えるようになります。
まず、左側のメニューから 「Chat with AI」 タブを開き、「AI settings」 をクリックします。
次に 「AI Providers」 タブを選択し、利用したい AI の API キー と Base URL を設定してください。

次に AI Models のタブで、利用したいモデルを ON にします。
その後、AI Features タブに戻り、
「CODE COMPLETION」と「AI ASSISTANT」の項目で、先ほど ON にしたモデルを選択します。
「CODE COMPLETION」については、GitHub Copilot を使っている場合は Provider から Copilot を選択してください。
好きなモデルを使いたい場合は custom を選択すれば問題ありません。

設定が終わったら、試しに AI with chat で何かプロンプトを入力してみてください。
問題なく応答が返ってくれば設定完了です。
初回実行時は、必要なライブラリがインストールされていない場合に警告が出ることがあります。
その際は、自分の環境に合わせて Install をクリックしてください。私は uv を使ってインストールしました。
従来は Jupyter でセルを使ってインストールしていましたが、marimo では不足ライブラリをワンクリックで入れられるので、地味に嬉しいポイントです。
これで Chat 機能・Generate 機能・Completion 機能 が使えるようになります。

DB接続
今回は、DB の接続先として BigQuery に接続します。
左メニューの Explore data sources から Add database or catalog をクリックしてください。
次に BigQuery を選択し、project_id、dataset、Credentials JSON を入力します。
余談ですが、これだけ多くの種類のデータベースをサポートしているのは本当にありがたいですね。

Add をクリックすると、対応するコードがセルに自動生成されます。
そのセルを実行すると、DATASOURCES タブに指定したデータセットがマウントされていることを確認できます。
marimo では Python や Markdown に加えて SQL もサポートしているため、セル内で直接 SQL を実行できるのも便利なポイントです。

SQL セルでは、取得するデータソースと出力先の変数名を指定します。
セルを実行すると、指定した変数が自動的に追加されているのを確認できるはずです。
また、クエリ結果については 簡易的な可視化 も自動で行ってくれます。
普段の業務で SQL を中心にデータ加工をしている方は、こちらの方が扱いやすいと感じるかもしれませんね。

可視化
最後に、取得したデータを可視化してみます。
matplotlib を使っても良いのですが、今回は 手軽にインタラクティブな可視化 を行うため、marimo ライブラリを使って描画してみます。
先ほど SQL で取得したデータを、以下のコードで可視化します。
# セル2
start, end = date.value
filtered = df.filter(
(pl.col("record_date") >= start) &
(pl.col("record_date") <= end)
)
mo.ui.altair_chart(
alt.Chart(filtered.to_pandas())
.mark_line()
.encode(x="record_date:T", y="value1:Q")
.properties(height=300, title="value1 の推移(期間変更で自動更新)")
)
実行すると、以下のようなグラフが表示されます。
また、セル 1 で期間を選択すると、下のグラフの表示範囲が自動で更新されます。
このように UI コンポーネントを簡単に設置できる のも、marimo の大きな強みです。

まとめ
今回は簡単なデモでしたが、使いこなせば BI ツールやアプリケーションとしてデプロイすることも可能です。特に、組織的にデータ分析を行っている環境では、コードで管理できる点などが刺さるポイントだと思います。
一方で、まだ動作が安定しない部分があるのも事実で、大規模に組織導入するには不安定なところも残っています。
marimo は「Notebook の便利さ」と「ソフトウェアとしての堅牢さ」を両立させた、これまでにない開発体験を提供するツールです。セルの依存関係は自動管理され、リアクティブに動作し、Git・データベース・AI とも自然に連携できます。テストや再利用も容易で、Notebook を使い捨てではなく“育てられる資産”へと変えてくれます。
Jupyter や Colab を普段使っている方ほど、「ノートブックでもここまでできるのか」という違いを強く感じるはずです。
新しい選択肢として、一度触ってみていただければと思います。
ブログの著者欄
採用情報
関連記事
KEYWORD
CATEGORY
-
技術情報(525)
-
イベント(197)
-
カルチャー(54)
-
デザイン(51)
TAG
- "eVTOL"
- "Japan Drone"
- "ロボティクス"
- "空飛ぶクルマ"
- 5G
- Adam byGMO
- AdventCalender
- AGI
- AI
- AI人財
- APT攻撃
- AWX
- BIT VALLEY
- Blade
- blockchain
- Canva
- ChatGPT
- ChatGPT Team
- Claude Team
- cloudflare
- cloudnative
- CloudStack
- CM
- CNDO
- CNDT
- CODEBLUE
- CODEGYM Academy
- ConoHa
- ConoHa、Dify
- CS
- CSS
- CTF
- DC
- design
- Designship
- Desiner
- DeveloperExper
- DeveloperExpert
- DevRel
- DevSecOpsThon
- DiceCTF
- Dify
- DNS
- Docker
- DTF
- Excel
- Expert
- Experts
- Felo
- GitLab
- GMO AIR
- GMO AIロボティクス大会議&表彰式
- GMO DESIGN AWARD
- GMO Developers Day
- GMO Developers Night
- GMO Developers ブログ
- GMO Flatt Security
- GMO GPUクラウド
- GMO Hacking Night
- GMO kitaQ
- GMO SONIC
- GMOアドパートナーズ
- GMOアドマーケティング
- GMOイエラエ
- GMOインターネット
- GMOインターネットグループ
- GMOクラウド]
- GMOグローバルサイン
- GMOサイバーセキュリティbyイエラエ
- GMOサイバーセキュリティ大会議
- GMOサイバーセキュリティ大会議&表彰式
- GMOソリューションパートナー
- GMOデジキッズ
- GMOブランドセキュリティ
- GMOペイメントゲートウェイ
- GMOペパボ
- GMOメディア
- GMOリサーチ
- GMO大会議
- Go
- GPU
- GPUクラウド
- GTB
- Hardning
- Harvester
- HCI
- iOS
- IoT
- ISUCON
- JapanDrone
- Java
- JJUG
- K8s
- Kaigi on Rails
- Kids VALLEY
- KidsVALLEY
- Linux
- LLM
- MCP
- MetaMask
- MySQL
- NFT
- NVIDIA
- NW構成図
- NW設定
- Ollama
- OpenStack
- Perl
- perplexity
- PHP
- PHPcon
- PHPerKaigi
- PHPカンファレンス
- Python
- QUIC
- Rancher
- RPA
- Ruby
- Selenium
- Slack
- Slack活用
- Spectrum Tokyo Meetup
- splunk
- SRE
- sshd
- SSL
- Terraform
- TLS
- TypeScript
- UI/UX
- vibe
- VLAN
- VS Code
- Webアプリケーション
- WEBディレクター
- XSS
- アドベントカレンダー
- イベントレポート
- インターンシップ
- インハウス
- オブジェクト指向
- オンボーディング
- お名前.com
- カルチャー
- クリエイター
- クリエイティブ
- コーディング
- コンテナ
- サイバーセキュリティ
- システム研修
- スクラム
- スペシャリスト
- セキュリティ
- ソフトウェアテスト
- チームビルディング
- デザイン
- ドローン
- ネットのセキュリティもGMO
- ネットワーク
- ビジネス職
- ヒューマノイド
- ヒューマノイドロボット
- プログラミング教育
- ブロックチェーン
- ベイズ統計学
- マルチプレイ
- ミドルウェア
- モバイル
- ゆめみらいワーク
- リモートワーク
- レンタルサーバー
- ロボット
- 京大ミートアップ
- 人材派遣
- 出展レポート
- 動画
- 協賛レポート
- 基礎
- 多拠点開発
- 大学授業
- 宮崎オフィス
- 展示会
- 広告
- 形
- 応用
- 情報伝達
- 技育プロジェクト
- 技術広報
- 技術書典
- 採用
- 採用サイトリニューアル
- 採用活動
- 新卒
- 新卒研修
- 日本科学未来館
- 映像
- 映像クリエイター
- 暗号
- 業務効率化
- 業務時間削減
- 機械学習
- 決済
- 物理暗号
- 生成AI
- 色
- 視覚暗号
- 開発生産性
- 開発生産性向上
- 階層ベイズ
- 高機能暗号
PICKUP