frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Marimo VS Code extension – Python notebooks built on LSP and uv

https://github.com/marimo-team/marimo-lsp
26•manzt•1h ago
Hi HN! We're excited to release our VS Code/Cursor extension for marimo [1], an open-source, reactive Python notebook.

This extension provides a native experience for working with marimo notebooks, a long-requested feature that we’ve worked hard to get right.

An LSP-first architecture

The core of our extension is a marimo notebook language server (marimo-lsp [2]). As far as we know, it’s the first notebook runtime to take this approach. The Language Server Protocol (LSP) [3] offers a small but important set of notebook-related capabilities that we use for document and kernel syncing; everything else is handled through custom actions and messages.

By building on LSP, we aim to create a path to expose marimo capabilities in additional environments (beyond VS Code/Cursor). The notebook features in LSP are still limited, but as the protocol evolves, we’ll be able to shift more functionality out of the extension and into the language server, making it available to a wider range of editors and tools. For example, this could enable:

- structural edits to notebook documents (e.g., adding or removing cells) [4]

- editor hover information that reflects the live runtime values of variables

Deep uv integration with PEP 723

Because marimo notebooks are plain Python files, we adopt PEP 723-style inline metadata [5] to describe a notebook’s environment. Tools such as uv already support this format: they read the metadata block, build or update the corresponding environment, and run the script inside it.

The marimo CLI already integrates with uv in "sandbox" mode [6] to manage an isolated environment defined by PEP 723 metadata for a single notebook. In the extension, our uv-based “sandbox controller” manages multiple notebooks: each notebook gets its own isolated, cached environment. The controller keeps the environment aligned with the dependencies declared in the file and can update that metadata automatically when imports are missing.

uv normally syncs such environments whenever you run a script, ensuring it matches the dependencies declared in its metadata; we apply this concept at the cell level so the environment stays in sync whenever cells run. The same cached uv environment is reused if you run the notebook as a script via uv (e.g., uv run notebook.py).

—-------

This work has been a complete rewrite, and we're grateful to the community for early feedback. While VS Code and the LSP support a subset of notebook features, the ecosystem has been shaped heavily by Jupyter, and we’ve had to work around some assumptions baked into existing APIs. We’ve been coordinating with the VS Code team and hope our work can help broaden the conversation—pushing the LSP notebook model forward and making room for runtimes that aren’t Jupyter-based.

We'd love to hear your thoughts!

[1] https://marimo.io

[2] https://github.com/marimo-team/marimo-lsp

[3] https://microsoft.github.io/language-server-protocol/

[4] https://github.com/microsoft/vscode-languageserver-node/issu...

[5] https://peps.python.org/pep-0723/

[6] https://docs.marimo.io/guides/package_reproducibility/

Comments

najork•45m ago
Super cool seeing you take an LSP-first approach here, decoupling the developer experience for people building with Marimo from any specific editor.
kelreeeeey•19m ago
<3<3<3<3 Great job marimo devs!!!!!

Show HN: DNS Benchmark Tool – Compare and monitor resolvers

https://github.com/frankovo/dns-benchmark-tool
24•ovo101•2h ago•11 comments

Show HN: I made a down detector for down detector

https://downdetectorsdowndetector.com
497•gusowen•20h ago•149 comments

Show HN: Browser-based interactive 3D Three-Body problem simulator

https://trisolarchaos.com/?pr=O_8(0.6)&n=3&s=5.0&so=0.00&im=rk4&dt=1.00e-4&rt=1.0e-6&at=1.0e-8&bs...
221•jgchaos•1d ago•104 comments

Show HN: Vibe Prolog

https://github.com/nlothian/Vibe-Prolog
18•nl•4h ago•0 comments

Show HN: Marimo VS Code extension – Python notebooks built on LSP and uv

https://github.com/marimo-team/marimo-lsp
26•manzt•1h ago•2 comments

Show HN: RowboatX – open-source Claude Code for everyday automations

