A comprehensive Claude Code skill for generating PlantUML diagrams from text descriptions, converting source code to architecture diagrams, and processing markdown files. This skill supports all 19 PlantUML diagram types with enhanced features for real-world development workflows.
Install this skill using the Skilz universal installer:
skilz install SpillwaveSolutions_plantuml/plantumlOr install directly from GitHub:
skilz install https://github.com/SpillwaveSolutions/plantumlBrowse and explore this skill on the Skilz marketplace: View on Skilz Marketplace
- Generate diagrams from natural language - Describe what you want, get PlantUML syntax
- Convert source code to diagrams - Spring Boot, FastAPI, Python ETL, Node.js, React examples
- Convert
.pumlfiles to images - Generate PNG or SVG from standalone PlantUML files - Extract diagrams from markdown - Process both embedded
pumlblocks AND linked .puml files - Unicode symbol enrichment - Add semantic meaning with security, data, and system symbols
- Validate PlantUML syntax - CI/CD-ready validation without conversion
- IDE-friendly workflow - Link to .puml files for IDE preview, convert for publication
- Confluence-ready output - Convert PlantUML to images for doc systems without native support
- Comprehensive diagram support - All UML (sequence, class, activity, state, etc.) and non-UML types (ER, Gantt, mindmap, etc.)
- Modern styling - CSS-like
<style>syntax for professional diagram appearance
Check that Java, Graphviz, and plantuml.jar are installed:
python scripts/check_setup.py# Convert to PNG
python scripts/convert_puml.py my_diagram.puml
# Convert to SVG
python scripts/convert_puml.py my_diagram.puml --format svg --output-dir images/# Process both embedded puml blocks AND linked  files
python scripts/process_markdown_puml.py article.md
# Validate syntax without converting (great for CI/CD)
python scripts/process_markdown_puml.py article.md --validate
# Convert to SVG format
python scripts/process_markdown_puml.py article.md --format svg-
Java (JRE 8 or higher)
- Download from Oracle
- Verify:
java -version
-
plantuml.jar
- Download from PlantUML
- Place in one of these locations:
~/plantuml.jar/usr/local/bin/plantuml.jar- Or set
PLANTUML_JARenvironment variable
-
Graphviz (recommended, required for most UML diagrams)
- Download from Graphviz
- Add
dotexecutable to PATH
# macOS (with Homebrew)
brew install java graphviz
curl -o ~/plantuml.jar https://downloads.sourceforge.net/project/plantuml/plantuml.jar
# Ubuntu/Debian
sudo apt install default-jre graphviz
wget -O ~/plantuml.jar https://downloads.sourceforge.net/project/plantuml/plantuml.jar
# Verify installation
python scripts/check_setup.pyConvert real-world application architectures to PlantUML diagrams with comprehensive examples in examples/:
| Framework | Description | Examples |
|---|---|---|
| Spring Boot | AWS ECS deployment, component architecture, REST API sequence flows | examples/spring-boot/ |
| FastAPI | Kubernetes deployment, async architecture, Pydantic validation flows | examples/fastapi/ |
| Python ETL | Complete pipeline with Airflow, data quality, monitoring | examples/python-etl/ |
| Node.js | Express/Nest.js component diagrams | examples/nodejs-web/ |
| React | SPA deployment (S3 + CloudFront), component architecture | examples/react-frontend/ |
Each example includes deployment, component, and sequence diagrams with production-ready patterns.
Enhance diagrams with semantic Unicode symbols (see references/unicode_symbols.md):
node "AWS Cloud" as aws
component "Security Service" as security
database "PostgreSQL" as db
queue "RabbitMQ" as mq
component "FastAPI App" as apiSymbol categories: Web, Data, Security, System, Messaging, Languages, Cloud, Processing, Monitoring
Reference external .puml files in markdown for IDE-friendly workflows:
## Architecture

