UML 2.x
All 14 diagram types — structure and behavior. Type-safe as a Kotlin DSL.
One source. Any diagram. Readable for humans and AI.
kUML is the first modeling tool to express UML 2, SysML 2, C4, BPMN 2.0 and Service Blueprint as a type-safe Kotlin DSL — better than PlantUML, with the full power of professional CASE tools.
// Order.kuml.kts — no imports required, kUML script host provides them
classDiagram(name = "Order Processing") {
val status = enumOf(name = "OrderStatus") {
literal(name = "DRAFT")
literal(name = "CONFIRMED")
literal(name = "SHIPPED")
}
val customer = classOf(name = "Customer") {
attribute(name = "email", type = "String")
}
val order = classOf(name = "Order") {
attribute(name = "id", type = "UUID")
attribute(name = "status", type = status) // type-safe enum reference
operation(name = "submit")
}
association(source = customer, target = order) {
source { multiplicity(spec = "1") }
target { multiplicity(spec = "1..*"); role = "orders" }
}
} No language is a profile of another. Full power of UML 2, SysML 2, C4, BPMN 2.0 and Service Blueprint in the same type-safe Kotlin environment.
All 14 diagram types — structure and behavior. Type-safe as a Kotlin DSL.
BDD, IBD, PAR, REQ, ACT, SEQ, STM, UC — standalone metamodel on top of KerML.
Context, Container, Component, Code, Dynamic, Deployment. Structurizr DSL bridge included.
Process modelling as a first-class language — pools, lanes, gateways, subprocesses and all ~50 event variants. Camunda/Zeebe XML round-trip included. New in 0.16.0.
User Journey Maps and full Service Blueprints — actor, phase, step, touchpoint, emotion curve and five-lane renderer. New in 0.18.0.
Full OCL 2.4/2.5 expression language, integrated directly into the UML model.
Five built-in profiles — AUTOSAR, JavaEE, Spring, OpenAPI, SoaML. Roll your own via SPI.
Model-to-model and model-to-text transformations. PIM → PSM → Code.
The first UML tool deliberately designed for the LLM era. MCP server included.
Compose Desktop app with live SVG preview, file I/O, plugin manager and jpackage native installers — no JDK required. New in 0.12.0.
Koog-based multi-LLM agent (OpenAI, Anthropic, Ollama local) with streaming chat, type-safe @Tool DSL edits, diff preview before any model change, and privacy mode.
Five SPI categories (Theme · Renderer · Layout · Codegen · Reverse) with signed packages, isolated class-loaders, and five reference plugins shipped out of the box.
Browse plugins