https://github.com/rowboatlabs/rowboat
112•segmenta•1d ago•40 comments

Show HN: ChunkBack – A Fake LLM API server for testing apps without paying

https://github.com/4shub/chunkback
4•forthwall•3h ago•0 comments

Show HN: Guts – convert Golang types to TypeScript

https://github.com/coder/guts
94•emyrk•1d ago•28 comments

Show HN: A subtly obvious e-paper room air monitor

https://www.nicolin-dora.ch/blog/en-epaper-room-air-monitor-part-1/
62•nomarv•1d ago•24 comments

Show HN: I built a synth for my daughter

https://bitsnpieces.dev/posts/a-synth-for-my-daughter/
1262•random_moonwalk•1w ago•209 comments

Show HN: Parqeye – A CLI tool to visualize and inspect Parquet files

https://github.com/kaushiksrini/parqeye
159•kaushiksrini•1d ago•35 comments

Show HN: Fixing a single pointer bug unlocked 1M+ row JSON parsing on Windows

4•hilti•6h ago•0 comments

Show HN: ESPectre – Motion detection based on Wi-Fi spectre analysis

https://github.com/francescopace/espectre
203•francescopace•2d ago•50 comments

Show HN: Continuous Claude – run Claude Code in a loop

https://github.com/AnandChowdhary/continuous-claude
162•anandchowdhary•4d ago•59 comments

Show HN: Open-source library to get detailed power and system info for Macs

https://github.com/BinSquare/powermetrics-go
3•binsquare•7h ago•0 comments

Show HN: Q⊗DASH – Rust/Python quantum operator framework for graph-based QC

3•dioniceOS•8h ago•0 comments

Show HN: Excel Custom Functions in Zig

https://github.com/AlexJReid/zigxll
4•alexjreid•8h ago•0 comments

Show HN: Tokenflood – simulate arbitrary loads on instruction-tuned LLMs

https://github.com/twerkmeister/tokenflood
20•twerkmeister•1w ago•0 comments

Show HN: Godantic – JSON Schema and Validation for Go LLM Apps

https://github.com/deepankarm/godantic
2•deepankarm44•8h ago•0 comments

Show HN: Reversing a Cinema Camera's Peripherals Port

https://3nt3.de/blog/reversing-fs7-comms
47•3nt3•1w ago•2 comments

Show HN: PrinceJS – 19,200 req/s Bun framework in 2.8 kB (built by a 13yo)

https://princejs.vercel.app
150•lilprince1218•2d ago•68 comments

Show HN: Lumical – scan any meeting invite into your calendar in seconds

https://lumical.app/
3•arunavo4•13h ago•5 comments

Show HN: Kk – A tiny Bash CLI that makes kubectl faster

https://github.com/heart/kk-Kubernetes-Power-Helper-CLI
2•nkheart•13h ago•0 comments

Show HN: Kalendis – Scheduling API (keep your UI, we handle timezones/DST)

https://kalendis.dev
18•dcabal25mh•2d ago•8 comments

Show HN: Startup Simulator

https://startup-simulator-phi.vercel.app/
3•paperplaneflyr•16h ago•2 comments

Show HN: Building WebSocket in Apache Iggy with Io_uring and Completion Based IO

https://iggy.apache.org/blogs/2025/11/17/websocket-io-uring/
29•spetz•2d ago•6 comments

Show HN: My hobby OS that runs Minecraft

https://astral-os.org/posts/2025/10/31/astral-minecraft.html
15•avaliosdev•1d ago•3 comments

Show HN: Unflip – a puzzle game about XOR patterns of squares

https://unflipgame.com/
179•bogdanoff_2•1w ago•52 comments

Show HN: Bsub.io – zero-setup batch execution for command-line tools

22•wkoszek•2d ago•10 comments

Show HN: Octopii, a framework for building distributed applications in Rust

22•janicerk•2d ago•3 comments