Benefits:
- IDEs with PlantUML support render diagrams in preview
- Version control tracks diagram changes separately
- Reuse diagrams across multiple markdown files
- Better code reviews (diff .puml files directly)
- Same script converts both embedded and linked diagrams
Create auth_flow.puml:
@startuml
participant User
participant App
participant AuthServer
User -> App: Login Request
activate App
App -> AuthServer: Validate Credentials
activate AuthServer
AuthServer --> App: Token
deactivate AuthServer
App --> User: Success
deactivate App
@endumlConvert to image:
python scripts/convert_puml.py auth_flow.puml --format svgCreate blog_schema.puml:
@startuml
entity "User" {
*id: int
username: string
email: string
created_at: datetime
}
entity "Post" {
*id: int
user_id: int
title: string
content: text
published_at: datetime
}
entity "Comment" {
*id: int
post_id: int
user_id: int
content: text
created_at: datetime
}
User ||--o{ Post : writes
User ||--o{ Comment : writes
Post ||--o{ Comment : has
@endumlCreate article.md:
# System Architecture
## Authentication Flow
```puml
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
@enduml
```
## Database Schema
```puml
@startuml
entity "User" {
*id: int
name: string
}
entity "Order" {
*id: int
user_id: int
}
User ||--o{ Order
@enduml
```Process the file:
python scripts/extract_and_convert_puml.py article.md --format pngThis creates:
article_with_images.md- Updated markdown with image linksimages/diagram_1_uml.png- First diagramimages/diagram_2_uml.png- Second diagram
| Type | Description |
|---|---|
| Sequence | Interactions between participants over time |
| Use Case | System features and actors |
| Class | Object-oriented structure |
| Object | Runtime instances |
| Activity | Workflows and processes |
| Component | System modules |
| Deployment | Physical architecture |
| State | State machines and transitions |
| Timing | State changes over time |
| Type | Description |
|---|---|
| Entity-Relationship (ER) | Database schemas |
| Network | Network topology |
| Wireframes (Salt) | UI mockups |
| Ditaa | ASCII art diagrams |
| Work Breakdown Structure (WBS) | Project tasks |
| MindMap | Hierarchical information |
| Gantt | Project timelines |
| JSON/YAML | Data visualization |
| Archimate | Enterprise architecture |
| Timeline | Chronological events |
Validates PlantUML environment setup.
python scripts/check_setup.pyChecks:
- Java installation and version
- Graphviz availability
- plantuml.jar location
- Runs test diagram conversion
Converts standalone .puml files to images.
python scripts/convert_puml.py <file.puml> [options]
Options:
--format png|svg Output format (default: png)
--output-dir <path> Directory for output images (default: same as input)Enhanced markdown processor supporting both embedded code blocks AND linked .puml files.
python scripts/process_markdown_puml.py <file.md> [options]
Options:
--format png|svg Output format (default: png)
--output-dir <path> Directory for images (default: images/)
--validate Validate syntax without converting (CI/CD mode)Key advantages:
- Supports IDE-friendly workflow (link to external .puml files)
- Validates syntax before conversion
- CI/CD ready with
--validateflag - Processes both embedded and linked diagrams in single pass
- Better error messages with line numbers
Note: Consider using
process_markdown_puml.pyfor enhanced features.
Extracts PlantUML diagrams from markdown and converts to images.
python scripts/extract_and_convert_puml.py <file.md> [options]
Options:
--format png|svg Output format (default: png)
--output-dir <path> Directory for images (default: images/)# Basic PNG conversion
java -jar ~/plantuml.jar diagram.puml
# SVG output
java -jar ~/plantuml.jar --svg diagram.puml
# Batch convert all .puml files
java -jar ~/plantuml.jar "**/*.puml" --svg --output-dir images/
# Check syntax without converting
java -jar ~/plantuml.jar --check-syntax diagram.puml
# Pipe input
echo "@startuml Alice->Bob @enduml" | java -jar ~/plantuml.jar -pipe --svg > output.svgUse CSS-like <style> syntax for professional appearance:
@startuml
<style>
classDiagram {
class {
BackgroundColor LightBlue
BorderColor Navy
FontColor DarkBlue
FontSize 14
}
arrow {
LineColor SeaGreen
LineThickness 2
}
}
</style>
class Animal {
-name: String
+move()
}
class Dog extends Animal {
+bark()
}
Animal <|-- Dog
@endumlQuick styling with built-in themes:
@startuml
!theme cerulean
' Your diagram content
@endumlAvailable themes: cerulean, bluegray, plain, sketchy, amiga
The references/ directory contains comprehensive guides:
- toc.md - Navigation hub for all diagram types
- plantuml_reference.md - Installation, CLI, troubleshooting
- common_format.md - Universal syntax elements
- styling_guide.md - Modern
<style>syntax guide - unicode_symbols.md - Complete Unicode symbol guide for semantic enrichment
- sequence_diagrams.md
- class_diagrams.md
- And more for each diagram type...
| Directory | Description |
|---|---|
examples/spring-boot/ |
Spring Boot deployment, component, and sequence diagrams |
examples/fastapi/ |
FastAPI Kubernetes deployment and async architecture |
examples/python-etl/ |
Python ETL pipeline architecture with Airflow |
examples/nodejs-web/ |
Node.js/Express component diagrams |
examples/react-frontend/ |
React SPA deployment diagrams |
- Download from https://plantuml.com/download
- Place in
~/plantuml.jaror setPLANTUML_JARenvironment variable - Verify:
python scripts/check_setup.py
- Install from https://graphviz.org/download/
- Add
dotexecutable to PATH - Some diagrams (JSON, YAML, Gantt, MindMap) don't require Graphviz
- Verify
@start/@enddelimiters match - Check diagram-specific syntax in
references/[diagram_type].md - Use
java -jar plantuml.jar --check-syntax file.puml
- Install Java JRE/JDK 8+
- Add to PATH
- Verify:
java -version
- Use descriptive filenames -
user_auth_sequence.pumlinstead ofdiagram1.puml - Add comments - Use
'for single-line comments to document complex logic - Choose SVG for documentation - Scalable, better quality, supports hyperlinks
- Use PNG for web - Smaller file sizes, fixed resolution
- Start simple - Test basic diagrams before adding complexity
- Version control - Commit
.pumlsource files to Git - Prefer modern styling - Use
<style>tags instead of legacyskinparam
This is a Claude Code skill. When loaded, Claude can:
- Generate PlantUML syntax from natural language descriptions
- Select the appropriate diagram type for your use case
- Create properly formatted
.pumlfiles - Convert diagrams to images
- Extract and process diagrams from markdown files
- Apply modern styling for professional appearance
Simply describe what you want: "Create a sequence diagram for user authentication" or "Extract all diagrams from my article.md and convert to SVG".
This skill is provided as-is for use with Claude Code.