Pretty Mermaid Renderer
imxv/Pretty-mermaid-skills
Writes and renders Mermaid diagrams as themed SVG, PNG or terminal ASCII and Unicode art with a bundled Node.js CLI that needs no browser.
Build interactive, click-through architecture diagrams for software systems — a self-contained single HTML file with animated step-by-step flows, mode toggles (dev/prod, offline/online, v1/v2)…
$ npx skills add konraddzbik/architecture-diagram-skill --skill architecture-diagram -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install konraddzbik/architecture-diagram-skill architecture-diagram --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/konraddzbik/architecture-diagram-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/architecture-diagram .claude/skills/architecture-diagram && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "architecture-diagram" agent skill from https://github.com/konraddzbik/architecture-diagram-skill/tree/main/skills/architecture-diagram into .claude/skills/architecture-diagram/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architecture-diagram", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/konraddzbik/architecture-diagram-skill/tree/main/skills/architecture-diagramType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add konraddzbik/architecture-diagram-skill --skill architecture-diagram -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install konraddzbik/architecture-diagram-skill architecture-diagram --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/konraddzbik/architecture-diagram-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/architecture-diagram .agents/skills/architecture-diagram && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "architecture-diagram" agent skill from https://github.com/konraddzbik/architecture-diagram-skill/tree/main/skills/architecture-diagram into .agents/skills/architecture-diagram/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architecture-diagram", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add konraddzbik/architecture-diagram-skill --skill architecture-diagram -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install konraddzbik/architecture-diagram-skill architecture-diagram --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/konraddzbik/architecture-diagram-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/architecture-diagram .cursor/skills/architecture-diagram && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "architecture-diagram" agent skill from https://github.com/konraddzbik/architecture-diagram-skill/tree/main/skills/architecture-diagram into .cursor/skills/architecture-diagram/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architecture-diagram", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/konraddzbik/architecture-diagram-skill.git --path skills/architecture-diagram--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add konraddzbik/architecture-diagram-skill --skill architecture-diagram -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install konraddzbik/architecture-diagram-skill architecture-diagram --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/konraddzbik/architecture-diagram-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/architecture-diagram .gemini/skills/architecture-diagram && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "architecture-diagram" agent skill from https://github.com/konraddzbik/architecture-diagram-skill/tree/main/skills/architecture-diagram into .gemini/skills/architecture-diagram/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architecture-diagram", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install konraddzbik/architecture-diagram-skill architecture-diagramInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add konraddzbik/architecture-diagram-skill --skill architecture-diagram -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/konraddzbik/architecture-diagram-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/architecture-diagram .github/skills/architecture-diagram && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "architecture-diagram" agent skill from https://github.com/konraddzbik/architecture-diagram-skill/tree/main/skills/architecture-diagram into .github/skills/architecture-diagram/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architecture-diagram", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add konraddzbik/architecture-diagram-skill --skill architecture-diagram -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install konraddzbik/architecture-diagram-skill architecture-diagram --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/konraddzbik/architecture-diagram-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/architecture-diagram .opencode/skills/architecture-diagram && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "architecture-diagram" agent skill from https://github.com/konraddzbik/architecture-diagram-skill/tree/main/skills/architecture-diagram into .opencode/skills/architecture-diagram/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architecture-diagram", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
architecture-diagramBuild interactive, click-through architecture diagrams for software systems — a self-contained single HTML file with animated step-by-step flows, mode toggles (dev/prod, offline/online, v1/v2)…
Architecture Diagram is an agent skill from konraddzbik/architecture-diagram-skill. Build interactive, click-through architecture diagrams for software systems — a self-contained single HTML file with animated step-by-step flows, mode toggles (dev/prod, offline/online, v1/v2), dark/light theme, and a side panel with payload details, plus a companion markdown description. Use when the user wants to visualize or design a system: architecture diagram, service map, data flow, RAG/agentic flow, microservices topology, integration diagram, CI/CD or data/ETL pipeline, multi-agent system, or onboarding…
Its SKILL.md is about 5.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including reference files and assets (for example `examples/agentic-tool-calling.json`, `examples/auth-oauth2.json` and `examples/cicd-pipeline.json`).
It sits in Development, covering Diagrams. It works with Mermaid. The repository describes itself as: Build click-through, animated system architecture diagrams as a single HTML file. Drop it into a workshop, design review, or onboarding doc and let people watch the data flow… The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cd94e97. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Architecture Diagram loads about 5.7k tokens when it runs, and up to ~16k if it reads all its reference files. Until then it costs about 235 tokens; SKILL.md has 3,071 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from konraddzbik/architecture-diagram-skill at commit cd94e97, republished under its MIT licence (© konraddzbik). 3,071 words, ~5,698 tokens.
.claude/skills/architecture-diagram/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.Build single-file, drop-in HTML pages that let workshop attendees, clients, or new team members click through how a system works — step by step, with animated data packets flowing between nodes, payload details on a side panel, and toggleable modes (offline/online, dev/prod, v1/v2). The aesthetic is dark and didactic-first: bounded nodes, gentle quadratic wires, packets that glow only on the active step — no rainbow gradients. Rebrand via the CSS tokens in assets/css-tokens.css.
| Situation | Use this skill? |
|---|---|
| "Show me how the auth flow works" (interactive, for a workshop) | Yes |
| "Design the RAG pipeline before we build it" (planning new service) | Yes |
| "Map our microservices and how they communicate" | Yes |
| "Visualize the CI/CD pipeline for onboarding docs" | Yes |
| "Show the data flow through our ETL pipeline" | Yes |
| "Draw an agentic multi-agent system with tool calls" | Yes |
| "Build me an architecture mockup we can iterate on with the team" | Yes |
| "Draw a sequence diagram for the PR" (static, goes in markdown) | No — a Mermaid sequence diagram inline is simpler |
| "Add a diagram to a slide deck or PDF" (static, not interactive) | No — this produces interactive HTML, not images or slides |
| "I just need a static boxes-and-arrows topology" (no flows/steps) | No — a Mermaid flowchart is enough |
The differentiator is interactivity + sequenced data flow: if the value is "click through it and watch what happens", use this skill; if you need a static image, a slide, or an inline diagram, use Mermaid instead.
Every diagram has four things:
RAG Query, Direct Query, Ingest, Auth). Each flow is an ordered list of steps.{from, to, color, title, route, payload, desc, chips}. Each step lights up one wire and one target node. (color and title are required — color must be a CSS variable name like --c-orch, anything else falls back to the brand accent; a missing title shows "—".) A step with from === to renders as a loop above that node (internal work such as "CI → CI: build").Modes are NOT alternative flows. Flows describe scenarios ("user asks a question"); modes describe deployment shape ("on Docker" vs "on Cloud Run").
If the user has uploaded a SOLUTION.md, README, OpenAPI spec, or any architecture description, read it first before asking questions. Extract:
Then ask ONLY the gaps. Don't ask things already in the doc.
If there's no doc, ask the user briefly:
Before writing code, sketch on paper (literally in your head or a scratch file) WHICH services exist, WHERE they sit relative to each other, and WHICH flows connect WHICH nodes. Avoid wire crossings — this is the single biggest readability win. See references/flow-design-patterns.md for layout heuristics.
Quick rules:
Copy assets/template.html to the working directory. It's a fully working drop-in: dark theme, side panel, player controls (play/pause/step), keyboard shortcuts, animated SVG packets, mode toggle. Edit only these regions (the template's top EDIT THESE THINGS comment is the authoritative list):
<title> + <h1> — replace {{SYSTEM_NAME}} and the header text. For a Polish (or other non-English) diagram also set <html lang="pl">..modepick buttons — mode toggle labels (or remove the whole .modepick if single-mode; the panel badge and O key adapt). Three or more modes are fine — O cycles through them..flowtabs — one .flowtab per scenario; data-flow must match a flows key. Tab order = keyboard digits 1–9; nothing else to keep in sync..node divs in .stage — one per service: data-id, data-role, style="left/top", label, tech, port.flows object in JS — one entry per scenario, each with an ordered steps[] array. Set state.mode / state.flow to the keys you want shown first (an unknown key falls back to the first button and logs a warning).Conditional: update the .legend only if your roles differ from the defaults; recolor :root CSS variables only for a restyle. After editing, search the file for {{ to catch any stray {{SYSTEM_NAME}}/{{FLOW_*}} placeholders — the page also lints itself at boot and prints any leftover placeholder, unknown node id, or tab/flow mismatch to the browser console (window.archValidate() returns the same list).
Don't reinvent the CSS, the player, the SVG wire renderer, or the side panel — they all work.
After generating, do this self-check:
to of two consecutive steps? That's fine if it's a loop, but check the description explains why.architecture.md? (Required — see Step 6.)If puppeteer-core and a Chrome/Chromium binary are available, run node references/screenshot.js architecture.html. It captures desktop + phone previews, prints the page's own integrity warnings, and exits non-zero if the diagram threw a JavaScript error — treat a non-zero exit as "fix the HTML before showing it".
Always two files:
architecture.html — the interactive diagramarchitecture.md — text description (components, flows step-by-step, mode differences, scenarios for the workshop)Save to the current working directory. Platform-specific overrides:
/mnt/user-data/outputs/ insteadBoth should be self-sufficient — someone can read the markdown without opening the HTML, and vice versa.
Tell the user where the files were saved and how to open them (open architecture.html on macOS, xdg-open architecture.html on Linux, or just open in browser). If present_files is available (Claude.ai), call it to display the HTML first, then the markdown.
| File | When to read |
|---|---|
assets/template.html | Always. This is the starting point you copy and modify. |
assets/css-tokens.css | If user asks to restyle (e.g. light theme, different brand colors). Standalone tokens you can splice into existing CSS. |
references/flow-design-patterns.md | When planning a new system from scratch. Heuristics for node placement, naming flows, sequencing steps, choosing modes. |
references/component-library.md | When building the nodes list. Copy-paste node snippets for User/API/DB/Queue/Cache/LLM/Cron/External/etc. with proper roles and icons. |
references/screenshot.js | When you want to spot-check the result before showing the user. Run with node if puppeteer-core is installed. |
examples/rag-eskadra-bielik.json | Reference example: a real RAG system with 5 flows and offline/online modes. Read for topology layout, offline/online mode design (per-node tech/port swapping), and flow decomposition via step_outline. Payload/chip conventions are in the sections below, not the examples. |
examples/auth-oauth2.json | Reference example: an OAuth2 + session flow with dev/prod modes. Shows redirect flows and external IdP nodes. |
examples/event-driven.json | Reference example: event-driven microservices with Kafka, showing async fan-out flows. |
examples/cicd-pipeline.json | Reference example: CI/CD pipeline with GitHub Actions, staging/prod modes, rollback flow. |
examples/agentic-tool-calling.json | Reference example: agentic AI system with tool calling, single-agent vs multi-agent modes. |
The examples/*.json files are planning specs, not drop-in code — JSON outlines you translate into the template's HTML nodes + inline JS flows object. See references/flow-design-patterns.md → "Example JSON → template mapping" for the field-by-field translation.
Hardcoded in CSS variables in template.html. Pick one per node:
| Role | Color | Use for |
|---|---|---|
user | mint #46f9b8 | Browser, mobile client, end user, CLI user |
orch | sky #6aa9ff | API gateway, orchestrator, BFF, controller |
compute | magenta #ff6b8a | LLM, ML model, expensive compute |
embed | amber #ffc14d | Embedding service, transformer, preprocessor |
vector | violet #b388ff | Database (any), vector store, cache, blob storage |
seed | orange #ff9457 | Cron, one-shot job, migration, seed, scheduled task |
If you need more roles, add CSS variables. Keep the count ≤ 6 — past that, the legend becomes a colorblind nightmare.
If your system has e.g. two distinct datastores (Postgres + Redis), still use vector for both but distinguish via the icon and label, not by inventing a 7th color.
This is the most important didactic mechanic in the diagram. Understand it before modifying the JS or CSS, or you'll break the "click a flow tab, see the whole path" intuition.
When a user picks a flow tab and lands on step N, every node and wire is classified into one of these states:
| Element | State | Looks like | When |
|---|---|---|---|
| Node | active | Full ring + glow + step-number badge | Target of current step (e.g. LLM when step says "Orch → LLM") |
| Node | active-from | Soft ring, no badge | Source of current step |
| Node | participant | Near-full opacity, slightly desaturated | Appears anywhere else in this flow, just not in this step |
| Node | dimmed | 25% opacity, washed out | Not in this flow at all (e.g. seed during a login flow) |
| Node | hidden | Invisible | Mode-excluded entirely (e.g. seed node in online mode) |
| Wire | active | Bright role color, glow, packet animating | The wire of the current step |
| Wire | preview | Role color at 50% opacity, dashed | Belongs to this flow but not the active step — shows the full path ahead |
| Wire | muted | ~8% opacity | Doesn't belong to this flow |
Why participant matters (and the JS/CSS implementation gotchas) is detailed in references/flow-design-patterns.md → "The participant state". Short version: it lets a viewer see the whole path on the first click, instead of stepping through to discover which nodes a flow uses — that's the entire point of the diagram. If you add node states, keep applyStep and the CSS (.node.participant, .wire.preview) consistent.
The diagram supports five ways to interact, in increasing order of viewer expertise:
| Interaction | What happens | Who uses it |
|---|---|---|
| Click flow tab | Jump to the first playable step of that flow, side panel updates | Everyone |
| Click Next/Prev (or →/←, Space) | Advance/rewind one step; Play at the end restarts the flow | Workshop attendees walking through |
| Click a node | Jump to the first step where this node appears | Curious viewers exploring |
| Drag a node (mouse/pen) or Shift+Arrows on a focused node | Reposition the node on the canvas; wires redraw live; layout saved per browser | Layout tweakers / presenters |
| Fullscreen (F) | Canvas fills the screen with the controls bar on top, flow tabs at the bottom, and the side panel as an overlay; Escape or the same button exits | Workshop presenters |
Node click vs drag. A 5px movement threshold distinguishes a click (jump to step) from a drag (reposition). On touch screens nodes are tap-to-jump only, so swiping over a node still scrolls the page.
Node click is the easiest to miss when modifying the skill. Three things must be in place:
cursor: pointer on .node (visual affordance — "this is clickable"):hover state that reveals the role color (confirms interactivity)findIndex on the current flow's steps and jumps thereIf a node isn't part of the current flow (.dimmed state), clicking it shakes the node instead of doing nothing. Silent ignore is bad UX — the viewer thinks the page is broken.
Keyboard accessibility: nodes have tabIndex=0, Enter/Space triggers the same action as click, Shift+Arrows moves the node one grid cell. Step changes are announced through a live region. Single-key shortcuts can be switched off via the "shortcuts on" link under the tabs (WCAG 2.1.4).
Don't break this when adding features. It's the only way for a viewer to think "wait, where is the LLM used?" and find out instantly. Without it, they'd have to step through all 8 steps just to discover one node's role.
Payloads in the side panel are monospace + minimal syntax highlight. Keep them realistic but trimmed — show the shape, omit boring fields:
{
payloadOffline:
`POST /ask
{
"query": "Ile kosztuje parking?",
"limit": 3,
"temperature": 0.7
}`
// avoid: full HTTP headers, User-Agent, 50-line bodies — show only the shape
}Use 4-space indent, no tabs. Use // comments for inline annotations.
If a step is the same in both modes, use payload (single key). If they differ, use payloadOffline + payloadOnline (or whatever the mode names are: payload + capitalized mode key, so mode prod → payloadProd). The mode-specific key wins when both are present — handy for "generic payload, one mode overrides it". Same rule for chips / chipsOffline. An object instead of a string is pretty-printed as JSON.
desc accepts inline HTML only: <em>, <strong>, <code>, <kbd>, <br>, <a href="https://…">. Everything else is stripped at render time (block tags unwrap, scripts/iframes are dropped) — keep descriptions to a sentence or three.
Chips below the payload are short metadata labels. Two semantic types auto-style themselves:
/\d+\s*(?:ms|s|min)\b/) — gets a stopwatch icon, e.g. "~150ms", "5-30s", "timeout 120s"/dim|×|loaded|rules|count/) — gets a database icon, e.g. "768 dim", "38 loaded", "×N""COSINE", "baseline", "idempotent", "UUID5"Maximum 3 chips per step. They're hints, not specifications.
| Thing | Convention | Example |
|---|---|---|
| Flow key in JS | snake_case | ask, ask_direct, ingest_text |
| Flow display name | "Title Case (METHOD /route)" | "RAG Query (POST /ask)" |
Node data-id | snake_case, short | orch, vector, embed |
| Mode key | snake_case, descriptive | offline/online, dev/prod, v1/v2 |
| Step title | Polish or English, depending on workshop language. Consistent within one file. | "Pytanie z UI" or "Question from UI" |
</script> in any string breaks everything. If a payload, desc, title, or chip contains the string </script> (e.g. showing an HTML snippet), the browser's HTML parser treats it as the closing tag for the main <script> block — killing all JS. Escape it as <\/script> or </script> inside template literals. This also applies to </style> and similar closing tags.
The page lints itself. Open the browser console (or run references/screenshot.js): warnings list unknown node ids in steps, flow tabs without a flows entry (and vice versa), unknown onlyMode / data-modes values, missing title/color, and leftover {{PLACEHOLDERS}}. A clean console is part of "done".
Content Security Policy. The template ships a CSP <meta> that allows only inline script/style and Google Fonts. If a user asks for an external image, script, or font, extend the matching directive (or they'll see a blocked request in the console).
Source node looks dead. If a step's source node renders dimmed instead of active-from, you regressed the participant logic — see "Visual states".
Wire crossings. Caused by node placement, not code — swap node positions to fix. (The template auto-curves wires in alternating directions per step index, which helps but won't fix a bad layout.)
Too many flows. More than 6 flows clutters the tab bar. If you have 8+, group them: one diagram per group (e.g. "read flows" vs "write flows" as two separate HTML files).
Modes that aren't really modes. If the toggle changes the entire topology (different services, different protocols), it's not a mode — it's a second system. Build two HTML files.
Static screenshots beat live diagrams sometimes. If the diagram will end up in a PDF report, a slide deck, or a printed handout, this skill is the wrong choice — produce a static diagram instead. This skill is for interactive consumption in a browser.
Forgetting the .md. The HTML is the showpiece, but the .md is what people read on GitHub, paste into Slack, and grep for endpoint names. Always generate both.
Polish vs English. Match the workshop language. Bilingual settings typically use Polish for internal workshops and English for client deliverables. Ask if unsure.
If a user asks for something the template doesn't support, here's the difficulty ranking:
| Request | Difficulty | Where to edit |
|---|---|---|
| New node | trivial | Add .node div, position via left/top % |
| New flow | trivial | Add entry to flows object |
| Different brand colors | small | Edit CSS variables in :root (see assets/css-tokens.css) |
| Light theme | built-in | Click the moon/sun button or press T. To make light the default, add class="light" to <body>. |
| Drag-and-drop nodes | built-in | Already supported — drag any node (mouse/pen) or Shift+Arrow a focused one; positions snap to a 48px lattice and persist in localStorage (keyed by page title + node-id set — give each diagram a unique title). |
| Fullscreen mode | built-in | Press F or click the expand icon. Controls bar, flow tabs and the side panel stay reachable; Escape or the button exits. |
| Self-step (internal work) | built-in | A step with from === to draws a loop above the node. |
| Three or more modes | small | Add a button to .modepick; add payload<Mode> / chips<Mode> / data-*-<mode> fields. O cycles through all modes automatically. |
| Layout reset | built-in | Press R or click the ↻ button (appears after any drag). |
| Progress bar | built-in | Thin bar below player shows step position in current flow. |
| Flow note line | built-in | Set note on a flow (and onlineNote on an onlyMode flow); it renders under the player. |
| Reduced motion | built-in | Honors prefers-reduced-motion: the flying packet is hidden and transitions collapse. |
| Parallel steps (two simultaneous wires) | medium | Group steps as {parallel: [step, step]}; player advances both |
| Branching flows (if-then-else) | hard | Currently linear. Either fork into separate flows or add a branch field with UI for picking the branch. |
| Saving state in URL | small | Hash-based: #mode=online&flow=ask&step=3 — parse in boot, update on changes |
Don't promise features the template doesn't support without flagging the work involved.
When the user gives feedback like "the diagram is too cramped" or "step 5 is confusing":
.legend font-size and gap.© konraddzbik, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 10 other files (references, assets) in skills/architecture-diagram of konraddzbik/architecture-diagram-skill.
Open the folder on GitHubat commit cd94e97
Architecture Diagram next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Architecture Diagram this skillkonraddzbik/architecture-diagram-skill | 115 | — | ~5.7k | Automated safety check: Pass | MIT | |
| Pretty Mermaid Rendererimxv/Pretty-mermaid-skills | 1.5k | — | ~2k | Automated safety check: Pass | MIT | |
| Diagram Generatorzhaoxuya520/reverse-skill | 41k | 1 repos | ~2.3k | Automated safety check: Warn | MIT | |
| Chatbot Mvp Distillationpdsuwwz/chatgpt-vue3-light-mvp | 579 | — | ~722 | Automated safety check: Pass | MIT | |
| Chatbot Mvp Distillation Zhpdsuwwz/chatgpt-vue3-light-mvp | 579 | — | ~414 | Automated safety check: Pass | MIT | |
| Markdown Mermaid WritingK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~4.2k | Automated safety check: Notes | Apache-2.0 |
imxv/Pretty-mermaid-skills
Writes and renders Mermaid diagrams as themed SVG, PNG or terminal ASCII and Unicode art with a bundled Node.js CLI that needs no browser.
zhaoxuya520/reverse-skill
Turns text, notes, code, schemas or tables into diagram source in Mermaid, Graphviz DOT, PlantUML or SVG, and renders files when you ask for an image or PDF.
pdsuwwz/chatgpt-vue3-light-mvp
Distill the chatgpt-vue3-light-mvp project into reusable architecture for building similar ChatGPT-style web products in other repositories.
pdsuwwz/chatgpt-vue3-light-mvp
将 chatgpt-vue3-light-mvp 项目蒸馏为可迁移到其他项目的中文架构指南。适用于设计或实现类似 ChatGPT 的 Web 对话产品,包括 SSE/fetch 流式响应、模型适配器契约、打字机渲染、Markdown/代码/KaTeX/Mermaid 渲染、推理过程展示,以及从本 Vue 3 MVP 迁移到其他项目的方案规划。
K-Dense-AI/scientific-agent-skills
Writes scientific Markdown documentation and Mermaid diagrams for workflows, relationships, timelines, and schemas.
digoal/blog
生成面向学生的公理/定理深度讲解文案,输出图文并茂的 Markdown 文章。触发条件:用户输入一个观点、公理、定理或数学/科学/哲学命题,并希望获得系统性讲解文章。关键词包括:"讲解"、"解释"、"公理"、"定理"、"原理"、"推导"、"怎么来的"、"有什么用"、"证明"等。即使用户只说"帮我讲讲XX定理"或"解释一下XX原理",也应使用本 skill。输出保存到项目 markdown/…
Works with
Categories
Build interactive, click-through architecture diagrams for software systems — a self-contained single HTML file with animated step-by-step flows, mode toggles (dev/prod, offline/online, v1/v2)…. Architecture Diagram is an agent skill from konraddzbik/architecture-diagram-skill. Build interactive, click-through architecture diagrams for software systems — a self-contained single HTML file with animated step-by-step flows, mode toggles (dev/prod, offline/online, v1/v2), dark/light theme, and a side panel with payload details, plus a companion markdown description.
Architecture Diagram fits situations like: the user wants to visualize; design a system: architecture diagram; RAG/agentic flow; microservices topology.
Run `npx skills add konraddzbik/architecture-diagram-skill --skill architecture-diagram -a claude-code`. Or copy the skill folder (skills/architecture-diagram in konraddzbik/architecture-diagram-skill) into .claude/skills/architecture-diagram in your project. Claude Code loads it when a task matches its description.
Run `npx skills add konraddzbik/architecture-diagram-skill --skill architecture-diagram -a codex`. Or copy the skill folder (skills/architecture-diagram in konraddzbik/architecture-diagram-skill) into .agents/skills/architecture-diagram in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add konraddzbik/architecture-diagram-skill --skill architecture-diagram -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/architecture-diagram, .gemini/skills/architecture-diagram, .github/skills/architecture-diagram and .opencode/skills/architecture-diagram in your project.
Going by SKILL.md and its folder, Architecture Diagram needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node). Our summary lists: Node.js; Docker.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Architecture Diagram is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.7k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 10k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Architecture Diagram: Pretty Mermaid Renderer (imxv/Pretty-mermaid-skills, 1.5k stars), Diagram Generator (zhaoxuya520/reverse-skill, 41k stars), Chatbot Mvp Distillation (pdsuwwz/chatgpt-vue3-light-mvp, 579 stars) and Chatbot Mvp Distillation Zh (pdsuwwz/chatgpt-vue3-light-mvp, 579 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
konraddzbik (a GitHub user) maintains it in konraddzbik/architecture-diagram-skill, which has 115 GitHub stars. The repository was last updated on October 10, 2026.
Source: konraddzbik/architecture-diagram-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.