Skip to content
Table of contents

uml-skill: Instructions with a small encoding fallback

uml-skill packages diagram-writing instructions and a small Python helper. It is a skill bundle, not an MCP server or an image-generation model. The helper can produce a Kroki URL from diagram source.

Configuration and automation
  • Updated
  • Python · 100%
  • MIT
Documented components
2Explore modules
Source documents
2Read the instructions
Repository languagesPython 100%1

Shares calculated from GitHub Linguist bytes.

Python100%
100%2,870 bytes
Language%Bytes
Python100%2,870

1. Overview

1.1. Why it exists

Agent skill bundle providing direct tool definitions and prompt guides for diagram generation.

1.2. Best fit

Drop-in diagram generation capabilities for LLM agent frameworks.

2. Use cases

Agent skill (diagramming-uml) that guides AI coding agents to write diagram source and render it via uml-mcp or Kroki.

Use-case diagram for uml-skill: Install the skill; Plan and write diagram code; Pick a diagram_type; Render through uml-mcp; Build a Kroki URL offlineuml-skillInstall the skillPlan and write diagram codePick a diagram_typeRender through uml-mcpBuild a Kroki URL offlineDeveloper«system»AI coding agent«system»uml-mcp / Kroki
People on the left, external systems on the right; each oval is a use case backed by the files cited below.
Install the skill
DeveloperAI coding agent

The README lists npx @smithery/cli@latest skill add antoinebou12/uml, or copying the folder into .cursor/skills/diagramming-uml/ so the agent loads SKILL.md.

Plan and write diagram code
AI coding agent

SKILL.md walks the agent through purpose, diagram type, outline and readability rules (about 25 Mermaid or 30 PlantUML nodes, labelled transitions) before it writes source.

Pick a diagram_type
AI coding agent

references/DIAGRAM-TYPES.md maps intents such as sequence, swimlane, ER or architecture to a Kroki diagram_type and Mermaid or PlantUML form, to be confirmed with uml://types.

Render through uml-mcp
AI coding agentuml-mcp / Kroki

When uml-mcp is connected, the skill tells the agent to call validate_uml then generate_uml or generate_uml_batch and to return the Kroki url and playground link.

Build a Kroki URL offline
Developeruml-mcp / Kroki

Without MCP, scripts/kroki_url.py compresses the source with zlib, encodes it in base64url and prints a https://kroki.io/<backend>/<format>/... URL.

2.1. Scenario: Get a shareable sequence diagram link

  1. Install the skill with npx @smithery/cli@latest skill add antoinebou12/uml.
  2. Ask the agent for a sequence diagram of a checkout flow; the skill activates on the diagram request.
  3. The agent picks sequence or Mermaid sequenceDiagram from the intent table and writes the source.
  4. With uml-mcp connected, it calls validate_uml and generate_uml and replies with the url, the playground link and a copy of the code.
  5. Without uml-mcp, run python scripts/kroki_url.py -t mermaid diagram.mmd to get the link.

Files readREADME.mdSKILL.mdAGENTS.mdreferences/DIAGRAM-TYPES.mdscripts/README.mdscripts/kroki_url.py

3. Getting started

These commands come from the repository documentation. They were not run during this review.

scripts/README.md · Usage
python kroki_url.py --help
scripts/README.md · Usage
python kroki_url.py -t mermaid diagram.mmd
python kroki_url.py -t plantuml -f png diagram.puml
scripts/README.md · Usage
Get-Content diagram.puml -Raw | python kroki_url.py -t plantuml
scripts/README.md · Usage
cat diagram.puml | python kroki_url.py -t plantuml

4. Repository references

Excerpts from the repository’s guides, in their original language. Links open the inspected source revision.

Prerequisites and first run

4.1. Install

README.md

RouteWhat to do
Smithery (recommended for many agents)Run npx @smithery/cli@latest skill add antoinebou12/uml. Open the Smithery skill page and use Install for client-specific steps (Cursor, Claude Code, Codex, Windsurf, Continue, GitHub Copilot, and others).
Cursor (manual)Copy this repository (or the uml-skill folder) into .cursor/skills/diagramming-uml/ (or add a symlink). See Cursor · Rules & skills.
Other clientsPrefer the Smithery CLI and your product’s skill directory; paths and filenames vary.
Read the full instructions ↗
Configuration and usage

