MrTechKing

5 min read

Diagram Design: Clean, On-Brand Diagrams From Your Coding Agent (GitHub, Scanned)

An agent skill that draws 50 kinds of diagram as one self-contained HTML and SVG file, styled to match your brand.

Diagram Design logo
✅
Scan: safe. Nothing malicious and no telemetry. The critical advisories are in the project's own CI test tooling, not in the skill you install. Scanned Nov 13, 2026; the full report is below.

Diagram Design gives your coding agent an eye for diagrams. Ask in plain words for an architecture diagram, a quadrant of projects by impact and effort, or a sequence of an API call with token refresh, and the agent picks one of 50 diagram types, states its plan and writes a single HTML file with inline SVG that you open by double-clicking. The look is deliberately editorial: no drop shadows, no rounded-box clutter, one accent colour.

It can match your brand. Point it at your website once and it pulls your palette and fonts, checks the text contrast, and saves the result as a profile, so every diagram after that fits your site. It can also redraw existing draw.io, Mermaid, Excalidraw or PlantUML files in its style, and export PNG or SVG. Types run from flowcharts, sequences and ERDs to Wardley maps, kanban boards, exploded product views and biology pathway maps.

It works with Claude Code, Codex, GitHub Copilot, Cursor, Factory Droid, Qoder, Pi and other Agent Skills hosts. It is by Cathryn Lavery, MIT-licensed, with about 67,000 stars and 75 contributors since April 2026. Its README is frank that output depends on your model and is not an editable source format.

Who it is for

Developers documenting systems, product and engineering leads preparing reviews, writers and founders who need clean diagrams for posts and decks, and anyone tired of default Mermaid output. You need a coding agent.

Getting started

1. Install the skill into your agent (Node 18 or later)

npx skills add cathrynlavery/diagram-design

2. Or in Claude Code, add the marketplace for updates and slash commands

/plugin marketplace add cathrynlavery/diagram-design

3. Then install the plugin

/plugin install diagram-design@diagram-design

4. Ask for a diagram

Make me an architecture diagram of my app: frontend, backend, database, Redis cache.

Diagrams load their fonts from Google Fonts when opened, which shows Google the viewer's IP address; remove the font link or open them offline to avoid that. PNG export needs Playwright and a headless browser.

Safety scan

We cloned cathrynlavery/diagram-design at commit f6db0de on Nov 13, 2026 and ran the checks described on the GitHub Tools page: credential patterns, decode-and-execute code, install-time scripts, committed binaries, risky CI workflows, every host the code talks to, known vulnerabilities in pinned dependencies, and project hygiene. A person read every hit. This is what we found.

  • No secret hits, no pattern hits and no committed binaries across 763 files and about 134,000 lines, mostly Python scripts and HTML examples.
  • 62 advisories, 5 critical and 37 high, all in .github/ci, the lockfiles the maintainers use to run tests. 61 are in the CI copy of Pillow 12.1.1 (the criticals are image-decoding memory bugs) and 1 high is in a CI-pinned Claude Code. The skill's own scripts do not import Pillow; PNG export uses whatever Playwright you install yourself.
  • The extra pass for skill repos found only test material. The injection phrases are adversarial fixtures that check imported Mermaid, draw.io, Excalidraw and PlantUML text is treated as plain labels, never instructions. No hidden characters, exfiltration hosts, credential paths, pipe-to-shell or hook files.
  • PRIVACY.md says the skill has no server, accounts, analytics or telemetry, and the code matches. The hosts are Google Fonts, GitHub, a plugin schema URL in a build script, logo sources for icons, and test domains such as evil.example.
  • Four workflows, no pull_request_target, and both third-party actions are pinned to commits. A security policy, Dependabot, contributing guide and code of conduct are present.

What the scanner counted

CheckResult
SecretsNone found.
Suspicious codeNone found.
Install-time codeNone: nothing runs at install beyond the package manager itself.
Committed binariesNone.
CI workflows4 workflows. None use pull_request_target. 0 of 2 third-party actions pinned to a tag rather than a commit.
Network hosts20 distinct hosts referenced from source; most often example.invalid, fonts.googleapis.com, github.com, evil.example. No URLs to bare IP addresses.
Known vulnerabilities62 advisories across 15 pinned packages: 5 critical, 37 high, 20 moderate, 0 low. .github/ci/node/package-lock.json: 9 packages, 1 advisories; .github/ci/python/uv.lock: 6 packages, 61 advisories.
Project hygieneHas security policy, automated dependency updates, licence file, contributing guide. Missing CodeQL.
OpenSSF ScorecardNot scored: the project is not in Scorecard's weekly index.

The raw findings

Every hit the scanner wrote out, with a link to the exact line at the scanned commit. Secrets candidates are redacted.

