Nixie supports two rendering backends and selects one once per invocation:
- merman — merman-cli, a headless
Rust re-implementation of Mermaid. It renders without Node.js, npm
packages, or Chromium. Install it with
cargo install merman-clior download a prebuilt binary from the merman releases page. Nixie looks for it in~/.cargo/binfirst, then onPATH. - 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, thenmmdc,bun, ornpxonPATH.
The --renderer flag selects between them:
auto: Default. Prefermerman-cli; fall back to the mmdc chain.merman: Requiremerman-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.