Command-line renderer for Shumoku. Turns a NetworkGraph YAML or JSON file into an SVG, interactive HTML, or PNG diagram.
SVG, PNG, and standalone HTML use the canonical framework-free @shumoku/renderer/static path, so every CLI format follows the same drawing model as the server, Editor export, Playground, and Svelte renderer. HTML adds pan/zoom, tooltips, and sheet navigation around that shared SVG.
Install
Run it with npx (no install):
npx @shumoku/cli render network.yaml -o diagram.svg
Beta snapshots are published under the beta npm dist-tag:
npx @shumoku/cli@beta render network.yaml -o diagram.svg
Or, from a clone of this monorepo, build and run the source:
cd apps/cli
bun run build
node dist/shumoku.js render network.yaml -o diagram.svg
Usage
shumoku render [options] <input>
| Argument / option | Description |
|---|---|
<input> | NetworkGraph YAML or JSON file. Use - to read from stdin. Format auto-detected from extension (.yaml, .yml, .json) |
-f, --format <type> | Output format: svg | html | png (default: auto from output extension) |
-o, --output <file> | Output file (default: output.svg) |
--theme <theme> | light | dark (default: light) |
--scale <number> | PNG scale factor (default: 2) |
-h, --help | Show help |
-v, --version | Show version |
Examples
# SVG (default)
shumoku render network.yaml -o diagram.svg
# Interactive HTML (pan / zoom / tooltips)
shumoku render network.yaml -f html -o diagram.html
# High-resolution PNG
shumoku render network.yaml -f png -o diagram.png --scale 3
# JSON input, dark theme
shumoku render topology.json --theme dark -o diagram.svg
# Pipe from stdin
cat network.yaml | shumoku render - -o diagram.svg
See the YAML Reference for the input format. For programmatic rendering, use the shumoku library directly.
License
AGPL-3.0-only. For commercial licensing, contact [email protected].