← Package directory
Available on winget

Install D2

A modern diagram scripting language that turns text to diagrams.

Install with winget
winget install --id Terrastruct.D2
Upgrade
winget upgrade --id Terrastruct.D2
Uninstall
winget uninstall --id Terrastruct.D2

About D2

A modern diagram scripting language that turns text to diagrams.

What's new in 0.7.1

Features πŸš€ - ASCII renders. Output txt for d2 to render diagrams as ASCII art #2572 - cross arrowhead shape is available #2190 - style.underline support for class fields and methods #2544 - markdown, latex, and code can be used as edge labels #2545 - border-x label positioning functionality #2549 - tooltips with near set always show even without hover #2564 - CLI supports customizing monospace fonts with --font-mono, --font-mono-bold, --font-mono-italic, and --font-mono-semibold flags #2590 Improvements 🧹 - labels on scenario/step boards can be set with primary value (like layers) #2579 - autoformatter preserves order of boards #2580 - rename "Legend" with a title/label of your choosing (especially useful for non-English diagrams) #2582 - sketch mode fonts will use custom fonts if provided #2582 Bugfixes ⛑️ - actors in sequence diagrams with labels and icons together no longer overlap, position keywords now work too #2548 - fix double glob behavior in scenarios (wasn't propagating correctly) #2557 - fix diagram bounding box not accounting for legend in some cases #2584 Breaking Changes - If you are using D2 as a library/API, passing in a FontFamily with sketch renders will now use the font, instead of previously ignoring it. For the latest d2.js changes, see separate changelog.

Read release notes

Version history

Version Updated Notes
0.7.1 Unknown Features πŸš€ - ASCII renders. Output txt for d2 to render diagrams as ASCII art #2572 - cross arrowhead shape is available #2190 - style.underline support for class fields and methods #2544 - markdown, latex, and code can...
0.7.0 Unknown Features πŸš€ - Icons: - connections can include icons #12 - Syntax: - suspend/unsuspend to define models and instantiate them #2394 - Globs: - support for filtering edges based on properties of endpoint nodes (e.g., &src.s...
0.6.9 Unknown Features πŸš€ - Animations: style.animated: true is supported on shapes #2250 - Connections now support link #1955 - Vars: vars in markdown blocks are substituted #2218 - Markdown: Github-flavored tables work in md blocks #...
0.6.8 Unknown Features πŸš€ - Render: SVG files render in non-browser contexts (e.g. Inkscape, LaTeX) #2147 Improvements 🧹 - Lib: removes a dependency on external slog that was causing troubles with installation #2137 - CLI: attempts wri...
0.6.5 Unknown D2 0.6.5 has a hotfix for 0.6.4 breaking plugin compatibility. Also includes 2 compiler fixes regarding substitutions/vars.Bugfixes ⛑️ - Fix executable plugins that implement standalone router #1910 - Fix compiler error...
0.6.3 Unknown D2 0.6.3 allows you to make your own and customize existing D2 themes. Here's an example with some random color codes.See docs Playground link Features πŸš€ - Themes can be customized via d2-config vars. #1777 Improvements...
0.6.1 Unknown No notes
0.6.0 Unknown No notes
0.5.1 Unknown No notes
0.5.0 Unknown Features πŸš€ - D2 files have the ability to import from other D2 files. See docs. #1371 - sql_table alternatively takes an array of constraints instead of being limited to a single one. Thanks @satoqz ! #1245 Improvements...
0.4.2 Unknown No notes
0.4.1 Unknown No notes
0.4.0 Unknown No notes
0.3.0 Unknown No notes
0.2.6 Unknown No notes
0.2.5 Unknown No notes
0.2.4 Unknown No notes
0.2.3 Unknown No notes
0.2.2 Unknown No notes
0.2.1 Unknown No notes