🍃 Share notebooks from GitHub!

Badge generator

Announcing our VS Code and Cursor extension

Announcing our VS Code and Cursor extension

Today, we’re excited to release our VS Code/Cursor extension for marimo notebooks. This extension brings a native experience for working with marimo to your favorite editor, a long-requested feature that we’ve worked hard to get right.

Getting started

Installation. Install the extension through the VS Code extensions sidebar (type Cmd/Ctrl-Shift-p to open the command palette, then search for install extension). After opening the sidebar, search for marimo, select the official verified extension, and click install.

This opens an onboarding flow that walks you through the basics of using the extension, as well as the basics of marimo through interactive tutorials.

Commands. The extension ships with several commands to get you up and running with marimo. View all commands by opening VS Code’s command palette and searching for marimo. Here are some key commands.

  • Create: New marimo notebook.
  • marimo: Open tutorial.
  • marimo: Publish Notebook as Gist
  • marimo: Publish Notebook as …

You’ll notice that marimo notebooks are just Python files, saved with a .py extension. When you open a marimo notebook from the file browser, click the marimo logo in the top right of the file viewer to toggle the native notebook view.

View the full list of commands at our documentation.

AI integration. VS Code’s GitHub copilot works out of the box: get inline completions, or use the agent sidebar to add new cells to your notebook.

Managed package environments

Similar to Jupyter notebooks, you can configure the Python virtual environment used for your marimo notebook by choosing the Python interpreter (type Select Python interpreter in the command palette).

Unlike Jupyter, because marimo notebooks are plain Python files, we are also able to provide a modern alternative to manually creating and selecting Python environments. When you run a notebook, you’ll be prompted to choose an environment for it, if you pick the “sandbox” environment, marimo will manage package dependencies on your behalf, with each notebook getting its own isolated, cached environment. Under the hood, this is implemented using uv’s support for PEP 723 metadata.

The combination of sandboxed notebooks and the “Publish as gist” command is especially powerful: it lets you share fully self-contained notebooks (no requirements.txt!) notebooks to the web. With the marimo CLI, anyone else can run these published notebooks locally with a single command:

uvx marimo edit <URL>

Try it with the below command!

uvx marimo edit https://gist.github.com/akshayka/0363f27ff94e52c9d1f3f10b82f28d90

Give us feedback

We welcome feedback! Please leave feedback at our GitHub repository.