An actively maintained fork of beautiful-mermaid

Your diagrams deserve more than one gray theme.

zombie-mermaid renders Mermaid syntax into beautiful SVG or ASCII art — with 15 live-switchable themes, animated edges, and zero re-renders, right where AI-assisted coding happens.

npm install zombie-mermaidView the live demo

Requires Node 24+. Call renderMermaidSVG() for an SVG string.

graph TD
Start e1@--> Deploy{Deploy?}
Deploy e2@-->|yes| Ship[Ship it]
Deploy e3@-->|no| Iterate[Iterate]
e1@{ animate: true }
e2@{ animate: true }
e3@{ animate: true }
Output
StartDeploy?yesnoShip itIterate
Live theme switching

Pick a theme. Watch it flow.

Fifteen palettes pulled from editors you already trust — Dracula, Nord, Solarized, Catppuccin, Tokyo Night, and more — each tuned so the diagram stays legible in every one.

Output
                             ┌────────────────────────┐
                             │        Pipeline        │
                             │                        │
                             │                        │
┌───────┐         ╱╲         │ ┌───────┐     ┌──────┐ │                ╱╲          ┌──────────┐
│       │       ╱    ╲       │ │       │     │      │ ├──────┐       ╱    ╲        │          │
│ Start ├────►< Auth?  >ok──►│ │ Build ├────►│ Test │ │      pass►< Deploy?  >─yes►│ Ship it  │
│       │       ╲    ╱       │ │       │     │      │ │              ╲    ╱        │          │
└───────┘         ╲╱         │ └───────┘     └──────┘ ├┐               ╲╱          └──────────┘
                             │                        ││                │
                             └────────────────────────┘│                │
                                                       │                └───────┐
                                                       │                        │ no
                                                       │          ┌──────────┐  │  ┌──────────┐
                                                       │          │          │  │  │          │
                                                       └─────────►│ Monitor  │  └─►│ Rollback │
                                                                  │          │     │          │
                                                                  └──────────┘     └──────────┘
Want to add your own? Every theme here is just three color roles — see how easy one is to write →
The problem with default mermaid rendering

mermaid.js → beautiful-mermaid → zombie-mermaid

What zombie-mermaid adds on top.

beautiful-mermaid already solved mermaid.js's biggest problems — aesthetics, theming, terminal output, dependencies. This fork keeps all of that, and adds three things beautiful-mermaid never had.

A real CLI binary

beautiful-mermaid never shipped one. Pipe Mermaid source in, get SVG or ASCII out, straight from the command line.

mergeEdges

No beautiful-mermaid equivalent. Bundles fan-out/fan-in edges into a shared trunk instead of a tangle of parallel lines.

Real bugs, actually fixed

Mermaid syntax beautiful-mermaid shipped with — dropped edges, corrupted labels, stray nodes — found and fixed, with the before/after code to prove it.

See every fix, before and after →
Built for how diagrams get used now

Three ways this stays out of your way.

(Theming and the fork's backstory are covered above — this is what you actually build with.)

Output flexibility

Dual output. SVG for rich UIs, ASCII/Unicode for terminals — mermaid.js itself has no real terminal story.

Mono mode. Full diagrams rendered from just two colors, when that’s all you’ve got.

Drop-in architecture

Zero DOM dependencies. Pure TypeScript. Works in the browser, on the server, or anywhere else.

Synchronous rendering. No async, no flash of unstyled diagram — drops straight into React’s useMemo().

Proven at scale

Ultra-fast. Renders 100+ diagrams in under 500ms — fast enough for every diagram in a CI run.

CI-enforced accessibility. Every diagram type ships a role-correct, nameable SVG root — checked in CI, not just claimed.

Not just a browser library

A real CLI. A real MCP server.

Render from a terminal, a CI pipeline, or hand it straight to your coding agent as a tool call — this isn't a browser-only diagram widget.

terminal
$ zombie-mermaid render diagram.mmd --theme dracula
✓ wrote diagram.svg
$ zombie-mermaid render diagram.mmd --ascii
┌─────────┐
│  Start   │
└────┬────┘
     │
$ zombie-mermaid mcp
✓ MCP server listening on stdio

CLI

Render SVG, ASCII, HTML, or PNG straight from a script or CI job — themes, direction overrides, and terminal hyperlinks all pass through as flags. Full flag reference →

MCP serverExperimental

Your coding agent calls a tool —

render_mermaid_svg({ diagram })

…and gets back a rendered SVG, no browser involved.

MCP server

render_mermaid_svg (optional bg/fg colors and outputPath), render_mermaid_ascii, validate_mermaid, sequence-activation check and fix tools, list_themes, and list_diagram_types — seven tools exposed over stdio. Embed it, or run zombie-mermaid mcp directly. Newer than the rest of the library, so feedback is welcome. Read the MCP docs →

Ten diagram types, one engine

Every shape your system needs to explain itself.

Browse every diagram type
Straight from the live maintenance dashboard

Actively maintained. Not abandoned.

beautiful-mermaid stalled — dozens of open PRs, nothing merged in months. Here's the same fork, measured against the original as of Nov 2, 2026 — see the live dashboard for current numbers.

zombie-mermaid (this fork)

0 days

since last commit

1363

merged PRs

10

open PRs

beautiful-mermaid (upstream)

180 days

since last commit

13

merged PRs

45

open PRs

What this fork fixes

59 documented bugs, each shown before/after with the actual pre-fix and post-fix code.

See the evidence
Sep 21, 2026

ascii-renderer and svg-renderer are now standalone packages

@zombie-mermaid/ascii-renderer and @zombie-mermaid/svg-renderer are now documented, supported standalone packages on npm — install just the piece you need instead of the whole umbrella.

Read the blog