Head to head · Diagram as code · October 2026 research run

D2 vs PlantUML

PlantUML scores 66.9 (B) on agent readiness against D2's 65.3 (B), and leads in 3 of 7 scored categories. Both do diagram as code.

Which one, for what

D2 B

Good for Agents that need to produce or edit architecture, sequence, grid, SQL table or class diagrams as reviewable text and render them locally.

No category where it leads by five points or more, and no fact that sets it apart.

Watch for

No 1.0 release. The maintainer lists a stable 1.0 with a formal grammar as a goal, and 0.8.2 changed Dagre and ELK layout output

PlantUML B

Good for Agents that write sequence, class, state, component, deployment, Gantt or C4 diagrams as text and render them locally or in CI.

Ahead on

  • Reliability, 83 against 68

Watch for

The default security profile is LEGACY, which gives diagram text full access to local files and URLs through !include. The docs say it will be removed, with no date

Score by category

CategoryWeight this runD2PlantUMLEdge
Reliability16%206883PlantUML +15
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.26565even
Agent ergonomics13%16.27878even
Security & auth14%17.54850PlantUML +2
Payments & pricing10%12.56060even
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87473D2 +1
Transparency & trust7%8.86973PlantUML +4
Negative events≤150-2
Total65.3 · B66.9 · B

Facts side by side

FactD2PlantUML
KindSDK + MCPSDK + MCP
VendorD2 project (The Hack Foundation)PlantUML project (Arnaud Roques)
Hosted endpointno (local only)no (local only)
Transports
AuthNoneNone
PricingFreeFree
x402nono
LicenceMPL-2.0GPL-3.0-or-later
Read-only variant documentednono
llms.txtnono
Last release2026-09-072026-09-05
Terms last updatedno document linkedno document linked
Privacy policy last updatedno document linkedno document linked
Customer content may train models
Terms restrict automated access
Terms restrict benchmarking
Terms or service can change without notice
Arbitration or class-action waiver
Popularity26k stars, 22k npm/wk13k stars, 207 npm/wk

Verdicts

D2

A single local command turns text into a diagram in six formats with no account, key or network call, and CI passes on the default branch. The language is at 0.9.0 with no stable release, its company sponsor has shut down, and one maintainer with limited time wrote every commit since July.

PlantUML

One Java command reads diagram text from stdin and writes PNG, SVG, PDF or ASCII with no account, and CI passed on the last eight pushes. The default security profile lets diagram text read any local file and fetch any URL, and the documentation still lists chronology diagrams that release 1.2026.2 switched off.

Before you call either

D2

  1. Check the exit status of d2, never the output file. The man page says a partial render can be written when an error occurs
  2. Run d2 validate file.d2 before rendering, and d2 fmt to normalise the source
  3. Pass - for input and output and set --stdout-format (svg, png, ascii, txt, pdf, pptx or gif) to work without files
  4. Use --stdout-format ascii when the reader is a text-only model
  5. Pass --bundle=false or review image URLs and imports before rendering D2 text from an untrusted source. Release 0.9.0 fetches remote images when bundling

PlantUML

  1. Set PLANTUML_SECURITY_PROFILE to SANDBOX or ALLOWLIST before rendering text from an untrusted source. The default profile lets !include read local files and fetch URLs
  2. Run java -jar plantuml.jar --check-syntax with -stdrpt first and read the exit status. Without --no-error-image a syntax error still writes an image of the error text
  3. Pass -pipe with --svg, --txt or --utxt to work without files. --txt output suits a text-only model
  4. Start the local server as -picoweb:8080:127.0.0.1. Without the bind address it listens on every interface
  5. Use npx -y @plantuml/mcp-js when no Java runtime is present. It renders SVG only, so use the jar for PNG or PDF

Questions

Which is better for AI agents, D2 or PlantUML?

PlantUML scores 66.9 (B) on agent readiness against D2's 65.3 (B), and leads in 3 of 7 scored categories.

Are D2 and PlantUML open source?

Yes. D2 is open source (MPL-2.0). PlantUML is open source (GPL-3.0-or-later).

Other comparisons with D2 or PlantUML

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.