Excalidraw is a handy diagramming tool that is not only free to use, but also agent friendly. Objects in an Excalidraw are in JSON format, which agents can easily understand and produce. Naturally, a skill is needed for agents to become experts on Excalidraw, but I checked all the existing skills on GitHub, and all of them (including one with over 4,600 stars) lacked features I would have liked. So I built one myself. Here’re some of its nice features:
-
Humans and agents co-own the same file. Most diagram-generation tools are one-way: an agent emits a figure, and any hand edit is lost on the next regeneration. This skill preserves a genuine round trip: the agent writes a
.excalidrawfile, I can then drag it onto excalidraw.com and edit freely, save it back, and the agent continues editing my new version in place. -
The agent can see its own drawing. A built-in headless renderer (no browser, no Playwright — just node and, on macOS, Quartz for PDF) lets the agent render and visually inspect its diagram before showing it to anyone. Layout bugs that are not easily to see by reading a JSON file become obvious visually, so the agent fixes them on its own, before I ever see a draft. Excalidraw frames even render with true clipping, the way the app draws them.
-
Diagrams become code. For committed figures, the recommended workflow is a small Python generator: my feedback gets folded into the generator rather than the JSON file, so the diagram is versionable, diffable, and reproducible — regeneration is byte-identical run to run. A collaboratively-drawn sketch can late graduate into a generator once it stabilizes. The chalkboard and the repository are no longer different worlds.
I open-sourced this skill — one of only five that I installed — available at github.com/baochunli/excalidraw. With only about 2,400 tokens in its SKILL.md and 4,300 tokens in its optional references, this lightweight skill is now my preferred tool for drawing diagrams in my research papers.