Show HN: WASM-powered codespaces for Python notebooks on GitHub

Hi HN!

Last year, we shared marimo [1], an open-source reactive notebook for Python with support for execution through WebAssembly [2].

We wanted to share something new: you can now run marimo and Jupyter notebooks directly from GitHub in a Wasm-powered, codespace-like environment. What makes this powerful is that we mount the GitHub repository's contents as a filesystem in the notebook, making it really easy to share notebooks with data.

All you need to do is prepend 'marimo.app' to any Python notebook on GitHub. Some examples:

- Jupyter Notebook: https://marimo.app/github.com/jakevdp/PythonDataScienceHandb...

- marimo notebook: https://marimo.app/github.com/marimo-team/marimo/blob/07e8d1...

Jupyter notebooks are automatically converted into marimo notebooks using basic static analysis and source code transformations. Our conversion logic assumes the notebook was meant to be run top-down, which is usually but not always true [3]. It can convert many notebooks, but there are still some edge cases.

We implemented the filesystem mount using our own FUSE-like adapter that links the GitHub repository’s contents to the Python filesystem, leveraging Emscripten’s filesystem API. The file tree is loaded on startup to avoid waterfall requests when reading many directories deep, but loading the file contents is lazy. For example, when you write Python that looks like

```python

with open("./data/cars.csv") as f: print(f.read())

# or

import pandas as pd pd.read_csv("./data/cars.csv")

```

behind the scenes, you make a request [4] to https://raw.githubusercontent.com/.

Docs: https://docs.marimo.io/guides/publishing/playground/#open-no...

[1] https://github.com/marimo-team/marimo

[2] https://news.ycombinator.com/item?id=39552882

[3] https://blog.jetbrains.com/datalore/2020/12/17/we-downloaded...

[4] We technically proxy it through the playground https://marimo.app to fix CORS issues and GitHub rate-limiting.


Comments URL: https://news.ycombinator.com/item?id=42700852

Points: 76

# Comments: 13

https://docs.marimo.io/guides/publishing/playground/#open-notebooks-hosted-on-github

Creato 7h | 14 gen 2025, 21:40:08


Accedi per aggiungere un commento

Altri post in questo gruppo

Show HN: Simplex: Automate browser workflows using code and natural language

Simplex is an SDK that provides low-level functions you can use to create reliable web automations using code and natural language.

Here's a quick video to show you how it works:

15 gen 2025, 02:20:08 | Hacker news