draw

Generate Excalidraw diagram JSON files and render them to PNG for visual validation.

Updated Feb 27, 2026
One-click install
npx skills add https://github.com/Dawaad/skills --skill draw-dawaad
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: draw
Source: https://github.com/Dawaad/skills/tree/main/draw
Command: npx skills add https://github.com/Dawaad/skills --skill draw-dawaad

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires playwright, and includes references (resource) components.

What problem does it solve? Creating architecture, workflow, and concept diagrams by hand is slow and often produces boxes-and-labels that display information without communicating structure. This Skill generates Excalidraw JSON files that argue visually, then renders them to PNG so every diagram can be inspected and iterated on. ## Core Features & Use Cases - Structured diagram generation: Produces valid .excalidraw JSON using a visual pattern library (fan-out, timeline, tree, cycle, side-by-side) with semantic shapes, colours, and evidence artifacts like real code snippets and event names. - Headless PNG rendering: A Playwright-based renderer exports any .excalidraw file to PNG so the output can be visually audited and fixed in a render-fix loop. - Customisable brand palette: All colours live in a single color-palette.md reference file, so re-skinning every diagram requires editing one file. - Use Case: Ask for a diagram of a streaming protocol integration and receive a multi-zoom Excalidraw file showing the summary flow, section boundaries, real event names, and a code snippet, rendered to PNG for review. ## Quick Start Ask the assistant to create an Excalidraw diagram of your system architecture or workflow and render it to a PNG for review.

Frequently Asked Questions about draw

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create an Excalidraw diagram programmatically?

Generate a JSON file with top-level type "excalidraw", an elements array of rectangles, ellipses, text, and arrows, plus an appState object. Copy element templates from the references and bind text to shapes via containerId and boundElements.

How do I render an .excalidraw file to PNG from the command line?

Run uv run python render_excalidraw.py path/to/file.excalidraw from the references directory. The script loads the Excalidraw library in headless Chromium via Playwright and writes a PNG next to the input file, with an optional scale argument.

What dependencies does the Excalidraw PNG renderer need?

The renderer requires Python 3.10+, the playwright package installed via uv sync, and a Chromium browser binary installed with uv run playwright install chromium. It also needs network access to esm.sh to load the Excalidraw library at render time.

Why does the Excalidraw renderer fail to load the library?

The script pins @excalidraw/[email protected] loaded from the esm.sh CDN. If your network blocks esm.sh or that version is unreachable, the render fails; edit EXCALIDRAW_VERSION at the top of render_excalidraw.py to pin a reachable version.

Why is my exported Excalidraw PNG blank or the wrong size?

A blank export means the scene is invalid: the file must have top-level "type": "excalidraw" and a non-empty elements array. Check that coordinates do not overlap unintentionally and that the JSON parses before rendering.

How do I change the colours used in generated diagrams?

Edit references/color-palette.md, which is the single source of truth for every colour the skill uses, organised by semantic role such as fills, strokes, text, and evidence artifacts. The skill reads this file before generating any diagram.