README file from
GithubDiagrammo Diagrams for Obsidian
Render Diagrammo diagrams inline in your Obsidian notes using ```dgmo code fences. Works on desktop and mobile.

Supported chart types
All 40+ chart types from @diagrammo/dgmo render in Obsidian:
| Category | Types |
|---|---|
| Data | arc, area, bar, bar-stacked, chord, doughnut, function, heatmap, line, multi-line, pie, polar-area, radar, sankey, scatter, slope |
| Business | cycle, funnel, journey-map, org, pyramid, quadrant, tech-radar, venn, wordcloud |
| Project | gantt, kanban, timeline |
| Software | boxes-and-lines, c4, class, er, flowchart, infra, mindmap, sequence, sitemap, state, wireframe |
Run Diagrammo Diagrams: Create example note with all chart types from the command palette to see every chart type rendered with working sample data. Full language reference at diagrammo.app/docs.
Usage
Write a fenced code block with the dgmo language tag:
```dgmo
bar Quarterly Revenue
x-label Quarter
y-label Revenue ($M)
Q1 4.2
Q2 4.8
Q3 5.1
Q4 5.9
```
The diagram renders inline in reading mode and live preview. Hover any rendered diagram to reveal a small open-in-new-tab icon in the top-right corner — click it to pop the source open in online.diagrammo.app for live editing, with the same palette and theme.
Example note
Open the command palette (Cmd/Ctrl + P) and run:
Diagrammo Diagrams: Create example note with all chart types
This creates a Diagrammo Examples.md file in your vault with working examples of every supported chart type.
Settings
| Setting | Description | Default |
|---|---|---|
| Palette | Color palette for all diagrams — all 10 dgmo palettes available (nord, solarized, catppuccin, dracula, rose-pine, gruvbox, monokai, tokyo-night, one-dark, bold) | nord |
| Theme | Light, dark, or auto (follows Obsidian's theme) | auto |
Install
From Obsidian Community Plugins (recommended)
The plugin is listed at community.obsidian.md/plugins/dgmo.
- Open Settings > Community Plugins > Browse
- Search for "Diagrammo Diagrams"
- Click Install, then Enable
With BRAT (beta / pre-release builds)
BRAT installs and auto-updates plugins straight from GitHub. Use it if you want to test unreleased changes before they hit the Community Plugins store.
- In Obsidian, open Settings > Community Plugins > Browse, install Obsidian42 - BRAT, and enable it
- Open Settings > BRAT > Beta Plugin List and click Add Beta Plugin
- Paste this repo URL:
https://github.com/diagrammo/obsidian-dgmo - Leave the version dropdown on Latest version and click Add Plugin
- Enable Diagrammo Diagrams under Settings > Community Plugins
Manual install
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create a folder:
<vault>/.obsidian/plugins/dgmo/ - Copy the three files into that folder
- Enable the plugin in Settings > Community Plugins
Development
Prerequisites
- Node.js 18+
Setup
npm install
Commands
npm run build # One-shot build → main.js (esbuild, CJS bundle)
npm run dev # Watch mode (rebuilds on save, inline sourcemaps)
The build bundles @diagrammo/dgmo and its rendering dependencies into a single main.js in the repo root, which Obsidian loads directly. obsidian, electron, and CodeMirror packages are externalized.
Project structure
src/
├── main.ts # Plugin lifecycle, markdown post-processor, example note command
├── render.ts # Rendering dispatcher (delegates each chart type to @diagrammo/dgmo)
├── settings.ts # Settings tab UI (palette dropdown, theme override)
└── examples.ts # Example note content with all chart types
Dependencies
@diagrammo/dgmo^0.14.1— diagram parsing and rendering (bundled by esbuild; brings its own transitive rendering deps)obsidian^1.12.3— Obsidian plugin API (dev only, externalized)
Testing locally
- Run
npm run dev(watch mode) - Symlink or copy the repo into your vault's
.obsidian/plugins/dgmo/folder - Enable the plugin in Obsidian settings
- Edit a note with a
```dgmocode fence — changes rebuild automatically
Releasing
GitHub release
- Bump
versionin bothpackage.jsonandmanifest.json(must match) - Build:
npm run build - Commit and push
- Create a GitHub release with tag
<version>(e.g.,1.0.1) - Attach these files to the release:
main.jsmanifest.jsonstyles.css
Obsidian Community Plugins
The plugin is listed in the Obsidian Community Plugins registry. New versions are picked up automatically from GitHub releases — just publish a new release with the required files attached.
Links
- community.obsidian.md/plugins/dgmo — official Obsidian plugin page
- diagrammo.app — full desktop editor
- @diagrammo/dgmo — the dgmo markup library and CLI
- dgmo syntax reference
License
MIT