### Description Marimo's `mo.watch.file()` works well for reloading widgets when their JS code changes: ```py # Cell 1 js_file = mo.watch.file("monkey.js") css_file = mo.watch.file("monkey.css") ``` ```py # Cell 2 class Widget(anywidget.AnyWidget): _esm = js_file.read_text() _css = css_file.read_text() Widget() ``` However, the whole cell is now re-running, not only the frontend. Here's a comparison screen recording, left JupyterLab with real hot reloading, and right the current marimo workaround. https://github.com/user-attachments/assets/d23c8551-a781-4dff-aca3-b680a8d5a569 Would be great if Marimo could support real hot reloading as well! ### Are you willing to submit a PR? (You must receive approval from the team before submitting a PR.) - [ ] Yes ### Alternatives _No response_ ### Additional context _No response_
Description
Marimo's
mo.watch.file()works well for reloading widgets when their JS code changes:However, the whole cell is now re-running, not only the frontend.
Here's a comparison screen recording, left JupyterLab with real hot reloading, and right the current marimo workaround.
Screen.Recording.2026-05-29.at.09.37.27.mp4
Would be great if Marimo could support real hot reloading as well!
Are you willing to submit a PR? (You must receive approval from the team before submitting a PR.)
Alternatives
No response
Additional context
No response