By kt3k
Visualize DDD domain models as self-contained HTML using the domainchart CLI
A CLI tool that takes DDD domain model definitions (JSON) and renders them as a single self-contained HTML file with a file-tree-style layout.
prefers-color-scheme)# Build HTML from JSON (output to a file)
npx domainchart build domains.json -o output.html
# Output to stdout
npx domainchart build domains.json > output.html
# Print the expected input schema as JSON Schema
npx domainchart types
# Validate an input file against the schema
npx domainchart validate domains.json
With Deno:
dx domainchart build domains.json -o output.html
dx domainchart types
| Command | Description |
|---|---|
build <input.json> | Build HTML from a JSON domain model file |
types | Print the expected input schema as JSON Schema |
validate <input.json> | Validate a JSON input file against the schema |
| Option | Default | Description |
|---|---|---|
-o, --output <path> | stdout | Output file path |
--title <title> | from JSON | Override the title |
Define models in a flat list — the tool automatically infers aggregate boundaries from property type references.
{
"title": "EC Site Domain Model",
"models": [
{
"name": "Order",
"kind": "entity",
"description": "Order aggregate",
"properties": [
{ "name": "id", "type": "OrderId" },
{ "name": "items", "type": "OrderItem[]" }
]
},
{
"name": "OrderItem",
"kind": "entity",
"properties": [
{ "name": "quantity", "type": "number" },
{ "name": "unitPrice", "type": "Money" }
]
},
{
"name": "Money",
"kind": "value_object",
"properties": [
{ "name": "amount", "type": "number" },
{ "name": "currency", "type": "string" }
]
},
{
"name": "OrderId",
"kind": "value_object",
"properties": [
{ "name": "value", "type": "string" }
]
}
]
}
Each model has a kind (entity or value_object), while each property has a
type (either a primitive name or another model's name — used to infer
parent-child relationships). Wrapper notations are stripped before matching, so
OrderItem[], OrderItem?, Array<OrderItem>, and Set<OrderItem> all
resolve to OrderItem. Union types like Foo | Bar (including nested forms
such as Array<Foo | Bar>) are supported — each member is treated as a
reference.
Run npx domainchart types (or dx domainchart types) to get the full JSON
Schema. See spec.md for the schema definition.
# Run tests in Deno
deno test --allow-read --allow-env --allow-run
# Run tests in Node
npx deno-test
# Format
deno fmt
# Lint
deno lint
MIT
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub kt3k/domainchart --plugin domainchartSkills for developing software carefully and steadily. Plan tasks, review code, and refine design to improve overall quality.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Frontend design skill for UI/UX implementation
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Memory compression system for Claude Code - persist context across sessions
Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, ad creative, and growth
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.