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
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 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
Some people are having issue 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.