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 startedInstall puml, render your first diagram, and wire it into your editor.
  • CLI referenceEvery mode, flag, and exit code of the puml command-line tool.
  • Syntax primerThe shared core syntax that all three frontends normalize into.
  • Sequence diagramsParticipants, messages, lifelines, groups, and notes.
  • Class diagramsClasses, members, stereotypes, and relationships.
  • Activity diagramsModern beta-style activity diagrams with if/while/repeat/fork.
  • State diagramsStates, transitions, composite states, and history.
  • All diagram familiesEvery diagram family puml recognizes, with links into the gallery.
  • Themes and stylingSkinparams, themes, and visual token overrides.
  • Markdown fencesRender diagrams embedded in Markdown documents.