この記事のマリモ
- marimoについて説明しているmarimo
- marimoとGitHub Copilotの連携方法を紹介しているmarimo
- marimoの良さについて伝えているmarimo
マリモに(はじめに)
この記事ではGitHub Copilotと次世代のNotebook、marimoを組み合わせた新しい時代の分析体験について紹介します。
なお、marimoとGitHub Copilotの連携機能については以下の公式ドキュメントをご覧ください。
AI-assisted coding - marimo GitHub Copilot
今回はGitHub Codespaces上でmarimoとGitHub Copilotを使ってみました。
マリモ
marimoは未来のPython Notebookと呼ばれています。公式サイトでは以下のように説明されています。
Transform data, train models, and run SQL queries with marimo — feels like an AI-native reactive notebook, stored as Git-friendly reproducible Python. Seamlessly run as scripts and apps. All open source.
翻訳:
marimoを使ってデータの変換、モデルのトレーニング、SQLクエリの実行を行いましょう。AIネイティブでリアクティブなノートブックのように感じられ、Gitに適した再現可能なPythonとして保存されます。スクリプトやアプリとしてシームレスに実行できます。すべてオープンソースです。
実際どんなものかというとnotebookとほぼ遜色はないです。
とはいってもmarimoの気持ちにならないとどういうものかわからないので、実際に使ってみましょう。
さっそく使ってみよう
おおまかな流れは以下の通りです。
- 環境構築
- ノートブックを作成
- ノートブックでコードを実行
- GitHub Copilotとの連携
環境はGitHub Codespacesを使います。
環境構築
今回はuvを使います。
curl -LsSf https://astral.sh/uv/install.sh | sh
インストールできたらバージョンを確認します。
uv --version
# uv 0.9.17
仮想環境を作成します。
uv venv .venv
仮想環境をアクティベートします。
source .venv/bin/activate
バージョンを確認します。
python --version
# Python 3.12.1
次にmarimoのインストールです。recommendedをつけてインストールします。
uv pip install marimo[recommended]
これで準備完了です。
ノートブックを作成
まずはmarimoを起動します。起動するにはeditサブコマンドを使います。
marimo edit
するとブラウザが立ち上がり、marimoの画面が表示されます。
※今回はターミナルにCreate or edit notebooks in your browserと表示され、localhost:2718で立ち上がりました。
Create new Notebookをクリックして新しいノートブックを作成します。
ノートブックでコードを実行
ノートブックが作成できたら、コードを実行してみましょう。
今回はいつものHellom Worldを表示したあと、追加でPolarsを使って簡単なデータフレームを作成してみます。
# Hello Worldの表示`
print("Hello World")
実行結果
次にPolarsを使ってデータフレームを作成してみます。
まずはPolarsをインポートするのですが、このmarimoはとても優秀でmarimoにはUI付きのパッケージマネージャーがあります。
UIからインストールするため、Manage Packagesをクリックします。
以下のようにバージョン一覧と検索窓が表示されます。
polarsと入力してAddを実行します。
インストールが完了したらセルを追加します。セルを追加するには+をクリックします。
以下のコードを実行します。
import polars as pl
import datetime as dt
df = pl.DataFrame(
{
"name": ["Alice Archer", "Ben Brown", "Chloe Cooper", "Daniel Donovan"],
"birthdate": [
dt.date(1997, 1, 10),
dt.date(1985, 2, 15),
dt.date(1983, 3, 22),
dt.date(1981, 4, 30),
],
"weight": [57.9, 72.5, 53.6, 83.1], # (kg)
"height": [1.56, 1.77, 1.65, 1.75], # (m)
}
)
print(df)
コードの引用元:Getting started - Polars user guide
実行結果は以下の通りです。
GitHub Copilotとの連携
とりあえずここまででmarimoの基本的な使い方はわかりました。かなり便利だと思ったところでやっぱコーディングエージェントが欲しいと思いますよね。
ということでGitHub Copilotと連携してみましょう。
トークン発行
まずはGitHub Copilotのトークンを発行するためにGitHub CLIを使います。以下のコマンドを実行してください。
gh auth token
戻ってきたトークンをコピーしておきます。
GitHub Copilotをセットアップ
左側のメニューにロボットアイコンから設定します。Edit AI Settingsをクリックします。
AIからAI Providersタブを選択します。
API keyに先ほどコピーしたトークンを貼り付けます。
AI Featuresタブに移動して、Providerをcustomに変更し、Modelをgpt-5にセットします。
コード生成してみる
では実際にコード生成を試してみましょう。新しいセルを追加してGenerateをクリックします。
指示はHello, Worldを書いてくださいとします。
しばらくすると以下のようにコードが生成されます。
print("Hello, World")
AcceptかRejectかを選択できます。Acceptをクリックします。
インラインサジェスチョン
次にインラインサジェスチョンを試してみます。
新しいセルを追加して、# Polarsを使ってデータフレームを作成してくださいとコメントを書きます。
すると以下のようにインラインサジェスチョンが表示されます。
※実行に少しだけ時間がかかります。また、同じものが出てくるとは限りません。
# # Polarsを使ってデータフレームを作成してください
import polars as pl
def create_df() -> pl.DataFrame:
data = {
"id": [1, 2, 3],
"name": ["Alice", "Bob", "Charlie"],
"score": [88.5, 92.0, 79.5],
"passed": [True, True, False],
}
return pl.DataFrame(data)
if __name__ == "__main__":
df = create_df()
print(df)
また、importでpl、変数にdfを使っているので実行時にエラーが出力されます。
エラーを解消するために、plとdfの定義を修正します。
import polars as pl2
def create_df() -> pl2.DataFrame:
data = {
"id": [1, 2, 3],
"name": ["Alice", "Bob", "Charlie"],
"score": [88.5, 92.0, 79.5],
"passed": [True, True, False],
}
return pl2.DataFrame(data)
if __name__ == "__main__":
df2 = create_df()
print(df2)
これでGitHub Copilotを使ったコード生成についての紹介は以上です。
まとめ
今回は全く使ったことがないmarimoとpolarsをGitHub Copilotで使ってみました。
少しだけ生成に時間がかかるのが気になりましたが
コード生成の精度は非常に高く、marimoと組み合わせることでより効率的なコーディングが可能になると感じました。
また、pipを基盤にしたUI型のパッケージマネージャーも非常に便利で簡単にインストールできる点やさまざまなAIと連携できる点はとても魅力的です。次にNotebookを使うときはmarimoを積極的に採用してみようと思います。













