Skip to content

πŸ“¦ Support Marimo SandboxesΒ #37

Description

@echarles

πŸ“¦ Support Marimo Sandboxes

The client API remains the Jupyter protocol as implemented in jupyter-kernel-client.

Done

  • Marimo sandbox: Marimo's reactive cell graph in a Jupyter kernelΒ #35 β€” the marimo variant (released as 1.9.38 on main): a JupyterServerSandbox whose kernel holds Marimo's dataflow graph (marimo._ast.compiler + marimo._runtime.dataflow), installed by one execute request and asked through others, answering on stdout. run_cell(cell_id, code) registers, runs, then re-runs the dependents in dependency order; register_cell, remove_cell, plan, graph, cells. The same helper source is carried verbatim by @datalayer/jupyter-react for the reactive Notebook, Cell and Output components (jupyter-ui#502).

Done

  • Marimo reactivity through the Jupyter-shaped API (1.9.39)Β #38 β€” reactivity through the Jupyter-shaped API (1.9.39): run_code names its cell through the execution context and answers cell_id and typed reactions (each with its own result); CodeSandboxClient.execute / execute_code / execute_code_streaming take cell_id, replies carry the reactions under marimo with their own Jupyter-shaped outputs, execute_interactive tags every hook message with its cell, streams tag every event, and the graph is reachable through the client. Nothing changes on the wire, so jupyter-kernel-client stays the client API and a consumer that only reads replies and streams β€” the Datalayer MCP server's execute_code, for one β€” sees every cell that changed.

Next

  • The Datalayer MCP server gains a marimo toolset (marimo_* tools: run a cell, run code, plan, graph, remove a cell) on top of 1.9.39, so an agent connected over MCP drives a reactive notebook with cell identity.

2026-09-26

  • code-sandboxes 1.9.39 is released (tag β†’ PyPI): Reaction/cell_id on results, marimo in Jupyter-shaped replies, stream tags, and MarimoCells, the driver over any client.
  • The Datalayer MCP Server now offers a marimo toolset (/mcp?marimo, image 0.0.34, services #545): marimo_run_cell, marimo_run_code, marimo_plan, marimo_graph, marimo_remove_cell over MarimoCells on the sandbox the session already holds. Drilled on the live gateway: a named cell re-ran its dependent, which printed the new value.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions