# Command-line Invocation

All GraphViz programs have a similar invocation:

`cmd [ flags ] [ input files ]```

If no input files are supplied, the program reads from stdin.

### Flags

-G name[=value]
  Set a graph attribute, with default value = `true`.
-N name[=value]
  Set a default node attribute, with default value = `true`.
-E name[=value]
  Set a default edge attribute, with default value = `true`.
-T format
  Set output language to one of the supported formats. By default, attributed dot is produced.
-V
  Emit version information and exit.
-l library
  User-supplied, device-dependent library text. Multiple flags may be given. These strings are passed to the code generator at the beginning of output.

  For PostScript output, they are treated as file names whose content will be included in the preamble after the standard preamble. If library is the empty string `""`, the standard preamble is not emitted.

-n[num]
  Sets no-op flag in neato. If set, neato assumes nodes have already been positioned and all nodes have a pos attribute giving the positions. It then performs an optional adjustment to remove node-node overlap, depending on the value of the overlap attribute, computes the edge layouts, depending on the value of the splines attribute, and emits the graph in the appropriate format. If num is supplied, the following actions occur:
  num = 1
    Equivalent to -n.
  num > 1
    Use node positions as specified, with no adjustment to remove node-node overlaps, and use any edge layouts already specified by the pos attribute. neato computes an edge layout for any edge that does not have a pos attribute. As usual, edge layout is guided by the splines attribute.
-o outfile
  Write output to file outfile. By default, output goes to stdout.
-q
  Suppress warning messages.
-s[scale]
  Set input scale to scale. If this value is omitted, 72.0 is used. This number is used to convert the point coordinate units used in the pos attribute into inches. For example, `dot -Tdot` produces pos values in points, with 72 per inch. Thus, to use this output as input to `neato -n`, one needs `-s` (equivalently, `-s72`).
-v
  Verbose mode
-x
  In neato, on input, prune isolated nodes and peninsulas. This removes uninteresting graph structure and produces a less cluttered drawing.
-y
  By default, the coordinate system used in generic output formats, such as attributed dot, extended dot, plain and plain-ext, is the standard cartesian system with the origin in the lower left corner, and with increasing y coordinates as points move from bottom to top. If the `-y` flag is used, the coordinate system is inverted, so that increasing values of y correspond to movement from top to bottom.
-?
  Print usage information, then exit.

If multiple -T flags are given, drawings of the graph are emitted in each of the specified formats. Multiple -o flags can be used to specify the output file for each format. If there are more formats than files, the remaining formats are written to stdout.

Note that the -G, -N and -E flags override any initial attribute declarations in the input graph, i.e., those attribute statements appearing before any node, edge or subgraph definitions. In addition, these flags cause the related attributes to be permanently attached to the graph. Thus, if attributed dot is used for output, the graph will have these attributes.

### Environment Variables

GDFONTPATH
  List of pathnames giving directories which a program should search for fonts. Overridden by DOTFONTPATH. Used only if Graphviz is not built with the `fontconfig` library
DOTFONTPATH
  List of pathnames giving directories which a program should search for fonts. Overridden by fontpath. Used only if Graphviz is not built with the `fontconfig` library
SERVER_NAME
  If defined, this indicates that the software is running as a web application, which restricts access to image files. See GV_FILE_PATH.
GV_FILE_PATH
  If SERVER_NAME is defined, image files are restricted to the directory specified by `GV_FILE_PATH`. Note that sometimes, when using one of the layout programs in a web script, it is not enough to use an export command but rather the variables should be set when the command is run, for example,
  `SERVER_NAME=xxx GV_FILE_PATH="images/" dot -Tjpg -o x.jpg x.dot`