This is a command-line interface (CLI) for mermaid. It takes a mermaid definition file as input and generates an svg/png/pdf file as output.
Locate how to call the mmdc executable for your preferred method i.e. Docker, Yarn, NPM, global install, etc. Try these examples to get started quickly.
mmdc -i input.mmd -o output.svg
mmdc -i input.mmd -o output.png -t dark -b transparent
The --cssFile
option can be used to inline some custom CSS.
Please see ./test-positive/flowchart1.css for an example of a CSS file that has animations.
Warning: If you want to override mermaid
's themeCSS
, we recommend instead adding {"themeCSS": "..."})
to your mermaid --configFile
. You may also need to use !important
to override mermiad's themeCSS
.
Warning: Inline CSS files may be blocked by your browser, depending on the HTTP Content-Security-Policy header of the website that hosts your SVG.
mmdc --input test-positive/flowchart1.mmd --cssFile test-positive/flowchart1.css -o docs/animated-flowchart.svg
mmdc -i readme.template.md -o readme.md
This command transforms a markdown file itself. The mermaid-cli will find the mermaid diagrams, create SVG files from them and refer to those in the markdown output.
This:
### Some markdown
```mermaid
graph
[....]
```
### Some more markdown
```mermaid
sequenceDiagram
[....]
```
Becomes:
### Some markdown
![diagram](./readme-1.svg)
### Some more markdown
![diagram](./readme-2.svg)
You can easily pipe input from stdin. This example shows how to use a heredoc to send a diagram as stdin to mermaid-cli (mmdc).
cat << EOF | mmdc
graph TD
A[Client] --> B[Load Balancer]
EOF
mmdc -h
docker pull minlag/mermaid-cli
or pull from Github Container Registry
docker pull ghcr.io/mermaid-js/mermaid-cli/mermaid-cli
or e.g. version 8.8.0
docker pull minlag/mermaid-cli:8.8.0
The container looks for input files in /data
. So for example, if you have a
diagram defined on your system in /path/to/diagrams/diagram.mmd
, you can use
the container to generate an SVG file as follows:
docker run -it -v /path/to/diagrams:/data minlag/mermaid-cli -i /data/diagram.mmd
It's possible to call mermaid-cli
via a Node.JS API.
Please be aware that the NodeJS API is not covered by semver, as mermaid-cli
follows
mermaid
's versioning.
import { run } from "@mermaid-js/mermaid-cli"
await run(
"input.mmd", "output.svg", // {optional options},
)
Some people are having issues installing this tool globally. Installing it locally is an alternative solution:
yarn add @mermaid-js/mermaid-cli
./node_modules/.bin/mmdc -h
Or use NPM:
npm install @mermaid-js/mermaid-cli
./node_modules/.bin/mmdc -h
❗️ We do NOT recommend installing it globally because both YARN and NPM
could fail to install a command-line tool globally properly due to weird
permission issues.
yarn global add @mermaid-js/mermaid-cli
or npm install -g @mermaid-js/mermaid-cli
Install with brew
brew install mermaid-cli
npx
is installed by default with NPM. It
downloads and runs commands at the same time. To use Mermaid CLI with npx, you
need to use the -p
flag because the package name is different than the command
it installs (mmdc
). npx -p @mermaid-js/mermaid-cli mmdc -h
Contributions are welcome. See the contribution guide.