whatisgithub

What is modelith?

stacklok/modelith — explained in plain English

Analysis updated 2026-05-18

27GoAudience · developerComplexity · 3/5LicenseSetup · moderate

In one sentence

A CLI and Claude Code plugin that authors, lints, and renders plain-language domain models as YAML with Markdown diagrams.

Mindmap

mindmap
  root((Modelith))
    What it does
      Author domain models
      Lint and render
    Workflow
      Describe in plain language
      Agent drafts YAML
      Render to Markdown
    Tech Stack
      Go
      YAML
      Mermaid
      Claude Code
    Use Cases
      CI drift gate
      Documented system concepts
    Model Sections
      Glossary
      Enums
      Entities
      Scenarios

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Describe a system's domain model in plain language and have an AI agent draft the YAML.

USE CASE 2

Lint a domain model file for completeness as a CI gate.

USE CASE 3

Render a domain model into Markdown with Mermaid diagrams committed alongside code.

USE CASE 4

Catch documentation drift when the rendered Markdown no longer matches the YAML source.

What is it built with?

GoYAMLMermaidClaude Code

How does it compare?

stacklok/modelithaasixh/devgrepkamalyes/go-argus
Stars272727
LanguageGoGoGo
Setup difficultymoderateeasyeasy
Complexity3/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires installing the CLI first, then the Claude Code plugin, since the AI skills call out to the CLI binary.

Apache 2.0: free to use, modify, and distribute, including commercially, with patent protection, as long as you keep notices and state changes.

So what is it?

Modelith is a set of tools for authoring, validating, and rendering domain models, meaning a plain language description of what a system actually is: its concepts, how they relate to each other, and the rules that govern them. A domain model is stored as a YAML file, but the README stresses that you are not expected to write that YAML by hand. Instead you describe your system in plain language to an AI agent, the agent drafts and validates the YAML, then renders it into a Markdown document with embedded diagrams that you commit alongside your code. The typical workflow starts with describing concepts in plain language to a Claude Code skill, which writes or updates the YAML file. The modelith command line tool then lints that file for validity and completeness, which can be wired into continuous integration as a gate, and renders it into a Markdown file with Mermaid diagrams that stays committed in the repository, continuous integration regenerates that Markdown and fails the build if it has drifted from the YAML source, similar to a generated code check. Getting started requires two pieces installed in order: the command line tool itself, which can be installed with Homebrew, downloaded as a prebuilt binary from the releases page, or built from source with Go, and the Claude Code plugin that provides the conversational skills, since those skills call out to the binary. The plugin's marketplace listing was still awaiting approval at the time of writing, so the README explains an alternative install path through a skills package manager that works today with Claude Code as well as other AI coding tools. Once installed, you invoke a specific command inside Claude Code and describe your domain in conversation, and the agent asks questions, drafts the YAML, lints it, and keeps the rendered Markdown synchronized. A domain model file is self describing, declaring its own kind and version, and organizes information into four sections: a glossary, enums, entities, and scenarios, with entities able to declare invariants such as rules a system must always uphold. The project describes itself as early stage, with the schema, command line interface, output format, and documentation still open to breaking changes, and it welcomes feedback and issues. It is released under the Apache 2.0 license.

Copy-paste prompts

Prompt 1
Help me author a domain model YAML file for my project using the modelith Claude Code skill.
Prompt 2
Show me how to wire modelith render --check into CI to catch documentation drift.
Prompt 3
Explain the four sections of a modelith domain model file: glossary, enums, entities, scenarios.
Prompt 4
Help me install the modelith CLI and lint my existing model.modelith.yaml file.

Frequently asked questions

What is modelith?

A CLI and Claude Code plugin that authors, lints, and renders plain-language domain models as YAML with Markdown diagrams.

What language is modelith written in?

Mainly Go. The stack also includes Go, YAML, Mermaid.

What license does modelith use?

Apache 2.0: free to use, modify, and distribute, including commercially, with patent protection, as long as you keep notices and state changes.

How hard is modelith to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is modelith for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.