plantuml - Man Page

manual page for PlantUML version 1.2025.9 (Mon Sep 08 15:56:38 UTC 2025)

Examples (TL;DR)

Description

plantuml - generate diagrams from plain text

Usage

java -jar plantuml.jar [options] [file|dir]... java -jar plantuml.jar [options] --gui

Description

Process PlantUML sources from files, directories (optionally recursive), or stdin (-pipe).

Wildcards (for files/dirs)

*

any characters except '/' and '\'

?

exactly one character except '/' and '\'

**

any characters across directories (recursive)

Tip: quote patterns to avoid shell expansion (e.g., "**/*.puml").

General

-h, --help ...................... Show help and usage information

--help-more ................. Show extended help (advanced options)

--version ................... Show PlantUML and Java version

--author .................... Show information about PlantUML authors

--gui ....................... Launch the graphical user interface

--dark-mode ................. Render diagrams in dark mode

-v, --verbose ................... Enable verbose logging

--duration .................. Print total processing time

--progress-bar .............. Show a textual progress bar

--splash-screen ............. Show splash screen with progress bar

--check-graphviz ............ Check Graphviz installation

--http-server[:<port>] ...... Start internal HTTP server for rendering (default port : 4242)

-p, --pipe ...................... Read source from stdin, write result to stdout

-D<var>=<value>,

--define <VAR>=<value> ...... Define a preprocessing variable (equivalent to '!define <var> <value>')

Execution control

--check-syntax .............. Check diagram syntax without generating images

--stop-on-error ............. Stop at the first syntax error

--check-before-run .......... Pre-check syntax of all inputs and stop faster on error

--no-error-image ............ Do not generate error images for diagrams with syntax errors

Metadata & assets

--extract-source ............ Extract embedded PlantUML source from PNG or SVG metadata

--skip-fresh ................ Skip PNG/SVG files that are already up-to-date (using metadata)

--sprite <4|8|16[z]> <file>

Encode a sprite definition from an image file

Output format (choose one)

-f <name>, --format <name> ...... Set the output format for generated diagrams

(e.g. png, svg, pdf, eps, latex, txt, utxt, obfuscate, preproc...)

Available formats

--eps ....................... Generate images in EPS format

--latex ..................... Generate LaTeX/TikZ output

--obfuscate ................. Replace text in diagrams with obfuscated strings to share diagrams safely

--png ....................... Generate PNG images (default)

--preproc ................... Generate the preprocessed source after applying !include, !define... (no rendering)

--svg ....................... Generate SVG images

--txt ....................... Generate ASCII art diagrams

--utxt ...................... Generate ASCII art diagrams using Unicode characters

Examples

# Process all .puml recursively java -jar plantuml.jar "**/*.puml"

# Check syntax only (CI) java -jar plantuml.jar --check-syntax src/diagrams

# Read from stdin and write to stdout (SVG) cat diagram.puml | java -jar plantuml.jar --svg -pipe > out.svg

# Encode a sprite from an image java -jar plantuml.jar --sprite 16z myicon.png

# Use a define java -jar plantuml.jar -DAUTHOR=John diagram.puml

# Change output directory java -jar plantuml.jar --format svg --output-dir out diagrams/

Exit codes

0

Success

>0

Error (syntax error or processing failure)

See also

java -jar plantuml.jar --help-more Documentation: https://plantuml.com

(GPL source distribution) Java Runtime: OpenJDK Runtime Environment JVM: OpenJDK 64-Bit Server VM Default Encoding: UTF-8 Language: en Country: null

PLANTUML_LIMIT_SIZE: 4096

Error: Dot executable does not exist Error: only sequence diagrams will be generated

Info

October 2025 PlantUML version 1.2025.9 (Mon Sep 08 15:56:38 UTC 2025)