Worst known vulnerabilities (24 of 62)
AdvisorySeverityPackageSummary
GHSA-332p-7hrc-92wfcriticalpillow@12.1.1Pillow: Heap buffer overflow in _tiffWriteProc when saving TIFF to BytesIO
GHSA-5x8w-8jj5-q52hcriticalpillow@12.1.1Pillow: Heap buffer overflow in FlashPix (FPX) JPEG decoding leads to code execution
GHSA-8g5g-8vmr-9782criticalpillow@12.1.1Pillow: Heap buffer overflow in ImagingJpegDecode
GHSA-v9pv-5gc8-w2m6criticalpillow@12.1.1Pillow multi-frame loaders can reuse stale native image storage after mode transitions
GHSA-w889-685w-c8fhcriticalpillow@12.1.1Pillow: Argument Injection in Ghostscript call, potentially leading into RCE
GHSA-5xjx-9qx6-jcrvhigh@anthropic-ai/claude-code@2.1.229Claude Code: TOCTOU Race in Edit Tool Allows File Writes Outside the Workspace
GHSA-22hg-r758-rrw9highpillow@12.1.1Pillow: Infinite loop in MIC n_frames when the embedded TIFF
GHSA-27h8-gf7j-v5hchighpillow@12.1.1Pillow: NULL dereference in ImagingExpand via rank filters on zero-size images
GHSA-3j72-p6qg-6xp7highpillow@12.1.1Pillow: TarIO negative size field causes infinite CPU-spin loop
GHSA-45hq-cxwh-f6vchighpillow@12.1.1Pillow `BdfFontFile`: `Image.new()` called without `_decompression_bomb_check()` - bomb protection bypass via font loadi…
GHSA-58r4-6rv3-gfh8highpillow@12.1.1Pillow: Out-of-bounds access in _imagingmorph on a zero-width image
GHSA-5x94-69rx-g8h2highpillow@12.1.1Pillow: `FontFile.compile()`: `Image.new()` called without `_decompression_bomb_check()`
GHSA-5xm2-6676-qcp9highpillow@12.1.1Pillow: APNG background disposal allocates full canvas before decompression bomb check
GHSA-62p4-gmf7-7g93highpillow@12.1.1Pillow: Out-of-bounds read via attacker-controlled row stride on Pillow's mmap path (McIdas AREA files)
GHSA-65qm-jvmh-6pqghighpillow@12.1.1Pillow: GIF seek keeps rejected size after DecompressionBombError, allowing DoS
GHSA-6r8x-57c9-28j4highpillow@12.1.1Pillow: Heap out-of-bounds write `Image.paste()` / `Image.crop()` via signed coordinate overflow
GHSA-78g4-xqwv-q3g8highpillow@12.1.1Pillow: Bundled libopenjp2 2.5.4 in all wheels since 11.1.0 carries OSV-2025-219 heap-buffer-overflow write reachable fr…
GHSA-7mwm-ghpf-9vrmhighpillow@12.1.1Pillow: Double free in ImagingScaleAffine on calloc failure via Image.transform
GHSA-8v84-f9pq-wr9xhighpillow@12.1.1Pillow `PcfFontFile._load_bitmaps()`: `Image.frombytes()` called without `_decompression_bomb_check()` - bomb protection…
GHSA-9hw9-ch79-4vh6highpillow@12.1.1Pillow: Controlled heap out-of-bounds write in Pillow `ImageCmsTransform.apply()` via output mode mismatch
GHSA-9v9v-9qvf-h2hjhighpillow@12.1.1Pillow: Heap over-read in WMF/EMF rendering via 16-bit dimension truncation (Windows builds)
GHSA-c6hw-5grf-ff96highpillow@12.1.1Pillow: OOB read in TiffDecode.c tile and RGBA paths leaks heap memory into pixels
GHSA-cp9v-662q-vvx9highpillow@12.1.1Pillow: NULL pointer dereference in Image.merge via an unvalidated band 0
GHSA-f2g6-542v-9j58highpillow@12.1.1Pillow: Infinite loop in PdfParser.rewrite_pages on page tree Parent cycle

By the numbers

Stars66.9K
Forks4,453
Contributors75
Commits465
Open issues17
Open pull requests18
Releases0
Latest releasenone tagged
LicenceMIT
Main languageHTML
Project age7 months
Last pushNov 12, 2026
Tracked files763
Lines of code133.8K
Checkout size33 MB

Lines by language: Python 75.6K, HTML 40.9K, Markdown 14.7K, YAML 1,342, JSON 1,313, TOML 12.

Questions

Is Diagram Design free?

Yes. It is free and MIT-licensed, with no account. Your only cost is your agent's usage.

Can I edit the diagrams afterwards?

You edit by asking the agent for changes. The output is a finished HTML and SVG file rather than an editable source format such as draw.io, and the README says so plainly.

Can it make diagrams match my company's brand?

Yes. Ask it to onboard your website and it reads your colours and fonts, checks contrast and saves a profile you can reuse across projects.

Diagram Design or Archify?

Both are diagram skills on this list. Diagram Design focuses on polished, on-brand static diagrams in many types. Archify makes interactive diagrams you can click through and trace.


This post is part of GitHub Tools, where every repository is cloned and scanned before it is written up. The scan is a snapshot of one commit on one day; the repository has moved on since, so check it before you install.