D2: Declarative Diagramming
A modern language that turns text to diagrams
Create beautiful diagrams in minutes. Simple syntax. Endlessly customizable. D2 is the fastest and easiest way to get a mental model from your head onto the screen, then make edits with your team.
Feature highlights
Production-ready themesThemes by professional designers, each unique. Effortlessly ready for blogs, wikis, and presentations.
Sketch modeOur take on a beautiful, hand-drawn aesthetic.
AnimationsD2 is the only language that can produce animated diagrams from text.
LaTeXPerfect for academic use and research papers.
Any languageMake diagrams in English, Chinese, French, or even emojis, D2 supports almost all languages.
Code snippetsMade for software diagrams. Syntax highlighted code right in the diagram.
MarkdownInclude longform explanations with Markdown.
TablesShow structured data like SQL tables.
More features
Local CLIRobust CLI with watch mode. Completely offline workflow.
Most major OS'sMacOS, Linux, and Windows. D2 is included in many popular package managers like Homebrew and Winget.
VSCode and VimOfficial editor support for VSCode and Vim, with more coming soon.
Online playgroundCreate and share diagrams quickly by going to our hosted Playground.
ContainersFirst-class support for containers (grouping shapes in other shapes).
Images and IconsImport any image or icon online into your diagram
Multiple layout enginesChoose from 3 layout engines that uniquely handle different types of diagrams.
Use any fontTo customize the font, simply pass in your own .ttf files.
ImportsModularize your diagrams like your code. Split models from views or dice it any way you want.
VariablesReuse values like colors, labels, and anything else for clean diagram code.
GlobsAll the power of wildcard globs you're already familiar with.
AutoformatDon't sweat style decisions like indentations and spacing, D2 has a built-in autoformatter.
Language APIProgrammatically create diagrams by calling D2's language API.
Interactive tooltips and linksHover over shapes to learn more, or click through to another page.
Class shapeUML Class diagrams are fully supported
Sequence diagramsSequence diagrams are created by setting shape: sequence_diagram
Adaptive dark modeDiagrams adjust color schemes to fit user preferences automatically, anywhere on the web.
ExtensionsExplore official and community developed plugins and extensions
ExportsOn the CLI, you may export .d2 into SVG, PNG, PDF. More coming soon!
Cheat sheetDownload our handy one-pager D2 syntax cheat sheet
Get involved
Chat on DiscordHangout, talk about diagrams, get help, give feedback and see early previews of what's coming next.Go to Discord
Check out our blogTechnical blog posts from the authors of D2 on a variety of topics from feature deep dives to how things were built.Go to blog