Modelith - Domain Model Tooling | Modelith

2 min read Original article ↗

Tooling for authoring, validating, and rendering domain models — the canonical, plain-language expression of what a system is: its concepts, how they relate, and the rules that govern them. One model, one source of truth: everyone reads from the same picture.

The model lives as a YAML file, but you rarely write that YAML by hand. You author it by talking to an AI agent: you describe concepts in plain language, the agent drafts and validates the YAML, and it renders a Markdown version (with diagrams) that you commit alongside your code. The modelith CLI is the engine the agent and CI run for you — it's there to validate and render, not to be your starting point.

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 agents read the model directly, without running anything. CI regenerates it and fails on drift (modelith render --check) — like a generated-code check.