4.2. Usage

scripts/README.md

From a file: From stdin (PowerShell): From stdin (Unix):
Read the full instructions ↗
Source documentation

2 documents read from 2 candidates.

5. Features and components 2

Instruction layer
SKILL.md describes the workflow and points to diagram references. An agent can use those instructions with available diagram tools. References supply syntax guidance without becoming an application runtime.
Encoding helper
scripts/kroki_url.py uses standard-library compression and encoding to construct a rendering URL. Generating that URL and requesting the rendered image are separate operations.

6. Architecture

Expand a component to follow its connections, or explore the full diagram.

System components Context
Mermaid Interactive diagram

System overview of the components and connections verified in the repository.

Static architecture view for uml-skill
Static preview. The interactive diagram replaces it after Mermaid loads.
flowchart LR
  n0["Diagram request"]
  n1["Skill and syntax references"]
  n2["Diagram source"]
  n3["Kroki URL helper"]
  n4["Rendering endpoint"]
  n0 --> n1
  n1 --> n2
  n2 --> n3
  n3 --> n4
Text version of the diagram
  • Diagram request → Skill and syntax references
  • Skill and syntax references → Diagram source
  • Diagram source → Kroki URL helper
  • Kroki URL helper → Rendering endpoint
Follow one path through the code

Read the encoder to see how source becomes a URL-safe payload. The helper transports the source; syntax validation and visual quality still depend on the diagram language and renderer.

7. Technical dossier

Built from the source at commit 05b27cd (3 files). Each item comes from a pattern match in the code, so open the linked file before relying on it.

7.1. Layers and modules

Folders are sorted into layers by name, from the user interface down to data access. Because the sorting uses names only, the diagram says nothing about calls between layers.

Mermaid Layered view
flowchart TB
  subgraph L_application["Application services"]
    direction TB
    application_0["scripts<br/>1 file"]
  end
Modules and their main layer
ModuleLayerFilesTypesExtensions
scriptsApplication services10.py

7.2. C4 model

From system context to code declarations. Each level reflects the available source evidence.

UML 1 · System context
1 · System context

The widest C4 view: who uses the project and which outside systems and data stores it relies on. Rendered with uml-mcp.

PlantUML source
@startuml
!include <C4/C4_Context>
LAYOUT_LEFT_RIGHT()
Person(P_cli, "CLI user")
System(SYS, "uml-skill", "uml-skill packages diagram-writing instructions and a small Python he…")
System_Ext(E0, "Kroki")
Rel(P_cli, SYS, "Uses")
Rel(SYS, E0, "Calls")
@enduml
UML 2 · Containers
2 · Containers

One level closer: the parts that run separately inside the project, their main language and how calls flow between them. Rendered with uml-mcp.

PlantUML source
@startuml
!include <C4/C4_Container>
LAYOUT_LEFT_RIGHT()
Person(P_cli, "CLI user")
System_Boundary(SYS, "uml-skill") {
  Container(APP, "uml-skill", "Python")
}
System_Ext(E0, "Kroki")
Rel(P_cli, APP, "Uses")
Rel(APP, E0, "Calls")
@enduml
UML 3 · Components and layers
3 · Components and layers

Modules grouped by source-layer classification. Boundaries show organization, not runtime isolation or call relationships. Rendered with uml-mcp.

PlantUML source
@startuml
!include <C4/C4_Component>
LAYOUT_TOP_DOWN()
System_Boundary(SYS, "uml-skill") {
Boundary(L0, "Application services", "layer") {
Component(M0_0, "scripts", "Python", "1 files")
}
}
@enduml
UML 4 · Code
4 · Code

Selected declarations, fields and methods grouped by source file. No inheritance or call edges are inferred. Rendered with uml-mcp.

