Skip to content

CLI Reference

Commands

CommandDescription
render <file-or-dir>Render diagram file(s) to images
warmupPre-install Playwright Chromium browser
initCreate a .diagramkitrc.json config file
install-skills [--global]Copy diagramkit agent skills to .claude/skills/ (or ~/.claude/skills/ with --global)
--help, -hShow help message
--version, -vShow installed version

render Options

FlagTypeDefaultDescription
--formatsvg | png | jpeg | webpsvgOutput image format
--themelight | dark | bothbothTheme variant(s) to render
--scalenumber2Scale factor for raster output (PNG/JPEG/WebP)
--qualitynumber90JPEG/WebP quality, 1-100
--forcebooleanfalseRe-render all, ignore manifest cache
--watchbooleanfalseWatch for changes and re-render
--no-contrastbooleanfalseDisable dark SVG contrast optimization
--typemermaid | excalidraw | drawioallFilter to specific diagram type
--outputstring.diagrams/ siblingCustom output directory (single-file mode only)
--output-dirstring.diagramsOutput folder name
--manifest-filestringdiagrams.manifest.jsonManifest filename
--no-manifestbooleanfalseDisable manifest tracking
--same-folderbooleanfalseOutput in same folder as source files
--dry-runbooleanfalseShow what would be rendered without rendering
--quietbooleanfalseSuppress informational output, only show errors
--jsonbooleanfalseOutput results as JSON (for CI/scripting)

Output Naming

Output files follow this pattern:

{name}-{theme}.{format}

Where:

  • {name} is the source filename without extension
  • {theme} is light or dark
  • {format} is the output format extension

Examples

SourceThemeFormatOutput
flow.mermaidbothsvgflow-light.svg, flow-dark.svg
system.excalidrawlightpngsystem-light.png
arch.drawiodarkjpegarch-dark.jpeg

Output Directory

By default, output goes to a .diagrams/ hidden folder next to the source file:

project/
  docs/
    flow.mermaid
    .diagrams/              # Auto-created
      flow-light.svg
      flow-dark.svg
      diagrams.manifest.json

This behavior is configurable via .diagramkitrc.json.

Usage Examples

Basic

bash
# Render all diagrams in current directory
diagramkit render .

# Render a single file
diagramkit render flow.mermaid

# Render a subdirectory
diagramkit render ./docs

Format and Quality

bash
# PNG at 3x scale
diagramkit render . --format png --scale 3

# JPEG with reduced quality
diagramkit render . --format jpeg --quality 75

# WebP output
diagramkit render . --format webp --quality 85

Theme Selection

bash
# Light theme only
diagramkit render . --theme light

# Dark theme only
diagramkit render . --theme dark

Filtering

bash
# Only mermaid diagrams
diagramkit render . --type mermaid

# Only excalidraw diagrams
diagramkit render . --type excalidraw

# Only drawio diagrams
diagramkit render . --type drawio

Cache Control

bash
# Force re-render everything
diagramkit render . --force

# Render without dark mode contrast fix
diagramkit render . --no-contrast

Watch Mode

bash
# Watch and re-render on changes
diagramkit render . --watch

# Watch with specific format
diagramkit render . --watch --format png --scale 2

Custom Output

bash
# Single file to custom directory
diagramkit render flow.mermaid --output ./build/images

Supported File Types

ExtensionDiagram TypeNotes
.mermaidMermaidStandard extension
.mmdMermaidShort alias
.mmdcMermaidMermaid CLI-compatible alias
.excalidrawExcalidrawJSON format
.drawioDraw.ioXML format
.drawio.xmlDraw.ioXML variant
.dioDraw.ioShort alias

Discovery Rules

When given a directory, diagramkit render recursively scans for supported file extensions. It skips:

  • Hidden directories (names starting with .)
  • node_modules/

Exit Behavior

  • Normal render: exits with code 0 on success, 1 on error
  • Watch mode: stays running, exits 0 on SIGINT (Ctrl+C)
  • Unknown command: exits with code 1