Install
openclaw skills install @zhangjilei123-1/auto-plantuml-editConvert natural language to UML diagrams, export editable PPT/EMF with individually editable shapes in PowerPoint.
openclaw skills install @zhangjilei123-1/auto-plantuml-editAuto-generate UML diagrams from natural language, one-click export to editable PPT/EMF with individually editable shapes in PowerPoint.
Activate when user expresses:
{name}.puml filepython svg2emf.py <input.puml> [-f ppt|svg|png|emf] [-o <output>]
Parameters:
| Parameter | Description | Default |
|---|---|---|
<input.puml> | PlantUML source file | Required |
-f | Output format | ppt |
-o | Output file path | Same name .pptx |
Examples:
# Generate PPT (default)
python svg2emf.py sequence.puml
# Export SVG
python svg2emf.py sequence.puml -f svg
# Export PNG
python svg2emf.py sequence.puml -f png
# Export EMF (editable)
python svg2emf.py sequence.puml -f emf
# Specify output path
python svg2emf.py sequence.puml -o my_diagram.pptx
@startuml
participant Alice as A
participant Bob as B
A -> B : message
B --> A : response
@enduml
@startuml
class User {
+name: String
+login()
}
class Order {
+items: List
+calculate()
}
User "1" -- "*" Order : places
@enduml
@startuml
start
:Login system;
if (Password correct?) then (Yes)
:Go to home;
else (No)
:Show error;
stop
endif
stop
@enduml
@startuml
[*] --> Waiting
Waiting --> Processing: Start
Processing --> Completed: Success
Processing --> Failed: Error
Completed --> [*]
Failed --> [*]
@enduml
@startuml
left to right direction
actor User as U
rectangle System {
U -- (Login)
U -- (Place Order)
U -- (Query Order)
}
@enduml
| Format | Description | PowerPoint Editable |
|---|---|---|
.pptx | Slide with embedded EMF | ✅ Ungroup to edit |
.emf | Enhanced Metafile | ✅ Ungroup to edit |
.svg | Vector image | ❌ Needs conversion |
.png | Raster image | ❌ Not editable |
Recommended Workflow:
.pptx formatGroup → Ungroup (may need to ungroup multiple times to fully separate all elements)After generating PPT, you MUST tell the user the following:
"PPT generated! To edit each shape: Select the image → Right-click → Group → Ungroup. Note: You may need to ungroup multiple times (Ctrl+Shift+G) to fully separate all elements and ensure each shape can be edited independently."
.puml filenames@startuml and @endumlpip install -r requirements.txtDue to PlantUML encoding limitations, swimlane names and participant names must be in English. Activity descriptions and messages should use the user's language.
@startuml ecommerce_flow
|Customer|
start
:Browse Products;
:Place Order;
|OrderService|
:Process Order;
@enduml
Rules:
Reason: PlantUML has an encoding bug when handling non-English swimlane/participant names, producing SVGs with corrupted HTML entity references. This is a PlantUML limitation that cannot be resolved via configuration.
Before using this skill, verify the following dependencies are installed:
Inkscape is used to convert SVG to EMF format, it's the core dependency.
Check if installed:
# Run in command line
inkscape --version
If not installed, follow these steps:
.exe or .msi)inkscape --version
Version requirement: Inkscape 1.0 or higher
Important: If not added to PATH during installation, you can add manually:
C:\Program Files\Inkscape\bin to system PATH environment variableCheck if installed:
java --version
If not installed, follow these steps:
| Variable | Value |
|---|---|
JAVA_HOME | C:\Program Files\Eclipse Adoptium\jdk-8.x.x.x-hotspot (adjust to actual install path) |
PATH (append) | %JAVA_HOME%\bin |
java --version
Install via pip:
pip install -r requirements.txt
requirements.txt contents:
Important: If scripts/plantuml.jar does not exist, the AI model should download it automatically.
Download command:
# Navigate to AutoPlantUMLEdit skill directory first
curl -L -o "scripts/plantuml.jar" "https://github.com/plantuml/plantuml/releases/download/v1.2026.2/plantuml-1.2026.2.jar"
Or using PowerShell:
# Navigate to AutoPlantUMLEdit skill directory first
Invoke-WebRequest -Uri "https://github.com/plantuml/plantuml/releases/download/v1.2026.2/plantuml-1.2026.2.jar" -OutFile "scripts/plantuml.jar"
Verify after download:
java -jar scripts/plantuml.jar -version