PlantUML source
@startuml
skinparam backgroundColor transparent
skinparam shadowing false
skinparam roundCorner 10
skinparam defaultFontName Arial
skinparam defaultFontSize 13
skinparam ArrowColor #4e6070
skinparam ArrowFontColor #3d4f5f
skinparam titleFontSize 14
skinparam actorBorderColor #006a62
skinparam actorBackgroundColor #e9f3f4
skinparam usecaseBorderColor #006a62
skinparam usecaseBackgroundColor #e9f3f4
skinparam componentBorderColor #006a62
skinparam componentBackgroundColor #e9f3f4
skinparam interfaceBorderColor #006a62
skinparam interfaceBackgroundColor #ffffff
skinparam nodeBorderColor #4e6070
skinparam nodeBackgroundColor #f4f8fb
skinparam databaseBorderColor #006a62
skinparam databaseBackgroundColor #ffffff
skinparam cloudBorderColor #4e6070
skinparam cloudBackgroundColor #f0f5fa
skinparam artifactBorderColor #006a62
skinparam artifactBackgroundColor #ffffff
skinparam rectangleBorderColor #b0c2d3
skinparam activityBorderColor #006a62
skinparam activityBackgroundColor #e9f3f4
skinparam partitionBorderColor #b0c2d3
skinparam stereotypeCBackgroundColor #ffffff
top to bottom direction
hide empty members
package "uml-skill" {
object "scripts/kroki_url.py" as FN0 {
  encode_for_kroki()
  kroki_url()
  main()
}
}
@enduml

7.3. Public interface

Outside code can use everything listed here. The project also declares 0 public types.

Command line 3

7.4. Business logic

No classes were extracted, so these are the largest source files and their functions.

scripts/kroki_url.py
encode_for_kroki, kroki_url, main

7.5. External integrations

Hosts named in the code

7.6. CI/CD pipeline

No CI/CD pipeline in the repository. The code is built and run by hand, as described above.

7.7. Deployment

Mermaid Deployment diagram
flowchart LR
  repo[("GitHub repository")]
  local["Local machine"]
  repo -->|"clone and run"| local

The repository has no Dockerfile, Compose file or hosting configuration, so the code runs on the machine that clones it.

The available sources do not document the remaining sections.

8. Reference

3 / 3 eligible files read (8 in the tree); 0 oversized, 0 failed reads and 0 syntax diagnostics.

What the scan covers

Known dependency/build folders, credential files and binaries are excluded. The scan covers READMEs, recognized manifests and parser-supported source files.

Linguist statistics cover the whole repository and may include other languages.

10. Files to read 2

11. Glossary

Repository

The versioned source files, configuration, and history of a project.

README

The repository’s entry document, usually covering its purpose and initial setup.

Dependency

A library, tool, or service that another component needs to build or run.

API

An interface through which software components exchange requests and results. An API does not have to use HTTP.

Published port

A host port mapped to a service’s container port. Publishing a port can expose that service beyond its container network.

CLI

A text interface in which commands and arguments select operations. Exit codes let scripts detect success or failure.

Continuous integration

Automated checks that run when source changes, such as building, testing, and linting. Passing checks cover only what those checks exercise.

MCP

Model Context Protocol: a protocol through which an AI client discovers and calls tools and reads resources from a server.

Mermaid

A text-based diagram language. Nodes and connections describe a model; the diagram itself does not execute the project.

GPU

A processor designed for parallel workloads, including graphics rendering and many numerical operations.

12. References

  1. antoinebou12. (2026, November 5). uml-skill. [Software repository] github.com.
  2. antoinebou12. (2026, November 5). uml-skill: README. [Repository documentation] github.com.
  3. antoinebou12. (2026, November 5). scripts/kroki_url.py. [Source file] github.com.
  4. antoinebou12. (2026, November 5). README.md. [Source file] github.com.
  5. Boucher, A. (2026, October 23). uml-skill: Instructions with a small encoding fallback. [Project article] antoineboucher.info.

Sources without a publication date show the date they were last checked, November 5, 2026. File links retain the inspected revision where available.