Loading...
Loading...
Full-stack PlantUML expert: create PUML from descriptions, convert images to PUML (vision reverse engineering), render locally (PNG/SVG/PDF) with no internet. macOS/Windows/Linux; auto-installs PlantUML+Java+Python. Covers all 27 chapters of the PlantUML Language Reference Guide v1.2025.0 (607 pages): Sequence, Use Case, Class, Object, Activity (legacy+new), Component, Deployment, State, Timing, JSON, YAML, nwdiag, Salt/Wireframe, Archimate, Gantt, MindMap, WBS, Maths, ER, Common Commands, Creole, Sprites, Skinparam, Preprocessing, Unicode, StdLib (C4/AWS/Azure/K8s/ArchiMate). Use for: draw a diagram, create PUML, convert image to PUML, render .puml, debug PUML, explain PlantUML syntax, any UML task.
npx skill4agent add kaerez/skills-plugins puml-plantumlUser request
├── "Create/draw a diagram from description" → § Generate PUML
├── "Convert image/screenshot to PUML" → § Image → PUML
├── "Render/preview/generate image from code" → § Render Locally
├── "Fix/debug my PUML" → § Diagnose & Fix
└── "Explain syntax / how do I..." → references/syntax-quick-ref.mdbash scripts/bootstrap.sh # install everything
bash scripts/bootstrap.sh --verify # install + test renderSet-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\scripts\bootstrap.ps1
.\scripts\bootstrap.ps1 -Verifypython3 scripts/render.py --detect # show what's detected
python3 scripts/setup.py # install Java + PlantUML
python3 scripts/setup.py --java # ensure Java only
python3 scripts/setup.py --jar # force JAR download
python3 scripts/setup.py --verify # install + test render
python3 scripts/render.py --install-hint # show manual steps| Component | macOS | Linux | Windows |
|---|---|---|---|
| Python 3.9+ | brew | apt/dnf/pacman/snap | winget/choco/scoop |
| Java JRE 11+ | brew cask temurin | apt/dnf/pacman | winget Temurin/Zulu |
| PlantUML | brew | apt/dnf/pacman/snap | winget/choco/scoop |
| Fallback | — | | |
$JAVA_HOME/usr/libexec/java_homezulu*/usr/lib/jvm/*| Keywords in request | Type | Tag |
|---|---|---|
| sequence of calls, API flow, messages | Sequence | |
| classes, OOP, inheritance, methods | Class | |
| process, workflow, flowchart, steps | Activity (new) | |
| architecture, services, components | Component | |
| database, schema, tables, entities | ER | |
| states, lifecycle, status transitions | State | |
| use cases, actors, user stories | Use Case | |
| objects, instances, runtime snapshot | Object | |
| timing, signals, waveforms | Timing | |
| brainstorm, concept map, topics | MindMap | |
| project timeline, schedule, milestones | Gantt | |
| work breakdown, project phases | WBS | |
| UI form, wireframe, mockup | Salt | |
| JSON data structure | JSON | |
| YAML data structure | YAML | |
| network topology, servers, subnets | nwdiag | |
| enterprise architecture, ArchiMate | Archimate | |
| math formula, equation, LaTeX | Maths | |
| ASCII art diagram | Ditaa | |
references/syntax-quick-ref.mdtitleskinparam shadowing falsecat > /tmp/diagram.puml << 'PUML'
@startuml
title My Diagram
... generated code ...
@enduml
PUML
python3 scripts/render.py /tmp/diagram.puml --check # validate
python3 scripts/render.py /tmp/diagram.puml -f svg -o /tmp/ # renderviewreferences/image-to-puml.mdVisual analysis guide:references/image-to-puml.md
scripts/render.py# macOS / Linux
python3 scripts/render.py diagram.puml # PNG
python3 scripts/render.py diagram.puml -f svg -o ./output/ # SVG
python3 scripts/render.py diagram.puml -f pdf -o ./output/ # PDF
cat diagram.puml | python3 scripts/render.py --stdin -f svg -n "name" -o /tmp/
# Windows
py scripts\render.py diagram.puml
py scripts\render.py diagram.puml -f svg -o .\output\plantumlplantuml -tsvg diagram.puml
plantuml -tpng -o ./output/ *.puml
plantuml -checkonly diagram.pumlpresent_filesFull options, env vars, formats, troubleshooting:references/local-rendering.md
python3 scripts/render.py diagram.puml --check| Error | Cause | Fix |
|---|---|---|
| Missing wrapper | Add |
| Typo or wrong diagram type | Check syntax-quick-ref.md |
Arrow | ASCII required | Use |
| Forward reference | Declare before use |
| Graphviz error | | |
| PlantUML not found | Not installed | |
| Java not detected | Non-standard JDK | Set |
| Python not found | Python missing | |
| Unicode broken | Charset issue | |
Full reference (all 27 chapters, 2700+ lines):references/syntax-quick-ref.md
-> sync --> response/dashed
->> thin -->> thin dashed
->x lost ->o open arrowhead
<-> bidirectional ->+ activate -->- deactivate
[-> incoming ->] outgoing<|-- inheritance <|.. realization
o-- aggregation *-- composition
--> dependency ..> usage
-- association --() lollipop (provided interface)
"1" *-- "0..*" : label (with cardinality and label)|| exactly one o| zero or one
o{ zero or more |{ one or more@startuml most diagrams
@startmindmap mind maps
@startgantt gantt charts
@startwbs work breakdown
@startsalt wireframes
@startjson JSON display
@startyaml YAML display
@startmath AsciiMath
@startlatex LaTeX formula
@startditaa Ditaa ASCII arttitle My Title
skinparam shadowing false
skinparam monochrome true
!theme cerulean
left to right direction
!pragma layout smetana ' no Graphviz needed| Ch | Type | Notes |
|---|---|---|
| 1 | Sequence | Full: arrows, groups, activation, notes, autonumber, mainframe, parallel, stereotypes/spots, anchors, encompass, hide footbox |
| 2 | Use Case | Full: actors, extends/include, notes, packages, business UC, JSON overlay |
| 3 | Class | Full: visibility, stereotypes, spots, generics, lollipop, extends/implements keywords, hide/show/remove, $tags, namespaces |
| 4 | Object | Instances, relations, maps, association objects |
| 5 | Activity (Legacy) | Old |
| 6 | Activity (New) | start/stop, if/else/elseif, switch/case, while, repeat, fork, split, swimlanes, SDL shapes, goto/label, connectors, condition style |
| 7 | Component | Components, interfaces, ball-socket, grouping, ports, hide unlinked |
| 8 | Deployment | All element types, nesting, ports, round corners, orientation |
| 9 | State | Nested, concurrent, fork/join, history, choice, pin, expansion, note on link, inline colour |
| 10 | Timing | robust, concise, binary, clock, analog; relative time, anchors, highlights |
| 11 | JSON | Display, highlight, styles, minimal examples |
| 12 | YAML | Display, highlight, aliases, Creole |
| 13 | Network (nwdiag) | Networks, nodes, addresses, grouping, sprites, peer networks |
| 14 | Wireframe (Salt) | All widgets: button, input, dropdown, radio, checkbox, grid, tree, tabs, group box, scrollbox |
| 15 | Archimate | archimate keyword, junctions, macros, StdLib integration |
| 16 | Gantt | Tasks, constraints, milestones, colours, completion %, hyperlinks, closed days, zoom, scale |
| 17 | MindMap | OrgMode and Markdown syntax, left branches, multiroot, colours, direction |
| 18 | WBS | OrgMode syntax, direction, colours, arrows, word wrap |
| 19 | Maths | AsciiMath ( |
| 20 | ER (Info Engineering) | Entities, attributes, PK/FK markers, crow's foot relations |
| 21 | Common Commands | comments, scale/zoom, title, caption, header, footer, legend, newpage, mainframe, appendix, pragma |
| 22 | Creole | Bold, italic, mono, strike, underline, wave; lists, headings, tables, links, emoji, HTML tags, Unicode |
| 23 | Sprites | Define hex sprites, inline SVG sprites, import from StdLib, OpenIconic, Font Awesome |
| 24 | Skinparam | Full per-element skinparam + modern |
| 25 | Preprocessing | Variables, conditions, while/loop, procedures, functions, default args, unquoted, keyword args, includes, subparts, themes, define, builtins ( |
| 26 | Unicode | Native UTF-8, |
| 27 | StdLib | ArchiMate, AWS, Azure, C4, Kubernetes, Elastic, GCP, CloudOgu, Tupadr3/FontAwesome, EDGY |
| — | Ditaa | |
| File | Content |
|---|---|
| 2700+ lines — complete syntax for all 27 chapters |
| Visual analysis guide for image→PUML reverse engineering |
| Setup, CLI flags, formats, env vars, troubleshooting |
| Script | Purpose |
|---|---|
| Start here — macOS/Linux — installs Python→Java→PlantUML (no deps) |
| Start here — Windows — PowerShell 5+, no deps required |
| Python setup: detect/install Java + PlantUML; also reports Python |
| Cross-platform render: auto-detects Python/binary/JAR/Java |