Structurizr CLI
Convert from any graph formatto Structurizr CLI Convert from Structurizr CLIto any other format
Structurizr is a "diagrams as code" toolset for software-architecture modelling, created by Simon Brown, who also authored the underlying C4 model. Rather than drawing boxes by hand, a user describes a single architecture model in text and generates multiple consistent, version-controllable diagrams from it. The family includes a cloud/on-premises server (commercial), a lightweight local web application called Structurizr Lite for previewing and editing a single workspace, and the Structurizr CLI, a command-line tool for scripting and CI pipelines. As of the current documentation, Structurizr Lite and the standalone CLI are marked end-of-life in favour of the server product, though the export libraries remain open source.
The core artefact is a workspace, whose model is fundamentally a graph: nodes are elements (person, softwareSystem, container, component, plus deploymentNode instances for infrastructure) and edges are directed relationships between them. On top of this single graph the author defines views — system context, container, component, dynamic, and deployment diagrams — that each select and lay out a subset of elements, following the four hierarchical levels of the C4 model. Tags, styles, and themes control notation. The model is authored either in the text-based Structurizr DSL (format:structurizr-dsl) or as the equivalent Structurizr JSON workspace format, which the DSL compiles to.
In the graph-data and format-conversion world, Structurizr's role is that of a source model with many one-way exporters. The CLI's export command emits PlantUML (both the native and C4-PlantUML dialects) and format:plantuml, format:mermaid, WebSequenceDiagrams, DOT/Graphviz (format:dot), format:d2, and Ilograph YAML, as well as static HTML and JSON. This lets the same DSL feed downstream renderers such as tool:graphviz, Kroki (tool:kroki), or PlantUML-based pipelines, keeping diagrams in sync from one text source. Other CLI subcommands handle push/pull, validate, inspect, merge, and workspace lifecycle operations against a server.
Strengths are its tight, opinionated grounding in C4, a compact and readable DSL, strong Git-friendliness, and broad export coverage that interoperates with common text-diagram formats. Limitations are equally clear: exports are one-directional, so there is no round-tripping back from PlantUML, Mermaid, or DOT into the model; PNG/SVG rendering depends on a browser and is not available from the CLI; the model is specialised for software architecture rather than general-purpose graph data; and the deprecation of Lite and the CLI creates uncertainty for existing tooling built on them.
Input Formats
Frequently Asked Questions
What graph file formats does Structurizr CLI support?
See the list on this page — it shows every format Structurizr CLI can read, write and display.
How do I import a graph into Structurizr CLI?
Convert your file to a format Structurizr CLI can read, then open it in Structurizr CLI. Use GraphInOut to get a Structurizr CLI-compatible file in seconds.
How do I convert a file so Structurizr CLI can open it?
Use the convert links above — upload or paste your graph, pick a format Structurizr CLI accepts and download the result, right in your browser.
