User guide

puml is a diagram compiler. You write .puml source — in PicoUML, PlantUML, or Mermaid syntax — and puml emits deterministic SVG (and, optionally, PNG).

This guide walks you from a one-line “hello” diagram through every supported family, then into the CLI and styling primitives you’ll reach for daily. Every snippet on these pages is also a fixture in the gallery and a test in the repo, so what you read here is what the compiler executes.

Start here

  • Getting started — install, render your first diagram, integrate with your editor.
  • CLI reference — modes, flags, exit codes, diagnostic streams.
  • Syntax primer — the shared core all three dialects compile down to.

Diagram families

Styling and integration

In this section

  • Getting started — Install puml, render your first diagram, and wire it into your editor.
  • CLI reference — Every mode, flag, and exit code of the puml command-line tool.
  • Syntax primer — The shared core syntax that all three frontends normalize into.
  • Sequence diagrams — Participants, messages, lifelines, groups, and notes.
  • Class diagrams — Classes, members, stereotypes, and relationships.
  • Activity diagrams — Modern beta-style activity diagrams with if/while/repeat/fork.
  • State diagrams — States, transitions, composite states, and history.
  • All diagram families — Every diagram family puml recognizes, with links into the gallery.
  • Themes and styling — Skinparams, themes, and visual token overrides.
  • Markdown fences — Render diagrams embedded in Markdown documents.