Skip to content

Astro MyST Notebooks

Write a page in MyST Markdown or as a Jupyter notebook. During the Astro build, its Python cells run in a real Jupyter kernel and the results are published next to the code. Readers can start a Python kernel in their browser to edit and rerun the examples without any server behind the page.

This site is built with the package it documents. The walkthrough executes real Jupyter cells at build time and lets you rerun the same cells in your browser. Its equations, links, includes, and output are all rendered by the public Astro integration.

Start with a working page

Set up a site creates a working documentation site in one command and explains what the initializer adds to your project. Then follow the executable walkthrough to see shared cell state, hidden setup, rich output, and browser edits.

When you are ready to write your own pages, Author MyST covers executable cells, references, includes, and equations. Browser execution explains how to declare the Python packages available to readers, and the configuration reference lists every option and export.

What runs where

StageRuntimeDependencies
BuildA fresh Jupyter kernel for each executable page, driven by nbclientThe Pixi environment you select
Published pageStatic HTML, styles, and client-side PlotlyAssets produced by Astro
Interactive sessionA browser-local Xeus Python kernel, with editors and controls from ThebeA prepared Emscripten-forge environment declared in environment.yml

Native and browser Python environments are configured separately. A package installed in Pixi is not automatically available to a reader's browser; see browser execution.

Project status

This package is in alpha: APIs and behavior may change. It was extracted from Pymablock and is distributed as GitHub development previews. It is not published on npm.

The package implements a supported subset of MyST and fails explicitly on unsupported constructs rather than rendering them incorrectly. Notebook output is trusted content: only publish output from code you control. See development for local commands and validation scope.