D2: Declarative Diagramming
Home | D2 Documentation
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.




























NETWORKUSERAPI SERVERLOGSCELL TOWERONLINE PORTALDATA PROCESSORSATELLITESTRANSMITTERUISTORAGE  SENDSENDSENDPHONE LOGSMAKE CALL  ACCESSDISPLAYPERSIST





















Feature highlightsProduction-ready themesThemes by professional designers, each unique. Effortlessly ready for blogs, wikis, and presentations.
    

    

    

    
PreprocessingMulti-GPUTrainingEvalInferenceOrchestratorData WarehouseProcessing PipelineNote: we can replace the orchestrator with Kubernetes when we run out of things to doFull workingpipelinePrimarySecondary       



Sketch modeOur take on a beautiful, hand-drawn aesthetic.john wickhenchman 1henchman 2big boss





john wickhenchman 1henchman 2big boss  shoots, misses






john wickhenchman 1henchman 2big boss  shoots, missesshoots, hits







john wickhenchman 1henchman 2big boss  shoots, missesshoots, hitsshoots, misses








john wickhenchman 1henchman 2big boss  shoots, missesshoots, hitsshoots, missesshoots, hits









john wickhenchman 1henchman 2big boss  shoots, missesshoots, hitsshoots, missesshoots, hitsinjures










john wickhenchman 1henchman 2big boss  shoots, missesshoots, hitsshoots, missesshoots, hitsinjuresshoots, hits











AnimationsD2 is the only language that can produce animated diagrams from text.planktonformula  will steal






LaTeXPerfect for academic use and research papers.好笑的猫咪跳舞， 在月亮下欢唱。 它踩在小青蛙头上， 嘴里嚼着苹果香。웃기는 고양이 날다, 달빛 아래 춤을 추다. 개구리 머리 밟다, 입 속 사과 향기 즐기다.  




Any languageMake diagrams in English, Chinese, French, or even emojis, D2 supports almost all languages.declare function getSmallPet(): Fish | Bird;
const works = (a > 1) || (b < 2)declare function getSmallPet(): Fish | Bird;
const works = (a > 1) || (b < 2)awsSession := From(c.Request.Context())
client := s3.New(awsSession)

ctx, cancelFn := context.WithTimeout(c.Request.Context(), AWS_TIMEOUT)
defer cancelFn()awsSession := From(c.Request.Context())
client := s3.New(awsSession)

ctx, cancelFn := context.WithTimeout(c.Request.Context(), AWS_TIMEOUT)
defer cancelFn()  




Code snippetsMade for software diagrams. Syntax highlighted code right in the diagram.MarkdownInclude longform explanations with Markdown.clouddisksidintPKblocksidintPKdiskintFKblobAWS S3 Vancouver  




TablesShow structured data like SQL tables.More featuresLocal 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 diagramMultiple 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 supportedSequence diagramsSequence diagrams are created by setting shape: sequence_diagramAdaptive dark modeDiagrams adjust color schemes to fit user preferences automatically, anywhere on the web.ExtensionsExplore official and community developed plugins and extensionsExportsOn the CLI, you may export .d2 into SVG, PNG, PDF.  More coming soon!Cheat sheetDownload our handy one-pager D2 syntax cheat sheetGet involvedChat on DiscordHangout, talk about diagrams, get help, give feedback and see early previews of what's coming next.Go to DiscordCheck 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