Your markdown runs now.
A VS Code extension that makes code blocks executable. Write .md files, see live dashboards inline. Open source, zero lock-in.
Live dashboard output from a standard markdown file
Open VS Code, press Cmd+Shift+X (or Ctrl+Shift+X), search "Stereo", and click Install. That's it.
Or run this in your terminal:
.md file with a run blockOpen any .md file. Type stereo and press Tab to expand a ready-made template. Or paste this:
# My Dashboard ```tsx run <DashGrid cols={2}> <MetricCard label="Uptime" value="99.97%" status="success" /> <MetricCard label="Latency" value="42ms" status="neutral" /> </DashGrid> ```
The only new syntax is ```tsx run instead of ```tsx. Everything else is standard markdown.
Press Ctrl + Shift + M to open the preview panel. Or use the Command Palette:
Stereo will also prompt you automatically when it detects run blocks in your file.
Each block gets a Run button. Click it, and the output renders right below:
Add refresh=30s after tsx run to auto-refresh. Use fetch() to pull live data from any API.
These are available in every run block with no imports needed:
Also available: fetch(), console.log(), React, await. Full JSX/TSX support.
Files stay .md. No proprietary format, no cell metadata. Works with git, GitHub, GitHub, any renderer.
Built-in components: MetricCard, Sparkline, StatusTable. Render live data from APIs directly in your markdown.
Rust sidecar replaces {"{{env.X}}"} from .env files. Credentials never touch the JavaScript runtime.
Set refresh=30s on any block. Data stays current without manual re-runs. Polling, not polling you.
CustomTextEditorProvider. Your keybindings, your theme, your extensions. No Electron wrapper on top of Electron.
MIT licensed. Inspect every line, fork it, self-host it. No telemetry, no analytics, no tracking.
Opens automatically when your markdown has executable blocks. No manual setup needed.
Type stereo in any .md file for instant templates. MetricCard, DashGrid, StatusTable — all one Tab away.
Clear error messages with human-readable hints. Stack traces hidden behind a toggle, not in your face.
They built a new app. We built an extension. Same insight — markdown plus executable code is the best interface — without the new binary on your dock.
No cell metadata, no .ipynb lock-in. Just .md. Your files render on GitHub, diff cleanly in PRs, and open in any text editor.
Your dashboard lives where your code lives. No new tab, no context switching. Runbooks and dashboards in the same file.