Sandbox
@HoangYell/markdy-com

Animated architecture diagrams for agents and editors

Markdy turns text into animated architecture diagrams that explain how a system works step by step. It uses a diagram DSL, layout engines, and Web Animations API rendering, with editor, CLI, docs, and MCP integrations around the core.

93 stars3 forksTypeScriptUpdated 7d ago
Who it's for

Builders who write system diagrams in Claude Code, Cursor, VS Code, or a terminal workflow and want them to stay in sync with code and docs.

What it delivers

You can describe a system once in text and reuse it as an animated diagram in your editor, docs, or agent workflow.

What it does

Diagram DSL

Write `.markdy` scenes with nodes, flows, beats, themes, and layout rules.

Animated rendering

Render diagrams with Web Animations API motion in the browser and in generated output.

CLI commands

Use `markdy render`, `markdy lint`, `markdy format`, `markdy import`, and `markdy diff` from the terminal.

MCP server

Connect agents to validation, repair, and transpilation tools through Model Context Protocol.

Editor support

Use the VS Code and Cursor extension for live preview, formatting, completion, and diagnostics.

Docs integrations

Embed diagrams in Astro sites and MDX content with package support.

Universal ingestion

Import Mermaid, Docker Compose, Kubernetes, Terraform state, and Draw.io into Markdy.

Example gallery

Browse and reuse the included `.markdy` examples for common architecture patterns.

How to get it

  1. 1Terminal CLI — @markdy/cli
    npx @markdy/cli render system.markdy --out diagram.html
  2. 2Claude Code (Anthropic CLI)
    claude mcp add markdy -- npx -y @markdy/mcp-server
  3. 3Via 1-Command CLI
    agy mcp add markdy -- npx -y @markdy/mcp-server

README

Markdy

Turn architecture diagrams into step-by-step explanations of how your system works.
Markdy turns text into animated diagrams for system design, documentation, and walkthroughs.

Animated cache-aside walkthrough: a Redis cache hit returns a redirect, then a cache miss queries PostgreSQL and refills Redis.

Cache hit: return from Redis. Cache miss: query PostgreSQL and refill the cache.
Try this example →  •  View the source
Open in your browser. No installation or AI account required.

Documentation  •  Examples  •  VS Code Extension  •  AI & Agent Guide  •  Sponsor & Pro Blueprints

CI Status npm version Sponsor Markdy MIT License

💼 Sponsorship & Commercial Use: Markdy is free and open source under the MIT license. If you use Markdy in commercial projects or want to support ongoing engineering, consider sponsoring on GitHub.


⚡ Why Markdy?

  • Explain behavior, not just topology. Walk through requests, responses, and background events one step at a time.
  • Keep the explanation beside the code. Store diagrams as readable .markdy files you can review and version in Git.
  • Start in the browser. Try an example, edit it, and share it. Use an AI agent to help write the script when you need one.

🚀 Quick Start

1. Try the Live Example

Open the cache-aside walkthrough. Play it or step through the timeline to follow the cache hit and miss paths.

2. Make It Yours

Edit the example in the studio, or start with the smaller script below. Write MarkdyScript yourself, or ask your coding agent to generate it.

Optional: generate a diagram with your AI agent

"Follow the canonical Markdy specification (https://markdy.com/AGENT.md) and generate a .markdy scene:
Explain a Cache-Aside Architecture with a Web Client, API Gateway, URL Service, Redis Cluster, and PostgreSQL database. Include two animated storyboard beats: 1. Cache Hit Path and 2. Cache Miss & Async Warm."

(Tip: If you have the official Markdy MCP Server installed, just ask: "Create an animated Markdy architecture diagram for our cache-aside service.")

A small cache-aside scene (system.markdy)
scene "Cache-Aside Architecture" theme=auto
layout LR

browser Client "Web Client"
gateway Gateway "API Gateway"
service Svc "URL Service"
cache Redis "Redis Cluster"
database Postgres "PostgreSQL 16"

beat cache_hit "1. Cache Hit Path":
  show $nodes stagger=60ms
  frame Client Gateway Svc Redis zoom=1.12
  Client -> Gateway "GET /link" -> Svc "resolve"
  Svc -> Redis "GET key:link"
  Svc <- Redis "200 Target URL"
  Client <- Gateway "301 Redirect"

