Visualize package dependencies in your Dart project

Pub Package Build Status

Make sure you run pub get or pub upgrade in your target project directory.


Here's an example of pubviz run on itself.


Activate pubviz.

$ pub global activate pubviz


If you have configured your PATH correctly, you can run pubviz directly.

$ pubviz

Otherwise you can use the pub global command.

$ pub global run pubviz

Generate and open an html file for the package on the current path.

$ pubviz open

Should open your default browser to something like:


$ pubviz --format=dot print /path/to/http_package

You should see output something like:

digraph G {
  node [fontname=Helvetica];
  edge [fontname=Helvetica, fontcolor=gray];

  http [label="http
  http -> path [label=">=0.9.0 <2.0.0",penwidth=2];
  http -> stack_trace [label=">=0.9.1 <0.10.0",penwidth=2];
  http -> unittest [label=">=0.9.0 <0.10.0",penwidth=2,style=dashed];

  path [label="path

  stack_trace [label="stack_trace
  stack_trace -> path [label=">=1.0.0-rc.1 <2.0.0"];

  unittest [label="unittest
  unittest -> stack_trace [label=">=0.9.0 <0.10.0",color=gray];

Generate PDF, PNG and other files

GraphViz tool allows dot format to be converted to various types of outputs like PNG, PDF or SVG.

In order to export pubviz data to PNG file you need to install GraphViz package on your machine (see detailed installation instructions).

On macOS:

brew install graphviz

On Windows:

winget install graphviz

Then you can save the pubviz output to a file and convert it with dot command to desired output type, e.g.:

pubviz --format=dot print >
dot -Tpdf -o output.pdf

The full list of possible output types is available on the GraphViz website.

pubviz -? prints help

$ pubviz -?
Usage: pubviz [<args>] <command> [<package path>]

  open   Populate a temporary file with the content and open it.
  print  Print the output to stdout.

  -f, --format=<format>
            [dot]                  Generate a GraphViz dot file
            [html] (default)       Wrap the GraphViz dot format in an HTML template which renders it.

  -i, --ignore-packages            A comma seperated list of packages to exclude in the output.
  -o, --[no-]flag-outdated         Check for lasted packages and flag those that are outdated.
  -d, --direct-dependencies        Include only direct dependencies.
  -p, --production-dependencies    Include only production (non-dev) dependencies.
  -v, --version                    Print the version of pubviz and exit.
  -?, --help                       Print this help content.

If <package path> is omitted, the current directory is used.