Pele, the Mermaid renderer from Obsidian

Pele is the Mermaid renderer Obsidian open-sourced on October 17, 2026: 230 kB, no dependencies, and a claimed 0.05-0.3 ms per diagram, up to 500× faster than Mermaid.js. Paste your own Mermaid code and both renderers draw it side by side, timed on your machine.

Run the render test

Last verified: October 19, 2026 · Primary sources: pele.run, github.com/obsidianmd/pele · Independent explainer, not affiliated with Obsidian

Live render test: Pele vs Mermaid.js

Type or pick a diagram. Both renderers run in your browser; times are measured here, not copied from anyone's marketing page. Broken syntax shows the renderer's real error message.

Pele theme:
Pele…
Waiting…
Mermaid.js…
Waiting…

The theme buttons only restyle Pele's pane. Its colors update live with no re-render, because Pele draws with CSS variables. Mermaid.js needs a full re-render to change theme. Libraries load from jsDelivr: pele@1 and mermaid@11.

Pele vs Mermaid.js, on paper

Every number below comes from pele.run and is the project's own claim. Independent benchmarks do not exist yet. The project is days old. Use the test above to check the speed claim on your hardware.

PeleMermaid.js
Bundle size (gzip)230 kB1.6 MB
Render time (claimed)0.05-0.3 ms6-82 ms
Direct dependencies023
Small screensAdapts the layoutScales the diagram
ThemingCSS variables, no re-renderTheme configuration, re-render
Syntax supportTargets Mermaid 12.1.0 syntax; parsers tested against Mermaid's own parser specs plus differential fuzzing
LookPele uses its own layout and visual style. Output looks like Pele, not like Mermaid.js.
Read the fine print. "Up to 500× faster" compares Pele's best case against Mermaid.js on the project's own setup, which it has not published. Run your own diagrams in the test above.

Add Pele to your app

Install from npm:

npm install pele

Render a string to SVG:

import { render } from 'pele';

const { svg } = render(`flowchart LR
  A[Mermaid text] --> B[SVG]`);
document.querySelector('#diagram').innerHTML = svg;

In a plain HTML page, no build step:

<script src="https://cdn.jsdelivr.net/npm/pele@1/dist/pele.global.js"></script>
<script>
  for (const el of document.querySelectorAll('pre.mermaid'))
    pele.mount(el, el.textContent);
</script>

Ship less code by loading only the diagram types you use:

import { register, render } from 'pele/core';
import flowchart from 'pele/diagrams/flowchart';
register(flowchart);

Or render lazily:

import { renderAsync } from 'pele/lazy';
const { svg } = await renderAsync(text);

Theming without re-rendering

Pele reads colors and fonts from CSS variables, so a theme change is a stylesheet change. The SVG stays as-is. Set these on the diagram or any parent element:

.pele {
  --pele-bg: #fffcf0;
  --pele-fg: #100f0f;
  --pele-muted: #6f6e69;
  --pele-line: #100f0f;
  --pele-surface: #f2f0e5;
  --pele-surface-alt: #e6e4d9;
  --pele-border: #cecdc3;
  --pele-accent: #205ea6;
  --pele-font: sans-serif;
  --pele-radius: 4px;
}

Charts get --pele-series-1 through --pele-series-8. Try the Light / Dark / Warm buttons in the test above. Pele's pane recolors instantly, with no second render.

What Pele is, in one minute

Obsidian built Pele for its own diagram needs: render Mermaid fast, and match the app's theme without extra work. The name comes from Pele, the Hawaiian goddess of volcanoes and fire. The repository (obsidianmd/pele) went public in early October 2026; Obsidian presented it on October 17. It hit Hacker News the same day and collected 558 points with 53 comments in 24 hours. Two weeks in: 190 commits, 13 releases, over 1,800 stars, MIT license.

Technically it is a from-scratch renderer. Same input syntax as Mermaid, but Pele does its own layout and draws its own style. Its parsers are tested against Mermaid's parser specifications and with differential fuzzing (feed both parsers random diagrams and compare). For untrusted input, Pele escapes diagram text, filters links and styles, and caps source and output size.

Worth knowing before you switch

  • Output looks different. Same syntax, Pele's own visual style. Pixel parity with Mermaid.js is not the goal.
  • Mermaid.js plugins don't carry over. Custom themes, ELK layouts, and third-party extensions stay behind.
  • Not in the Obsidian app yet. Pele is the open-source library; Obsidian has not said when it ships inside the app itself.
  • The speed numbers are vendor claims. 0.05-0.3 ms vs 6-82 ms comes from pele.run with no published test setup. Measure your own diagrams. Start with the test at the top of this page.

FAQ

What is Pele?

An open-source JavaScript library from Obsidian that turns Mermaid diagram text into SVG. No runtime dependencies, CSS-variable theming, supports every diagram type built into Mermaid 12.1.0. MIT-licensed at github.com/obsidianmd/pele.

How much faster is Pele than Mermaid.js, really?

The project reports 0.05-0.3 ms renders against 6-82 ms for Mermaid.js, up to 500×. Those are the project's own numbers with no published test setup. The live test at the top of this page times both renderers on your machine, so you can verify the claim yourself.

Is Pele open source?

Yes. MIT license, at github.com/obsidianmd/pele. Public since early October 2026, past 1,800 stars within two weeks.

Which diagram types does Pele support?

Every type built into Mermaid 12.1.0: flowcharts, sequence, class, state, ER, Gantt, pie, git graphs, mindmaps, timelines, and the rest. Its layout engine is its own; parsers are tested against Mermaid's specs and differential fuzzing.

Does Pele replace Mermaid.js?

For rendering, mostly: same input syntax, SVG output, far smaller bundle. The visual style is Pele's own, and Mermaid.js-specific plugins and custom themes do not carry over. Run your diagrams through the test above before switching.

Is Pele inside the Obsidian app yet?

Not that Obsidian has announced. Pele is the library; when it ships in the Obsidian desktop or mobile app is a separate decision the company has not dated publicly (checked October 19, 2026).

How does Pele theming work?

Set CSS variables like --pele-bg, --pele-fg, and --pele-line on the diagram or a parent element. Colors and fonts update live with no re-render. Charts use --pele-series-1 through --pele-series-8.

How do I install Pele?

npm install pele, then import { render } from 'pele'. In plain HTML, load https://cdn.jsdelivr.net/npm/pele@1/dist/pele.global.js and call pele.mount(el, text). Slimmer builds via pele/core plus per-diagram imports.

Sources

  • pele.run, the official site: install, API, benchmark claims, theming variables
  • github.com/obsidianmd/pele, the source code: MIT license, CDN and lazy-import docs
  • LAXIMA AI Signal, the Hacker News thread: 558 points, 53 comments, posted October 17, 2026
  • YouGoNews, a launch summary with benchmark caveats
  • AI Minor, a launch summary from October 18, 2026
  • mermaid.js.org, the incumbent renderer Pele is measured against

Numbers change fast on a two-week-old project. This page was last updated on October 19, 2026. Nothing here is affiliated with Obsidian.

Agents

Machine-readable summary: llms.txt

Ask an AI about this guide: