Renderers

Version 1.1.0 Updated Jun 28, 2026

Nixie supports two rendering backends and selects one once per invocation:

  • mermanmerman-cli, a headless Rust re-implementation of Mermaid. It renders without Node.js, npm packages, or Chromium. Install it with cargo install merman-cli or download a prebuilt binary from the merman releases page. Nixie looks for it in ~/.cargo/bin first, then on PATH.
  • mmdc — the official Node-based @mermaid-js/mermaid-cli, which drives headless Chromium through Puppeteer. Nixie discovers it via ~/.bun/bin/mmdc, ./node_modules/.bin/mmdc, ~/.npm-global/bin/mmdc, then mmdc, bun, or npx on PATH.

The --renderer flag selects between them:

  • auto: Default. Prefer merman-cli; fall back to the mmdc chain.
  • merman: Require merman-cli; exit 1 with a hint explaining how to install it if absent.
  • mmdc: Always use the Node-based chain, even if merman is installed.

Compatibility note

merman is an independent implementation targeting Mermaid 11.15.0. It tracks upstream closely (its parity suite compares thousands of SVG baselines), but it is not the official renderer: a diagram accepted by one backend may, at the margins, be rejected by the other. If a diagram validates locally but fails in CI (or vice versa), check which backend each environment resolved — --verbose logs the exact command — and force --renderer mmdc where the official renderer's verdict is required.