1. Home
  2. Developer tools
  3. Graphviz Viewer

Graphviz Viewer

View the dependency graphs, state machines and call graphs that tools export as .dot files, or draw your own without installing Graphviz.

Free, no sign-up. Runs in your browser: nothing is uploaded.

How to use Graphviz Viewer

  1. Paste DOT source or press Sample.
  2. Choose a layout engine.
  3. Download the rendered graph as SVG or PNG.

Features

  • The actual Graphviz engines, so layouts match the dot command
  • Seven engines: dot, neato, fdp, sfdp, circo, twopi and osage
  • Clusters, records, HTML-like labels, colours and styles
  • Syntax errors shown with Graphviz’s own message
  • Zoom, SVG and PNG export

Supported formats

Input

  • DOT
  • Typed or pasted text

You get

  • SVG
  • PNG

Private by design

Everything you enter is processed by your browser on this device. Nothing is sent to openWorkstand or anyone else, so the Graphviz Viewer is safe for private and work data. After you have used it once while online, it also works without an internet connection. How local processing works

Good to know

  • Images referenced from DOT files by path cannot be loaded in the browser.

Guide

Rendering Graphviz DOT graphs without installing Graphviz

Graphviz has drawn graphs from plain text since the early 1990s, and its DOT language is still the export format of many tools: Terraform’s graph command, Python dependency analysers, build systems, compilers and database schema tools all write .dot files. Viewing one normally means installing Graphviz and running dot -Tsvg. This viewer runs the real Graphviz engines in the browser, so the layout matches what the command line would produce.

DOT in a nutshell

A file starts with digraph name { for a directed graph or graph name { for an undirected one. Inside, a -> b; adds an edge and creates both nodes if needed, and chains such as a -> b -> c; add several at once. Attributes go in square brackets: push [label="git push", shape=oval] on a node, [label="fail", color="#dc2626"] on an edge. Defaults for every node or edge are set with node [...] and edge [...], and graph-wide settings such as rankdir=LR sit on their own lines.

Choosing a layout engine

Graphviz offers several engines for different kinds of graph. dot draws hierarchies in ranks and is right for pipelines, trees, state machines and dependency graphs. neato and fdp use spring models that suit undirected networks, and sfdp scales the same idea to thousands of nodes. circo arranges nodes in circles, which shows cycles and ring topologies, while twopi lays everything out radially around a root node. osage packs clusters into a grid. Switching the engine in the menu re-renders the same source.

Styling and clusters

Shapes include box, oval, circle, diamond, record and cylinder; style="rounded,filled" with fillcolor gives the soft boxes common in documentation. Subgraphs whose names start with cluster_ are drawn as framed groups with their own label and style, which is how the sample marks the steps that run inside Kubernetes. HTML-like labels using <...> allow tables inside a node for record-style diagrams.

A worked example

The Sample describes a deployment pipeline drawn left to right. A green oval “git push” leads to “CI: lint + test”, “Build image” and “Deploy to staging”, then to a yellow diamond “Smoke tests”. From there a “pass” edge goes to “Deploy to production” and a red “fail” edge to “Roll back”. The staging and production nodes sit inside a dashed cluster labelled Kubernetes. The rendered SVG has seven nodes, and switching to the circo engine redraws them around a circle.

Exports

The SVG download keeps the Graphviz output as vectors, ready to embed in documentation or edit in a vector editor. The PNG is rendered at twice the displayed size, which keeps text crisp in slides and tickets. Both are produced in the page from the same drawing.

Limits in the browser

Graphviz can reference image files by path for node pictures, but a web page cannot read files from your disk by name, so those images are left out. Fonts are the browser’s, so text widths can differ slightly from a server-side render. Very large graphs with many thousands of edges can take a while to lay out.

Getting DOT out of other tools

Terraform prints DOT with terraform graph, Python projects can produce one with pydeps or pyreverse, and Make, Bazel and many build tools have graph commands. Paste their output here as is; long files with hundreds of nodes usually read best with the dot engine and rankdir=LR.

Checked against the current version of the Graphviz Viewer on .

Troubleshooting

The download did not start

Look for your browser’s download bar or icon. Some browsers ask once before a site may download files; allow it and click the button again.

Frequently asked questions

What is the difference between digraph and graph?

A digraph is directed: edges are written a -> b and drawn with arrows, which suits flows and dependencies. A graph is undirected: edges are written a -- b and drawn as plain lines, which suits networks and friendships. Mixing the two edge styles in one file is a syntax error.

How do I keep two nodes on the same level?

Put them in a subgraph with rank=same, for example { rank=same; staging; qa; }. The dot engine then places them side by side in the same rank, which is useful for parallel steps in a pipeline.

Which engine should I use?

dot for anything with a direction, such as pipelines, dependencies and trees. neato or fdp for undirected networks, sfdp for very large ones, circo for rings and twopi for a radial layout around one node.

Where do .dot files come from?

Many tools export them: Terraform graph, Python’s pydeps and pyreverse, webpack and Cargo dependency graphs, database schema tools and compilers that dump control-flow graphs.

Keep working with the result

After you download, choose “Save to Workstand” to keep the result in a folder on your computer, attach it to a project and create a follow-up task. It is saved by your browser, not uploaded.