Skip to content
| Marketplace
Sign in
Visual Studio Code>Data Science>marimoNew to Visual Studio Code? Get it now.
marimo

marimo

marimo.io

marimo.io
|
63,682 installs
| (5) | Free
A marimo notebook extension for VS Code.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

marimo

A VS Code extension for marimo, a reactive Python notebook that's reproducible, git-friendly, and deployable as scripts or apps.

Features

  • 📓 Create, edit, and share marimo notebooks in VS Code
  • ✨ Rich output rendering with interactive UI elements
  • 📦 Integrated package and environment management
  • 🔍 Variables explorer and datasources panel

Getting Started

  1. Install this extension from the VS Code Marketplace
  2. Open a marimo notebook (.py file), or create a new one:
    • Press Cmd+Shift+P (macOS) or Ctrl+Shift+P (Windows/Linux)
    • Run "Create: Marimo notebook"
  3. VS Code will prompt you to open the file as a marimo notebook

If you have an existing Python file that's a marimo notebook, you'll see an icon in the editor title bar to open it as a notebook (see image above).

Commands

Command Description
marimo: New marimo notebook Create a new marimo notebook
marimo: Open as marimo notebook Open a Python file as a marimo notebook
marimo: Show notebook menu Configure reactivity and exports, create a setup cell, or publish
marimo: Run stale cells Execute all cells that need to be re-run
marimo: Restart notebook kernel Restart the notebook's Python kernel
marimo: Create setup cell Create or navigate to an existing setup cell
marimo: Publish notebook... Share your notebook as a GitHub Gist
marimo: Export static HTML Export notebook with current outputs as HTML (without re-executing cells)
marimo: Set Python interpreter to match notebook kernel Set the active Python interpreter to match the notebook's kernel
marimo: Restart marimo language server (marimo-lsp) Restart the LSP server if it becomes unresponsive
marimo: Report an issue or suggest a feature Open GitHub to report bugs or request features
marimo: Show diagnostics Display diagnostic information for troubleshooting

Configuration

Setting Type Default Description
marimo.lsp.server string wasm Language-server runtime: bundled wasm, uv-managed python, or custom. This does not change the interpreter used by notebook kernels.
marimo.lsp.path array [] Command and arguments used when marimo.lsp.server is custom, e.g., ["/path/to/marimo-lsp"].
marimo.uv.path string Path to the uv binary, e.g., /Users/me/.local/bin/uv. Leave empty to use uv from the system PATH.
marimo.ruff.path string Path to a custom ruff binary, e.g., /usr/local/bin/ruff. Useful for offline environments. Leave empty to auto-discover or install via uv.
marimo.ty.path string Path to a custom ty binary, e.g., /usr/local/bin/ty. Useful for offline environments. Leave empty to auto-discover or install via uv.
marimo.disableUvIntegration boolean false Disable uv integration features such as automatic package installation prompts.
marimo.disableManagedLanguageFeatures boolean false Disable marimo's managed Python language features (completions, diagnostics, formatting). When enabled, notebook cells use the standard python language ID and rely on external language servers.
marimo.telemetry boolean true Anonymous usage data. This helps us prioritize features for the marimo VSCode extension.
marimo.notebookFileRoot string ${fileDirname} Initial working directory for locally launched kernels. Supports the notebook directory, workspace folder, home-relative, absolute, and workspace-relative paths. Requires a kernel restart.

By default, the WASM language server loads entirely from artifacts bundled with the extension and does not download Python packages at runtime. Set marimo.lsp.server to python to use the bundled server through a uv-managed CPython environment, or to custom with marimo.lsp.path to run another command. Notebook kernels still run in the selected Python environment: opening and executing a notebook launches that interpreter and runs the notebook's code locally.

marimo.notebookFileRoot controls process-relative behavior such as Path.cwd(), file access, and subprocesses. For paths that must remain portable across VS Code, CLI execution, exports, and deployment, prefer mo.notebook_dir().

Language Features

By default, marimo provides managed Python language features (completions, diagnostics, formatting) for notebook cells using a dedicated language server. This prevents conflicts with external Python language servers and ensures a consistent editing experience.

Why managed mode? Notebook cells use a custom language ID (mo-python) to isolate them from external language servers like Pylance or Jedi. This prevents duplicate completions, conflicting diagnostics, and other interference while editing marimo notebooks.

When to disable managed mode: If you prefer to use your own Python language server configuration (e.g., Pylance, pyright, or another LSP), enable marimo.notebook.disableManagedLanguageFeatures. This switches cells to use the standard python language ID, allowing external language servers to provide completions and diagnostics. Note that this may result in some language features not working as expected in the notebook context.

Support

  • marimo Documentation
  • marimo GitHub Repository
  • Report an Issue

License

Apache 2.0

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft