Diagram MakerCLI Reference
⌨️

CLI Reference

validate · fmt · export · render · md

CLI リファレンス

datro CLI は、ターミナルまたは CI パイプラインから .dtro ファイルを検証、フォーマット、エクスポート、レンダリングするための主な方法です。

SH
# Install globally
npm install -g datro

# Or run without installing via npx
npx datro --version
検証するfmt輸出レンダリングするMD

ダトロ検証

.dtro ファイルを解析し、4 つの検証パスをすべて実行し、file:line:col の場所を含む診断を出力します。エラーがない場合は 0 を終了します (警告は許可されます)。

SH
# Validate and print human-readable diagnostics
datro validate arch.dtro

# Suppress info-level hints
datro validate arch.dtro --no-info

# Output machine-readable JSON (for CI pipelines, tooling)
datro validate arch.dtro --json
SH
✓ arch.dtro
  nodes=5  edges=6  groups=1  constraints=1
  errors=0  warnings=1  info=1

[W] arch.dtro:38:3 W602 Theme colour 'cache: #C0FFE8' has contrast ratio 1.82:1 ...
[I] arch.dtro:12:1 I003 No meta block found — consider adding one for documentation
出力例 (警告 1 件、情報ヒント 1 件、エラー 0 件 → 終了 0)
FieldTypeRequiredDescription
--jsonflagNo診断 + IR 統計を JSON として出力します。 CI ツールとエディターの統合に役立ちます。
--no-infoflagNoI××× 情報レベルの診断を出力から抑制します。

ダトロFMT

.dtro ファイルの正規形式を出力または書き換えます。フォーマッタは決定的です。同じ IR は常に同じ出力を生成するため、差分には実際の変更のみが表示されます。

SH
# Print canonical form to stdout (no file changes)
datro fmt arch.dtro

# Overwrite file with canonical form
datro fmt --write arch.dtro

# CI check — exits non-zero if file is not already canonical
datro fmt --check arch.dtro
FieldTypeRequiredDescription
--writeflagNoファイルを正規形式でその場で上書きします。
--checkflagNoファイルがまだ正規ではない場合は、ゼロ以外で終了します。コミット前のフックまたは CI で使用します。
💡

プリコミットフック

datro fmt --check arch.dtro をプリコミットフックに追加して、正規形式が常にコミットされるようにします。これにより、コードレビュー時のフォーマッタノイズが防止されます。

ダトロエクスポート

検証された .dtro ファイルを別の機械可読形式に変換します。デフォルトでは標準出力に出力します。 --out を使用してファイルに書き込みます。

SH
# Export to Graphviz DOT (pipe into dot for rendering)
datro export arch.dtro --to dot

# Export to Cytoscape.js JSON
datro export arch.dtro --to cytoscape --out arch.cytoscape.json

# Export the lossless JSON IR (full metadata preserved)
datro export arch.dtro --to json --out arch.ir.json
FieldTypeRequiredDescription
--tostring
"dot""cytoscape""json"
Yesターゲット形式。
--outpathNo出力を標準出力ではなくこのファイル パスに書き込みます。
  • `dot` — Graphviz DOT 言語。ツールチェーンの外部でカスタム レンダリングを行うために dot -Tsvg にパイプします。
  • `cytoscape` — Cytoscape.js JSON。インタラクティブな Web ダイアグラムの Cytoscape インスタンスに直接インポートします。
  • `json` — ロスレス JSON IR (完全な DatroIR オブジェクト)。カスタム CI チェック、スクリプト、またはレンダラーで使用します。

ダトロレンダー

.dtro ファイルを Graphviz 経由でピクセルパーフェクトな SVG または PNG にレンダリングします。 Graphviz の dot バイナリが $PATH にインストールされている必要があります。

SH
# Render to SVG (requires Graphviz installed)
datro render arch.dtro --out diagram.svg

# Render to PNG
datro render arch.dtro --out diagram.png
FieldTypeRequiredDescription
--outpathYes出力ファイルのパス。拡張子によって形式が決まります: .svg または .png
ℹ️

Graphviz が必要です

graphviz.org/download から Graphviz をインストールし、dot$PATH にあることを確認してください。見つからない場合、CLI は明確なエラーを表示して終了します。

ダトロMD

Markdown ファイルに埋め込まれた Datro フェンスされたコード ブロックを処理します。 2 つのサブコマンド: check (検証のみ、Graphviz は必要ありません) および render (検証 + SVG/PNG 出力)。

SH
# Validate all Datro blocks embedded in a Markdown file
datro md check docs/architecture.md

# Validate and output JSON (CI-friendly)
datro md check docs/architecture.md --json

# Render all blocks to SVG files next to the Markdown file
datro md render docs/architecture.md

# Render to a specific output directory in PNG format
datro md render docs/architecture.md --out-dir public/diagrams --format png

# Continue even when some blocks have errors
datro md render docs/architecture.md --no-fail

埋め込みブロック形式

フェンスで囲まれたブロックを datro 言語識別子でマークします。ブロックにはマジック ヘッダーが含まれている必要があります。

Markdown
<!-- docs/architecture.md -->

# System Overview

```datro
#!DATRO 1.0

node api { type: gateway label: "API Gateway" }
node svc { type: service label: "Auth Service" }

edge api -> svc { kind: http }
```

Run `datro md render docs/architecture.md` to generate
`docs/architecture-block-1.svg` alongside this file.
Markdown ファイルに埋め込まれた Datro ブロック
FieldTypeRequiredDescription
--out-dirpathNomd render — 出力ファイルのディレクトリ。デフォルトでは、入力 Markdown ファイルと同じディレクトリになります。
--formatstring
"svg""png"
Nomd render — 出力形式。
--jsonflagNomd check — 結果を人間が読めるテキストではなく JSON として出力します。
--no-failflagNo一部にエラーがある場合でも、残りのブロックの処理を続行します。 0を終了します。

CI統合

すべてのプル リクエストでダイアグラムの品質を強制するには、次の手順を任意の CI パイプラインに追加します。

.github/workflows/ci.yml
# .github/workflows/ci.yml (excerpt)
- name: Validate Datro diagrams
  run: |
    npx datro fmt --check docs/arch.dtro
    npx datro validate docs/arch.dtro --no-info
    npx datro md check docs/architecture.md --json
  • fmt --check — 図が正規にフォーマットされていない場合は失敗します。
  • validate --no-info — エラー重大度の診断で失敗します。
  • md check --json — すべての埋め込み図を検証します。 JSON 出力は注釈ツールと統合されます。

次のステップ

  • 完全な .dtro 構文については、Language Reference を参照してください。
  • リマークまたはマークダウン IT プラグインを使用して embed diagrams in Markdown する方法を学びましょう。
ダイアグラムメーカーを開く

ブラウザの方がいいですか?何もインストールせずに検証してレンダリングします。

Schema v1 · Updated September 2026