plantuml /plantuml

Generate diagrams from textual description

★ 13,400⑂ 1,268👁 146⑃ 943● 1,539▤ 76
JavaCreated 2010-11-04plantuml.com
13,400
stars
+0+6+43
1,268
forks
146
watchers
943
prs
1,539
issues
76
releases
–
discussions

README

[!TIP]
 🧩 New! Render PlantUML diagrams directly inside GitHub with our official browser extension — No server. No tokens. No tracking. Zero permissions but clipboard.

  

 💬 Want native PlantUML support in GitHub? Upvote and join the discussion: Support for PlantUML diagrams

 [!TIP]
 🤖 New! Give your AI assistant the power to render and check PlantUML diagrams with @plantuml/mcp-js — a pure Node.js MCP server. No Java. No server. Just npx @plantuml/mcp-js.

   


 🌱 PlantUML

Generate UML diagrams from textual descriptions.




























 ℹ️ About

PlantUML is a component that allows you to create various UML diagrams through simple textual descriptions. From sequence diagrams to deployment diagrams and beyond, PlantUML provides an easy way to create visual representations of complex systems.

 🗃️ Supported Diagram Types

- 🧩 UML Diagrams
  - Sequence diagram
  - Use case diagram
  - Class diagram
  - Object diagram
  - Activity diagram
    - Legacy syntax
  - Component diagram
  - Deployment diagram
  - State diagram
  - Timing diagram
- 📈 Non-UML Diagrams
  - JSON (JavaScript Object Notation) data
  - YAML (YAML Ain't Markup Language) data
  - EBNF (Extended Backus-Naur Form)
  - Regex (Regular Expression)
  - Network diagram (nwdiag)
  - Salt (Wireframe graphical interface or UI Mockups)
  - Archimate diagram
  - SDL (Specification and Description Language)
  - Ditaa diagram
  - Gantt diagram
  - Chronology diagram
  - MindMap diagram
  - WBS (Work Breakdown Structure)
  - Mathematical Notations (AsciiMath, JLaTeXMath)
  - Entity Relationship (ER) diagram
    - Information Engineering (IE) diagram
    - Entity Relationship (ER) diagram (Chen's notation)
  -  Chart diagram
  -  Files (files tree) diagram

 📣 Additional Features

- Hyperlinks and tooltips
- Rich text (Creole) with emoticons, unicode, and icons
- OpenIconic icons
- Sprite icons

 📖 Learn More

For a more detailed overview, visit PlantUML Official Website.

 🛡 Security

See Security Policy and Security overview.

 [!IMPORTANT]
 PlantUML is not affected by the log4j vulnerability.

 🚀 Getting Started

Whether you're looking to use PlantUML as a standalone application or as a component in your own project, getting started is simple. Check out the official PlantUML setup guide for instructions on how to set up PlantUML on your system.

 ⚙️ Building from Source

To build PlantUML from source, you have two options:

1. Using Gradle: ./gradlew jar
2. Using Ant: ant

For prerequisites and detailed build instructions, see our BUILDING.md guide.

 🌐 Building for the Browser (TeaVM)

PlantUML can be compiled to JavaScript with TeaVM to run entirely client-side in the browser, with no server required. To produce the JavaScript artifacts and use them in your own project:

sh
git clone https://github.com/plantuml/plantuml.git
cd plantuml
chmod +x ./gradlew
./gradlew clean teavm -Pfast
cp ./build/generated/teavm/js/plantuml.js $YOUR_PROJECT/plantuml.js
cp ./build/ge

Snapshot: 2026-11-04T14:00:00Z · Data license Apache-2.0 · JSON