beat cache_miss "2. Cache Miss & Async Warm":
  frame Svc Redis Postgres zoom=1.15
  Svc -> Postgres "SELECT destination WHERE key = 'link'"
  Svc <- Postgres "Row Found"
  Svc ~> Redis "SETEX key:link (Warm Cache)"
  glow Postgres color=#38bdf8 & glow Redis color=#22c55e

3. Preview Locally (Optional)

Prefer your own editor or terminal? Save the script as system.markdy:

  • VS Code / Cursor Extensionhoangyell.markdy-vscode:
    Press Cmd+K V (macOS) or Ctrl+K V (Windows/Linux) for live side-by-side animated preview.

  • Terminal CLI@markdy/cli:

    npx @markdy/cli render system.markdy --out diagram.html
    

Embed in Web Apps & Docs

Choose the package that fits your stack:

  • Web Apps (Vanilla JS, React, Vue, Svelte)@markdy/renderer-dom:

    npm install @markdy/renderer-dom
    
    import { createDiagram } from "@markdy/renderer-dom";
    
    // Mount and render interactive 60fps WAAPI diagram directly from code
    const diagram = createDiagram({
      container: document.getElementById("diagram-container")!,
      code: markdyScriptCode,
    });
    
  • Astro Sites & Blogs@markdy/astro:

    npm install @markdy/astro
    

    (Zero-CLS SSR island: <Markdy code={code} client:visible /> — see Astro Guide ↓)

  • Next.js / MDX Docs@markdy/mdx:

    npm install @markdy/mdx
    

    (Auto-renders fenced ```markdy blocks — see MDX Guide ↓)

👉 DOM Renderer Guide ↗  •  Astro Guide ↗  •  MDX Guide ↗  •  Core Compiler ↗


Technical Capabilities

Explore the technical capabilities

Static boxes and arrows fail to capture distributed systems in action. Markdy turns text into choreographed 60fps motion graphics directly in your browser.

  • 🎬 Kinetic Storytelling: Choreograph requests (->), responses (<-), and events (~>) across sequential beat timelines with auto-zooms and glow cues.
  • 📐 Dynamic Port Multiplexing: Automatically balances parallel connections across node boundaries with zero line congestion or overlapping paths.
  • 🔗 Code Provenance & Git Grounding: Anchor high-level architecture nodes directly to verified source code (@src="src/auth.ts#L10-L50") with automated in-tree Git verification.
  • 🔄 Architectural Evolution Matrix: Compare architecture states across Git commits and automatically synthesize animated migration storyboards.
  • 🔬 Blast Radius & Route Pathfinder: Compute upstream dependency callers, downstream failure blast radius, and shortest message paths in real-time.
  • 💎 Native Vector Symbol Registry: Embedded, zero-dependency SVG vector glyphs for AWS, GCP, Kubernetes, Docker, Postgres, Redis, Kafka, and 20+ stacks.
  • Zero-Dep & Web-Native: Powered by pure CSS/SVG transforms and the Web Animations API (WAAPI) — ~14 kB parser, no Canvas, no GSAP.
  • 🔄 Universal Ingestion: 1-click migration from Mermaid, Draw.io, Docker Compose, Kubernetes manifests, and Terraform states.
  • 🤖 AI-Native & MCP: Official Model Context Protocol (MCP) server for Claude, Cursor, Antigravity, and Cline with self-healing syntax diagnostics.
  • 🛡️ Architecture Governance: Built-in rules prevent deadlock cycles and cross-layer bypasses.

🌟 Advanced Engineering Superpowers

Markdy goes beyond basic diagram drawing into a comprehensive Architecture Intelligence Platform:

scene "Cloud Native Microservices Mesh" theme=paper
layout LR

gateway ApiGateway "API Gateway" icon=nginx @src="src/gateway/router.ts#L20"
service OrderSvc "Order Service" icon=nodejs @src="src/orders/service.ts#L45"
service UserSvc "User Service" icon=golang @src="src/users/handler.go#L30"
cache Redis "Redis Cluster" icon=redis
database Postgres "PostgreSQL 16" icon=postgresql

beat workflow:
  show $nodes stagger=60ms
  ApiGateway -> OrderSvc "POST /orders" & ApiGateway -> UserSvc "GET /profile"
  OrderSvc -> Postgres "Write Order" & UserSvc -> Postgres "Read User"
  OrderSvc ~> Redis "Cache Invalidation"
SuperpowerSyntax / APIDeveloper Impact
Dynamic Port MultiplexingAuto-calculatedPerfectly balanced multi-lane fan-in/fan-out with smooth fillet curves
Code Provenance Anchors@src="path/file.ts#L10"Guaranteed synchronization between architecture diagrams and real Git code
Evolution Git-DiffdiffDiagramASTs(v1, v2)Automated visual diffing and animated migration timeline generation
Blast Radius LenscalculateBlastRadius(node, ast)Real-time upstream impact and downstream failure cascade isolation
Contextual Share Cards (1200×630)exportRouteShareCard(), exportReachShareCard()High-impact social & README cards with active route/blast-radius telemetry
9-Point Showcase Quality Gatemarkdy verify <file> --quality showcaseDeterministic SHA-256 integrity receipt & responsive viewport validation
Architecture Recipe Guidancemarkdy guide "<query>"Instant AI scenario pattern matching for cache-aside, EDA, zero-trust, and lakehouse
Native Vector Symbolsicon=redis, icon=kafkaZero-CDN, lightweight vector badges embedded directly in the artifact

🔌 Integrations & Ecosystem

Extend Markdy across your favorite AI agents, editors, frameworks, and deployment workflows:

🤖 AI Coding Agents & MCP Server (Recommended)

Equip Claude, Cursor, Antigravity, VS Code, Cline, Windsurf, or Zed with self-healing syntax diagnostics, auto-repair, and transpilers:

# Claude Code / CLI
claude mcp add markdy -- npx -y @markdy/mcp-server

# Google Antigravity & Gemini CLI
agy mcp add markdy -- npx -y @markdy/mcp-server

👉 1-Click Install for Cursor ↗  •  1-Click Install for VS Code ↗  •  Full JSON Configs for 6 IDEs ↓  •  AI Agent Guide (AGENT.md) ↗

🔌 IDE Extensions (VS Code, Cursor, Windsurf, VSCodium)

Live side-by-side animated preview (Cmd+K V), syntax highlighting, auto-completion, error squiggles, and SVG/PNG export:

# Visual Studio Code
code --install-extension hoangyell.markdy-vscode

# Cursor / VSCodium (Open VSX Registry)
cursor --install-extension hoangyell.markdy-vscode

👉 VS Code Marketplace ↗  •  Open VSX Registry ↗  •  Extension Docs ↗

🚀 Astro Integration (`@markdy/astro`)

Zero-CLS, SSR-placeholder islands with viewport-triggered lazy hydration for Astro documentation sites and blogs:

pnpm add @markdy/astro
---
import { Markdy } from "@markdy/astro";
import code from "./diagram.markdy?raw";
---

<Markdy code={code} client:visible />

👉 @markdy/astro Package Guide ↗

📝 MDX / React / Next.js Integration (`@markdy/mdx`)

Render fenced ```markdy code blocks directly inside .mdx files with automatic lazy loading:

pnpm add @markdy/mdx react react-dom
// mdx.config.js
import { remarkMarkdy } from "@markdy/mdx";

export default {
  remarkPlugins: [[remarkMarkdy, { componentName: "MarkdyDiagram" }]],
};

👉 @markdy/mdx Package Guide ↗

⚡ Terminal CLI & CI/CD (`@markdy/cli`, `@markdy/compat`)

Render standalone HTML diagrams or run architecture linting in CI/CD pipelines:

# Global install
npm install -g @markdy/cli

# Render diagram to animated HTML or SVG
markdy render system.markdy --out diagram.html

# Lint Markdy architecture scenes in CI/CD
markdy lint **/*.markdy

👉 CLI Package Guide ↗  •  Universal Ingestion Guide ↗

🏗️ Systems Vocabulary & Language Server (`@markdy/stdlib-systems`, `@markdy/language-server`)

📊 Feature Comparison

Feature Matrix (vs Mermaid, PlantUML, Excalidraw, Draw.io)
CapabilityMermaid / PlantUMLExcalidraw / Draw.ioMarkdy
Animation & Timing❌ Static SVG / PNG❌ Static canvas60fps WAAPI motion & step-by-step narrative beats
Authoring StyleText DSLManual drag-and-dropDeclarative text DSL + Live Editor Preview
Return Flows & Cycles⚠️ Rank distortion / tanglingManual curve placementCycle-safe returns (<-) & async event arcs (~>)
AI Agent Reliability⚠️ High hallucination❌ Coordinate hallucinationStrict grammar AST + Self-healing MCP Server
Architecture Linter❌ None❌ NoneBuilt-in rules (e.g. anti-pattern detection)
Universal Ingestion❌ Manual rewrite❌ Manual export1-Click Transpiler for Mermaid, Compose, K8s, Terraform
Core Footprint~2 MB+ runtimeHeavy web app~14 kB core parser, zero dependencies

📦 Component Responsibilities & Packages

Monorepo Package Directory & Core Responsibilities

Markdy is architected as a modular monorepo where each package fulfills a focused responsibility:

PackageResponsibilityPrimary Exports
@markdy/coreCompiler Core & AST Engineparse(), compile(), formatScene(), diagnoseMarkdyCode(), validateArchitecture(). Zero dependencies (~14 kB).
@markdy/renderer-domMotion Graphics & RenderingcreateDiagram(), exportDiagramAsVectorSvg(), exportDiagramAsPng(), exportDiagramAsGif(). 60fps WAAPI timeline.
markdy-vscodeIDE Extension (VS Code & Cursor)Side-by-side live animated preview, document formatter (Shift+Alt+F), QuickFix lightbulbs (💡 Fix), Universal Ingestion, CodeLens.
@markdy/compatUniversal Ingestion SuiteTranspilers for Mermaid, Docker Compose, Kubernetes YAMLs, Terraform state, and Draw.io XML.
@markdy/cliTerminal Tool & CI/CDmarkdy lint, markdy render, markdy format, markdy import, markdy diff.
@markdy/mcp-serverAI Agent Integration (MCP)Model Context Protocol server exposing validation, auto-healing, and transpilation tools for Claude, Cursor, Antigravity, Cline, Windsurf.
@markdy/astro & @markdy/mdxDocs & Blog IntegrationsZero-CLS, SSR-placeholder islands with viewport hydration for content sites.
@markdy/language-serverHeadless LSP ServerDiagnostic publishing, hover docs, formatting, and completions for language clients.
@markdy/stdlib-systemsDomain VocabularySemantic primitives for cloud, infrastructure, and distributed systems.

🔍 Detailed Features & Advanced Usage

🎨 17 Specialized Layout Engines & 10 Editorial Themes

Markdy provides topological layout algorithms tailored to specific system patterns:

  • Distributed Systems: architecture, flowchart, tree, state, sequence
  • Security & Structure: layers, nested, swimlane, quadrant, pyramid
  • Data & Product Loops: medallion, timeline, gantt, flywheel, constellation, radar, venn

Themes: midnight (dark modern), paper (light technical), blueprint (CAD cyan), editorial (serif publication), graphite (minimal dark), nebula (cosmic violet), terminal (CLI retro), sketchy (hand-drawn), ink (blue ballpoint & fountain pen ink), doodle (playful doodle).

👉 Explore all 17+ interactive scenes in the Live Gallery ↗

🔄 Universal Ingestion (1-Command Migration)

Convert existing diagrams and infrastructure configs into animated MarkdyScript scenes:

markdy import flow.mmd            --out flow.markdy        # Mermaid.js Flowcharts & Sequences
markdy import docker-compose.yml  --out compose.markdy     # Docker Compose Services & Networks
markdy import k8s-manifests/      --out cluster.markdy     # Kubernetes Ingress, Pods & Services
markdy import terraform.tfstate   --out infra.markdy       # Terraform Provisioned State
markdy import architecture.drawio --out diagram.markdy     # Draw.io / diagrams.net XML

🤖 AI Coding Agents & Model Context Protocol (MCP) Setup (Cursor, VS Code, Claude, Antigravity)

Equip your favorite AI Coding Agent with native Markdy tools (validate_markdy_code, diagnose_markdy_syntax, fix_markdy_code, transpile_to_markdy) and live specification resources (markdy://spec/agent-reference).

⚡ Quick MCP Server Setup & Installation

AI EnvironmentSetup ActionMethod
CursorInstall in Cursor1-Click Install ↗ or JSON Config
VS Code / CopilotInstall in VS Code1-Click Install ↗ or JSON Config
Claude Code & DesktopSetup in ClaudeCLI (claude mcp add) & JSON
Google AntigravitySetup in Antigravity1-Command CLI (agy mcp add)
Cline / Roo CodeConfig in ClineConfig File (cline_mcp_settings.json)
Windsurf / CascadeConfig in WindsurfConfig File (mcp_config.json)
Zed EditorConfig in ZedConfig File (settings.json)

🛠️ Client Configuration Snippets

1. Claude Code & Claude Desktop

Claude Code (Anthropic CLI):

claude mcp add markdy -- npx -y @markdy/mcp-server

Claude Desktop GUI (claude_desktop_config.json):

{
  "mcpServers": {
    "markdy": {
      "command": "npx",
      "args": ["-y", "@markdy/mcp-server"]
    }
  }
}

2. Cursor & VS Code (.cursor/mcp.json or .vscode/mcp.json)

{
  "mcpServers": {
    "markdy": {
      "command": "npx",
      "args": ["-y", "@markdy/mcp-server"]
    }
  }
}

3. Google Antigravity & Gemini CLI

Via 1-Command CLI:

agy mcp add markdy -- npx -y @markdy/mcp-server

Or via Config File (~/.gemini/antigravity/mcp_config.json or .agents/mcp_config.json):

{
  "mcpServers": {
    "markdy": {
      "command": "npx",
      "args": ["-y", "@markdy/mcp-server"]
    }
  }
}

4. Cline & Roo Code (cline_mcp_settings.json)

{
  "mcpServers": {
    "markdy": {
      "command": "npx",
      "args": ["-y", "@markdy/mcp-server"]
    }
  }
}

5. Windsurf / Cascade (~/.codeium/windsurf/mcp_config.json)

{
  "mcpServers": {
    "markdy": {
      "command": "npx",
      "args": ["-y", "@markdy/mcp-server"]
    }
  }
}

6. Zed Editor (settings.json)

{
  "context_servers": {
    "markdy": {
      "command": {
        "path": "npx",
        "args": ["-y", "@markdy/mcp-server"]
      }
    }
  }
}

🧰 Available Agent Tools & Resources

  • 🔍 validate_markdy_code: Check syntax, unresolved node references, and cycle rules.
  • 💡 diagnose_markdy_syntax: Detailed diagnostics with exact line numbers and remediation steps.
  • 🩹 fix_markdy_code: Self-healing code repair that fixes common syntax mistakes and formats AST.
  • 🔄 transpile_to_markdy: Convert Mermaid, Docker Compose, Kubernetes, Terraform, or Draw.io into valid MarkdyScript.
  • 📚 markdy://spec/agent-reference: Full AST grammar reference and token catalog.
  • 🏛️ markdy://governance/rules: Architecture rules (Well-Architected, cycle bounds, layer separation).
  • 📦 markdy://templates/catalog: 33 production-grade architecture blueprints.

👉 Read the Full AI Agent Reference Guide (AGENT.md) ↗


🚦 Verification Gates & Quality Engineering

Every pull request and build must pass the automated full-cycle verification pipeline:

CommandVerification GateFocus Area
pnpm testUnit & Integration SuiteAST parser, compiler math, layout solvers, CLI
pnpm test:visualAutomated Visual GateHeadless Chrome + Pixelmatch against golden baselines (tests/visual-baselines/)
pnpm test:perfSub-Frame Performance GateChrome DevTools Protocol tracing (sub-40ms render, <25MB JS heap)
pnpm verify:examplesCanonical Showcase Gate33 production blueprints compile with zero warnings
cleanroom-guard checkAnti-Leak & Clean-RoomPre-commit secret scanning and clean-room zero-footprint protection

📖 Documentation Links

GuideDescription
Syntax Reference (SYNTAX.md)Full DSL grammar, flow operators, selectors, cues, and player settings
Step-by-Step Tutorial (TUTORIAL.md)Step-by-step guide from basic flows to multi-beat kinetic scenes
**[AI Agent Guide (AGENT.md)](AGENT.md

Files in the repo

Repository payload35 top-level entries
  • .agents
  • .claude
  • .cursor-plugin
  • .github
  • agents
  • commands
  • docs
  • examples
  • packages
  • prompts
  • rules
  • scripts
  • skills
  • tests
  • website
  • .editorconfig
  • .env.example
  • .gitattributes
  • .gitignore
  • .npmrc
  • .prettierrc
  • AGENT.md
  • CHANGELOG.md
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • LICENSE
  • mcp.json
  • package.json
  • plugin.json
  • pnpm-lock.yaml
  • pnpm-workspace.yaml
  • README.md
  • SECURITY.md
  • smithery.yaml
  • tsconfig.base.json

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k