Starter templates for all five kUML plugin categories. Each subdirectory is a self-contained, compilable Gradle project ready to customise.
The fastest path is the built-in scaffolding command. It substitutes all placeholder values for you interactively:
kuml plugin initOr non-interactively:
kuml plugin init \
--category=theme \
--id=com.myorg.my-dark-theme \
--name="My Dark Theme" \
--maintainer="Jane Doe <jane@example.com>" \
--output=./my-dark-themeSupported categories: theme, renderer, layout, codegen, reverse.
Copy the subdirectory that matches your category, then replace every
com.example / MyXxxPlugin occurrence with your own identifiers:
cp -r theme/ my-plugin/
cd my-plugin/
# edit settings.gradle.kts, build.gradle.kts, kuml-plugin.json, src/...| Directory | Category | What it does |
|---|---|---|
|
Contributes one or more |
|
|
Adds a new output format (PDF, DOT, Excalidraw, …) for any diagram type. |
|
|
Provides an alternative layout engine (replaces or complements ELK / Grid). |
|
|
Generates source files from a kUML diagram (requires |
|
|
Analyses source files and produces a kUML UML model (requires |
./gradlew build
kuml plugin install build/libs/<artifact>-1.0.0.jar
kuml plugin list --installedSubmit a PR to https://github.com/kuml-dev/kuml-plugin-registry adding an entry to
plugins/index.json. See the registry README for the required fields and the
signing-key workflow.
Generate an Ed25519 keypair and include the public key in your registry entry:
openssl genpkey -algorithm ed25519 -out private.pem
openssl pkey -in private.pem -pubout -outform DER | base64 > public.b64Sign the JAR:
sha256=$(sha256sum build/libs/*.jar | awk '{print $1}')
openssl pkeyutl -sign -inkey private.pem \
-in <(echo -n "$sha256" | xxd -r -p) | base64 > plugin.jar.sigSee the key rotation guide for multi-key and rotation workflows.
All template files in this repository are released under the Apache License 2.0. You may use, modify, and distribute them freely — including in proprietary plugins.