1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GitHub】GitHub Copilot in marimo

Last updated at Posted at 2025-12-13

この記事のマリモ

  • 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

翻訳:

marimoを使ってデータの変換、モデルのトレーニング、SQLクエリの実行を行いましょう。AIネイティブでリアクティブなノートブックのように感じられ、Gitに適した再現可能なPythonとして保存されます。スクリプトやアプリとしてシームレスに実行できます。すべてオープンソースです。

実際どんなものかというとnotebookとほぼ遜色はないです。
とはいってもmarimoの気持ちにならないとどういうものかわからないので、実際に使ってみましょう。

さっそく使ってみよう

おおまかな流れは以下の通りです。

  • 環境構築
  • ノートブックを作成
  • ノートブックでコードを実行
  • GitHub Copilotとの連携

環境はGitHub Codespacesを使います。

Open in 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で立ち上がりました。

marimo-1.png

Create new Notebookをクリックして新しいノートブックを作成します。

marimo-2.png

ノートブックでコードを実行

ノートブックが作成できたら、コードを実行してみましょう。
今回はいつものHellom Worldを表示したあと、追加でPolarsを使って簡単なデータフレームを作成してみます。

# Hello Worldの表示`
print("Hello World")

実行結果

marimo-3.png

次にPolarsを使ってデータフレームを作成してみます。
まずはPolarsをインポートするのですが、このmarimoはとても優秀でmarimoにはUI付きのパッケージマネージャーがあります。

UIからインストールするため、Manage Packagesをクリックします。

marimo-4.png

以下のようにバージョン一覧と検索窓が表示されます。

marimo-5.png

polarsと入力してAddを実行します。

marimo-6.png

インストールが完了したらセルを追加します。セルを追加するには+をクリックします。

marimo-7.png

以下のコードを実行します。

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

実行結果は以下の通りです。

marimo-8.png

GitHub Copilotとの連携

とりあえずここまででmarimoの基本的な使い方はわかりました。かなり便利だと思ったところでやっぱコーディングエージェントが欲しいと思いますよね。
ということでGitHub Copilotと連携してみましょう。

トークン発行

まずはGitHub Copilotのトークンを発行するためにGitHub CLIを使います。以下のコマンドを実行してください。

gh auth token

戻ってきたトークンをコピーしておきます。

GitHub Copilotをセットアップ

左側のメニューにロボットアイコンから設定します。Edit AI Settingsをクリックします。

marimo-9.png

AIからAI Providersタブを選択します。

marimo-10.png

API keyに先ほどコピーしたトークンを貼り付けます。

marimo-11.png

AI Featuresタブに移動して、Providerをcustomに変更し、Modelをgpt-5にセットします。

marimo-12.png

コード生成してみる

では実際にコード生成を試してみましょう。新しいセルを追加してGenerateをクリックします。

指示はHello, Worldを書いてくださいとします。

marimo-13.png

しばらくすると以下のようにコードが生成されます。

print("Hello, World")

AcceptRejectかを選択できます。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を使っているので実行時にエラーが出力されます。

marimo-14.png

エラーを解消するために、pldfの定義を修正します。

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を積極的に採用してみようと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?