Modelith - Domain Model Tooling | Modelith
Skip to main content
On this page
Tooling for authoring, validating, and rendering domain models — the<br>canonical, plain-language expression of what a system is: its concepts, how<br>they relate, and the rules that govern them. One model, one source of truth:<br>everyone reads from the same picture.
The model lives as a YAML file, but you rarely write that YAML by hand . You<br>author it by talking to an AI agent: you describe<br>concepts in plain language, the agent drafts and validates the YAML, and it<br>renders a Markdown version (with diagrams) that you commit alongside your code.<br>The modelith CLI is the engine the agent and CI run for you — it's there to<br>validate and render, not to be your starting point.
The workflow
describe concepts in plain language
Claude Code skill (author) ─▶ writes / updates the YAML
model.modelith.yaml ─▶ canonical source (you edit this, via the agent)
├─▶ modelith lint : validate + completeness ─▶ CI gate
└─▶ modelith render : Markdown + Mermaid ─▶ model.modelith.md committed to the repo
The rendered Markdown is committed back next to the YAML so people and<br>agents read the model directly, without running anything. CI regenerates it and<br>fails on drift (modelith render --check) — like a generated-code check.
Where to start
Authoring a model for the first time? → Getting Started<br>— install the plugin, then build a model by conversation.
Want to understand a model someone produced? → Understanding Your<br>Model and Reading the<br>Diagrams.
See it all come together? → the Parking Garage worked<br>example builds a real model from nothing.
The pieces
PieceWhat it doesAgent authoringThe Claude Code plugin and skills — how you actually build a modelSchemaThe JSON Schema that defines a valid modelmodelith CLIThe lint / render engine the agent and CI runGitHub ActionThe same checks in CI
The workflowWhere to startThe pieces