@diagrams-js/cli
CLI for diagrams-js - render, import, export, diff, and manage architecture diagrams from the terminal.
Installation
Install globally with npm:
npm install -g @diagrams-js/cli
diagrams render diagram.ts
Alternatively, install locally in your project:
npm install @diagrams-js/cli
npx diagrams render diagram.ts
Or use directly with npx:
npx @diagrams-js/cli render diagram.ts
Usage
Render a diagram
diagrams render diagram.ts
diagrams render diagram.ts -o diagram.png
diagrams render diagram.ts -f svg -t dark -d LR -o out.svg
diagrams render diagram.json -f json
Render from external formats (plugin import)
The render command automatically imports from .yaml/.yml files via plugins:
diagrams render docker-compose.yml -o architecture.svg
diagrams render k8s-deployment.yaml -p kubernetes -o architecture.svg
diagrams render compose.yml -f png -t dark --width 1200 -o out.png
Export to external formats
diagrams export diagram.json -f docker-compose -o docker-compose.yml
diagrams export diagram.ts -f kubernetes -o manifest.yaml
Diff diagrams in git
diagrams diff show HEAD diagram.ts -o diff.html
diagrams diff show main...feature diagram.json -F html -o diff.html
diagrams diff list HEAD
diagrams diff batch main...feature -o ./diffs
Scaffold a new diagram
diagrams init "My Architecture"
diagrams init "AWS Stack" -t aws -o aws.ts
diagrams init "K8s Cluster" -t k8s -o k8s.ts
Watch and auto-render
diagrams watch diagram.ts -o out.svg
diagrams watch diagram.ts -f png -t dark --scale 2 -o out.png
Manage plugins
diagrams plugins list
diagrams plugins info docker-compose
Configuration
Create a .diagramsrc.json file in your project root:
{
"format": "svg",
"theme": "light",
"direction": "TB",
"curveStyle": "ortho",
"scale": 2,
"diff": {
"layout": "side-by-side",
"showUnchanged": "show",
"ignorePosition": true
}
}
Supported File Formats
Input
.ts | TypeScript diagram file |
.js / .mjs | JavaScript diagram file |
.json | Diagram JSON export |
.svg | Diagram SVG with embedded metadata |
.yaml / .yml | Importable config (docker-compose, k8s, etc.) |
Output
svg | Scalable Vector Graphics (default) |
png | PNG image (requires sharp in Node.js) |
jpg | JPEG image (requires sharp in Node.js) |
dot | Graphviz DOT source |
json | Diagram JSON serialization |
html | Self-contained HTML diff |
License
MIT