diegomarino/claude-toolshed/d2-render

Claude Code and agent skill by diegomarino/claude-toolshed

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Render .d2 files to SVG or PNG images

Install

npx vskill@latest install diegomarino/claude-toolshed/d2-render

SKILL.md

/d2-render

User request: "$ARGUMENTS"

Task

Render D2 diagrams from an existing .d2 file or a .md file with D2 code blocks to SVG or PNG images.

Process

Step 1: Resolve Plugin Path
bash
PLUGIN_DIR=$(find "$HOME/.claude/plugins/cache" -type d -name "d2" -path "*/skills/d2" 2>/dev/null | head -1)
[ -z "$PLUGIN_DIR" ] && PLUGIN_DIR=$(find "$HOME" -maxdepth 8 -type d -name "d2" -path "*/skills/d2" 2>/dev/null | head -1)
Step 2: Ensure D2 is installed
bash
bash "$PLUGIN_DIR/scripts/ensure-deps.sh"

If .claude/d2.json does not exist, display a one-time nudge before continuing:

First time using the d2 plugin? Run /d2-config to pick a theme and output settings. Using defaults for now (theme 0 / Neutral, ./diagrams).
Step 3: Read Config

If .claude/d2.json exists, read:

  • output_directory (default: ./diagrams)
  • output_format (default: svg)

Resolve output path:

  • If output_directory is "same" AND input file path is known:

OUTPUT_DIR=$(dirname {input_file})

  • If output_directory is "same" AND no input file:

OUTPUT_DIR=./diagrams

  • Otherwise:

OUTPUT_DIR={output_directory}

Step 4: Determine Input

From $ARGUMENTS:

  • `.d2` file → render directly
  • `.md` file → extract D2 blocks first:

bash "$PLUGIN_DIR/scripts/extract_d2.sh" {file.md}

  • Directory → find all .d2 files:

find {dir} -name "*.d2" -not -path "*/node_modules/*"

  • No argument → ask: "Which file or directory should I render?"
Step 5: Render

Run for each .d2 file:

bash
mkdir -p {OUTPUT_DIR}
d2 {input_file} {OUTPUT_DIR}/{basename}.{output_format}

For PNG output: Warn the user if PNG fails that it requires Playwright:

PNG rendering failed. Playwright is required for PNG export.
Install: npm install -g playwright && playwright install chromium
Or switch to SVG: /d2-config → option 7

Note: Generated .d2 files already contain the vars { d2-config } block with the theme and layout settings — no additional CLI flags are needed. The d2 command will use the embedded configuration automatically.

Step 6: Report

List all output files generated with full paths:

Rendered {N} diagrams:
✅ diagrams/architecture-services-20260310.svg
✅ diagrams/sequence-auth-flow-20260310.svg

If any rendering failed:

❌ diagrams/er-schema-20260310.svg — {error message}
Run /d2-config → health check to diagnose issues.

Output Format

Rendered {N} / {total} diagrams:
✅ {output_path_1}
✅ {output_path_2}
❌ {output_path_3} — {error}

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/diegomarino/claude-toolshed/d2-render/badge)](https://verified-skill.com/skills/diegomarino/claude-toolshed/d2-render)

Something wrong with this skill or its page? Tell us.