Write plain-text .dgmo files, get clean, themeable diagrams and charts. One markup language, 50+ chart types — flowcharts, sequence diagrams, ER, org charts, C4, gantt, maps, bar/line/pie, and a lot more.
Render DGMO diagrams to PNG or SVG from the terminal, and wire the DGMO MCP server into AI editors.
That's a complete diagram. No coordinates, no XML, no drag-and-drop — just text you can diff, review, and version like any other source file.
Author it visually
Want a richer editing experience than a text file? The Diagrammo desktop app (native macOS, offline, auto-updating) and the online editor (any browser, nothing to install) turn DGMO into a full authoring environment:
Live preview — the diagram redraws as you type
Smart editing — syntax highlighting, autocomplete, and optional vim keybindings
7 themeable palettes, each with light / dark / transparent variants
One-click export to PNG or SVG, plus instant shareable links
Local-first — your .dgmo files are plain text on disk, work fully offline, and never go stale the way an exported image does
Because every diagram is just text, it lives in git, diffs cleanly in PRs, and drops straight into your docs, your AI tools, or any web page.
Homebrew and Arch/Omarchy (pacman) installs of the CLI are listed at diagrammo.app/dev.
CLI
dgmo # creates a sample.dgmo to get you started
dgmo diagram.dgmo # → diagram.png
dgmo diagram.dgmo -o out.svg # → SVG (format from extension)
cat diagram.dgmo | dgmo > out.png # pipe in, PNG to stdout
dgmo diagram.dgmo --theme dark --palette catppuccin
Flag
Values
Default
--theme
light, dark, transparent
light
--palette
one of 7 palettes (see below)
slate
-o
output path (.svg → SVG, else PNG)
<input>.png
Library
Render any diagram to an SVG string — no browser, no visible DOM:
render() auto-detects the chart type and dispatches to the right engine. Need the lower-level parsers, config builders, and per-type renderers? They live under the @diagrammo/dgmo/advanced subpath — see the docs for the full surface and stability contract.
Drop into any web page
Add one <script> tag and every <pre class="dgmo"> block renders on load:
Theme detection, copy button, and "open in editor" come for free. Full config, framework recipes (Astro, Docusaurus, Hugo, MkDocs), self-hosting, and CSP guidance: diagrammo.app/embed.
Claude, Cursor, Codex, and other agents can author and render DGMO directly. One command sets up every assistant you have — no second package, no prompts:
dgmo install
It auto-detects Claude Code, Codex, Claude Desktop, Cursor, Windsurf, and Copilot and wires each one to the bundled MCP server. More: diagrammo.app/ai.
Chart types
Data charts — bar · line · area · pie · doughnut · radar · polar-area · bar-stacked · multi-line · scatter · heatmap · funnel · sankey · chord
Register your own with registerPalette(). Color helpers (getPalette, tint, mute, contrastText, …) and Mermaid theme-variable generation ship from the package too — see the docs.
Editor support
Syntax highlighting and autocomplete for .dgmo files ship as ready-to-use exports: