SuperMD

Plugins

SuperMD is extensible with sandboxed WebAssembly plugins. Eight come pre-installed, and the rest are one keystroke away, and anyone can write their own.

What plugins can add

The bundled plugins

PluginWhat it does
dotRenders ```dot and ```graphviz fences as themed diagrams (pure Rust, no Graphviz install needed)
tocInsert Table of Contents / Update Table of Contents palette commands, and auto-refreshes <!-- toc --> markers on every save
emojiRenders :tada:-style shortcodes as emoji inline (1,900+ codes); the raw text reveals when your cursor touches it
tidyFormat: tidy — smart quotes and dashes, collapses extra blank lines, trims trailing whitespace; also converts pasted CSV/TSV into a Markdown table
todo-marksHighlights TODO, FIXME, and NOTE in prose — a manifest-only plugin with no code at all
url-titlePaste a bare https:// link and it becomes [Page Title](url) — asks consent per website, applied only if you haven't kept typing
html-exportExport: HTML — your document as a single self-contained HTML file, styled with your current theme
word-countWord count and reading time in the editor's status corner
csv-viewOpens .csv / .tsv files as rendered tables; ⌘ E switches to the raw text
daily-noteNew: Daily Note — creates (or reopens) journal/<today>.md in your workspace
graphqlSyntax highlighting for ```graphql fences and .graphql / .gql files — a grammar plugin
calcCalculations in prose — {{2 km + 300 m}} shows its result inline, raw on touch
chart```chart fences with label: value lines render as themed bar/line charts
ipynb-viewOpens Jupyter notebooks (.ipynb) as rendered documents — code, outputs, and prose

These live in plugins/ in the repo — each one doubles as a working example for the surface it uses.

Installing plugins

The first eight in the table above come pre-installed — SuperMD seeds them on first launch. Delete any from your plugins folder and it stays gone; SuperMD never re-adds a plugin you removed, and never touches one you've modified.

For the rest (and to re-install anything you deleted), open the command palette and run Install Plugins… — pick from the catalog and it downloads from the SuperMD repository, verifies, and installs in one step.

Or install one straight from this page. Install in SuperMD hands the plugin's name to the app, which shows you what it is and what it wants access to before anything is downloaded; Download .zip gets you the archive to feed Tools → Import Plugin…. Both land the same sha256-verified file the in-app installer uses. If you do not have SuperMD yet, download it first.

dot

Graphviz DOT diagrams as live blocks (pure Rust)

Install in SuperMDDownload .zip

toc

Table of contents: insert, update, and auto-refresh on save

Install in SuperMDDownload .zip

emoji

Emoji shortcodes rendered inline

Install in SuperMDDownload .zip

tidy

Smart punctuation formatter and CSV-paste-to-table

Install in SuperMDDownload .zip

todo-marks

Highlight TODO / FIXME / NOTE in prose

Install in SuperMDDownload .zip

url-title

Pasted links gain their page title (asks per-site consent)

needs network access — asks per site

Install in SuperMDDownload .zip

html-export

Export the document as a self-contained themed HTML file

Install in SuperMDDownload .zip

word-count

Word count and reading time in the status strip

Install in SuperMDDownload .zip

csv-view

Open CSV/TSV files as rendered tables

Install in SuperMDDownload .zip

daily-note

Create today's journal note from the palette

Install in SuperMDDownload .zip

graphql

GraphQL syntax highlighting for fences and files

Install in SuperMDDownload .zip

calc

Calculations in prose: {{2 km + 300 m}} shows its result inline

Install in SuperMDDownload .zip

chart

Bar and line charts from simple label: value fences

Install in SuperMDDownload .zip

ipynb-view

Open Jupyter notebooks as rendered documents

Install in SuperMDDownload .zip

Manual installation also works: a plugin is just a folder. Drop it into:

then run Reload Plugins from the palette (or restart). If a plugin fails to load, the reason appears at the bottom of the command palette — a broken plugin never breaks the app.

On the Mac App Store build

The App Store version of SuperMD runs inside Apple's sandbox, which changes how plugins arrive — every plugin still works the same once installed.

Your plugins folder lives inside the app's container rather than at ~/.supermd/. Reach it with Reveal Settings Folder from the Help menu.

The safety model

Plugins run inside a WebAssembly sandbox with no access to anything by default — no files, no network, no environment, no clock.

Two capabilities exist, and both ask you first:

Some things plugins can never do, with no permission to ask for: run programs, write files anywhere they choose (exports and templates only go where you pick), draw their own interface, or run in the background. And a plugin that hangs or crashes is simply cut off — after two seconds it's interrupted, the document is untouched, and the app carries on.