Search

PythonReactSEOPDF
GitHub Skill

plantuml-syntax

Authoritative reference for PlantUML diagram syntax. Provides UML and non-UML diagram types, syntax patterns, examples, and setup guidance for generating accurate PlantUML diagrams.

melodic-software☆ 21 Repository stars4 Repository forks

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

View source ↗Guides

Skill instructions

PlantUML Syntax Reference

Overview

PlantUML is a Java-based tool that creates diagrams from text descriptions. It supports comprehensive UML diagrams and many non-UML diagram types.

Key advantages:

  • Most comprehensive diagram support (15+ types)
  • Mature C4 model integration with icons/sprites
  • Extensive customization options
  • Battle-tested (since 2009)

Requirements:

  • Java Runtime Environment (JRE)
  • GraphViz (for some diagram types)
  • Or use Docker: docker run -p 8080:8080 plantuml/plantuml-server

Diagram Types Quick Reference

UML Diagrams
Type Keywords Best For
Sequence @startuml Interactions, API flows, protocols
Use Case @startuml Requirements, user stories
Class @startuml OOP design, domain models
Activity @startuml Workflows, processes
Component @startuml System structure
Deployment @startuml Infrastructure, deployment
State @startuml State machines
Non-UML Diagrams
Type Keywords Best For
JSON @startjson JSON structure visualization
YAML @startyaml YAML structure visualization
Wireframe @startsalt UI mockups
Gantt @startgantt Project timelines
MindMap @startmindmap Hierarchical ideas
WBS @startwbs Work breakdown
ER @startuml Database schemas
C4 @startuml with C4 include Software architecture

Basic Syntax

All PlantUML diagrams are wrapped in start/end tags:

@startuml
' Your diagram code here
@enduml

Comments:

  • Single line: ' This is a comment
  • Block: /' This is a block comment '/

Title and captions:

@startuml
title My Diagram Title
caption This is a caption
header Page Header
footer Page Footer

' Diagram content
@enduml

Quick Reference Card

Sequence
@startuml
participant A
participant B
A -> B: Message
A <-- B: Response
@enduml
Class
@startuml
class Name {
    - private
    + public
    + method()
}
A <|-- B : extends
A *-- B : contains
@enduml
Activity
@startuml
start
:Action;
if (condition?) then (yes)
    :True path;
else (no)
    :False path;
endif
stop
@enduml
State
@startuml
[*] --> State1
State1 --> State2 : event
State2 --> [*]
@enduml
Component
@startuml
[Component1] --> [Component2]
database DB
Component2 --> DB
@enduml

References

For detailed syntax and complete examples, see:

Reference Content When to Load
sequence.md Participants, arrows, activation, groups, notes Creating sequence diagrams
class.md Classes, visibility, relationships, cardinality Creating class diagrams
activity.md Conditions, swimlanes, fork/join Creating activity diagrams
state-component.md State machines, components, deployment Creating state/component diagrams
c4.md C4 context, container, component diagrams Creating C4 architecture diagrams
special-diagrams.md ER, JSON, MindMap, Gantt Creating non-UML diagrams
styling-setup.md Skinparams, themes, installation Customizing diagrams, setting up PlantUML

File Extensions

Extension Description
.puml Standard PlantUML file
.plantuml Alternative extension
.pu Short extension
.iuml Include file

Test Scenarios

Scenario 1: Creating a sequence diagram

Query: "Create a PlantUML sequence diagram for user authentication"

Expected: Skill activates, provides sequence syntax with participants, arrows, and alt/else blocks

Scenario 2: Creating a class diagram

Query: "Generate a PlantUML class diagram for an e-commerce domain"

Expected: Skill activates, provides class syntax with relationships and cardinality

Scenario 3: Creating a C4 diagram

Query: "Create a C4 container diagram in PlantUML"

Expected: Skill activates, directs to c4.md reference for includes and syntax


Last Updated: 2025-12-28 PlantUML Version: 1.2024.6

Version History

  • v1.1.0 (2025-12-28): Refactored to progressive disclosure - extracted content to references/
  • v1.0.0 (2025-12-26): Initial release

Examples

Read the usage examples in the source repository.

View source ↗

Source history

Indexed on
2026-01-20
Index updated
2026-02-04
Branch
main

Index and sync dates describe this directory. View the source repository for code history.

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!