はじめに
さん、お誕生日 357日目 おめでとうございます! nikkieです。
Agent Client Protocol を知って世界が広がった例です。
目次
marimo as ACP Client
Jupyter への別の選択肢として登場してきた marimo。
いいぞの評が広まってきているように見受けられます。
- 【使ってみた】次世代Pythonノートブック「marimo」がJupyterの悩みを解決するかも?|カレーちゃん
- Pythonのリアクティブノートmarimoの誕生秘話 #こまPy|Atsushi Shibata
- もうJupyterに戻れない。次世代Notebook“marimo”を使ったら革命だった / 開発者向けブログ・イベント | GMO Developers
そんな marimo ですが、なんと Agent Client Protocol を実験的にサポートしています。
https://agentclientprotocol.com/get-started/clients に記載もあります
公式動画がこちら。
marimo を Client とし、Agent は opencode。
LLM は Ollama でローカル LLM を動かしています
ドキュメントはこちら
Gemini CLI を Agent として marimo Client に接続
ドキュメントの Gemini CLI の例に取り組みました。
https://docs.marimo.io/guides/editor_features/agents/#gemini-agent
uvx marimo edit --sandbox --watch hello.pyで一時的な仮想環境で起動しています(marimo 0.20.4)
実験的機能の有効化
少し準備が必要です。
https://docs.marimo.io/guides/editor_features/agents/#connecting-to-an-agent
Enable the feature flag: Enable the feature flag under the "Lab" section in the settings menu
右上の歯車マーク > User Settings > Lab から「External Agents」を有効にします


marimo を一度落として再び起動すると、以下が表示され有効になったことが分かります。
🧪 Experimental features (use with caution): external_agents
Gemini CLI がコーディング
上記の設定がされていると「Chat & Agents」から「AGENTS」タブが選べるようになります。
(動画では有効化について説明されていたかが曖昧だったように思われます)

marimo で UI 操作して、Gemini CLI の起動コマンドを marimo のターミナルに入力。

私は Vertex AI に向けている1都合上、少し変えました。
% npx stdio-to-ws "vgemini --experimental-acp --model gemini-3.1-pro-preview" --port 3019
stdio-to-ws は marimo チームが開発したようです。
https://github.com/marimo-team/stdio-to-ws
これで connect できたので、さああとはコーディングです!
Pythonでエラトステネスの篩を実装して
途中でファイルの編集許可を求められました。

感動したのは、marimo の cell が追加される点2!
コーディングエージェントを CLI で使っているときとは異なる、新鮮な体験でした。
プロンプトに marimo での記載ルールが入っている3ようですね(いわば marimo Skill 的な知識の注入)
cell を実行していってエラトステネスの篩は動きました🙌
(ただちょっと Gemini CLI の応答速度がもっさりしていると感じるかもしれません)

終わりに
marimo を ACP Client として、Agent の Gemini CLI に marimo の記法でコーディングさせられました!
cell が書かれるのがすごいと思います(marimo の記法に沿ったコード生成 + Web UI での描画)。
いまは実験的とのことですが、非常に可能性を感じました
直接 cell が書かれるのを体験すると、コーディングのようなユースケースはチャットの往復だけだと UI としては厳しいんだなと感じます。
marimo という Client の例から ACP はそこに対処できる可能性がありますね。
またコーディングの外に目を向ければ、AG-UI4 や MCP Apps といった技術もチャットという UI を超えるという背景は共通しているのかもしれないですね
-
vgeminiのヒミツはこちら ↩ - gemini-3.1-flash-lite-preview は篩を実装できましたが、marimo 向けの Python が書けませんでした↩
- 実装はこちら? https://github.com/marimo-team/marimo/blob/0.20.4/frontend/src/components/chat/acp/prompt.ts↩
- ↩