A small wrapper for viz.js that provides a command line interface similar to the original GraphViz

GraphViz, viz.js, cli, wrapper, node, npm, plantuml
npm install viz.js-cli-wrapper@1.3.0



build status AppVeyor build status code coverage

npm package license

A command line interface wrapped around viz.js.

Provides a cross-platform way to use core GraphViz features with similar command line syntax.



You can install it using Node.js version 5 or higher and npm, globally on your system

npm install -g viz.js-cli-wrapper

or locally for your package

npm install --save viz.js-cli-wrapper



The package provides six GraphViz-like executables:

  • circo
  • dot
  • fdp
  • neato
  • osage
  • twopi

If you chose to install globally, npm should have already made them available on your PATH so you can run them everywhere.
If you need to locate them, npm bin -g will point you to their location (usually /usr/bin, or %APPDATA%/npm on Windows).

If you installed locally, running npm bin in your package will print their location, usually node_modules/.bin.

Command-line interface

The command line interface is very similar to that of GraphViz itself, however, options are limited as viz.js does not support the whole range of GraphViz' features.

The following GraphViz options are currently supported:

  • -K (with all engines that have corresponding executables available)
  • -T (with the formats svg, xdot, plain, ps and json)
  • -V
  • -o
  • input files

For the full help text containing further information, run any of the executables with the -h flag, e.g. dot -h.

Exit codes

  • 2 - invalid CLI usage
  • 70 - failed to read an input file
  • 80 - failed to write to the output file
  • 100 - rendering error from viz.js


A common use case for GraphViz is generating UML diagrams via PlantUML. As a Java application, PlantUML is nicely portable and runs on all platforms, however, its dependency to GraphViz' dot engine makes the setup on different platforms annoying.

Using viz.js-cli-wrapper, you can easily set it up anywhere. If you installed it globally, depending on your system PlantUML might just locate the dot executable out of the box. In any case, you can tell PlantUML where to find it using the GRAPHVIZ_DOT environment variable or the -graphvizdot CLI switch.

See the Executables section on where to find the viz.js-cli-wrapper executables. On Windows, you need to specify the path to "dot.cmd" including the ending, otherwise PlantUML will not find it.


A huge thanks to Mike Daines for making GraphViz to some extent portable with viz.js!


viz.js-cli-wrapper is MIT-licensed.