Philosophy
Markdown-first
readrun is built around one core idea: your existing Markdown notes should just work.
Point readrun at any folder of .md files and it renders a navigable website with a sidebar, syntax highlighting, and clean typography. No special syntax, no config files, no frontmatter required. If you already take notes in Markdown, readrun turns them into a website with zero changes to your files.
Optional enhancements, not requirements
readrun supports executable Python code blocks ([python]...[/python]) and file downloads from generated output. These are optional layers on top of plain Markdown — they exist for authors who want interactivity, but they are never required. A site built entirely from standard Markdown is a first-class use case, not a fallback.
This matters because:
- Authors shouldn’t have to learn a new format to use readrun
- Notes written for readrun should remain perfectly readable in any Markdown viewer (VS Code, GitHub, Obsidian, etc.)
- The bracket block syntax degrades gracefully — readers without readrun just see the code as text
Not a notebook
readrun is not a notebook tool. It’s a document renderer. The difference:
- Notebooks (Jupyter, Marimo) are code-first — you write code cells and add prose around them
- readrun is prose-first — you write documents and optionally embed runnable code
The goal is to make it easy to turn written explanations into interactive websites, not to replace computational notebooks.