Skip to main content
skill CX Codex

excalidraw · nimbalyst — Claude Code skill: what it does, how to install

Generates flowcharts, architecture diagrams, and system sketches as .excalidraw files directly through agent MCP tools.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add nimbalyst/nimbalyst --skill excalidraw -a claude-code
Open on GitHub

What excalidraw does

This skill guides an AI assistant to build whiteboard diagrams using dedicated excalidraw.* MCP tools. The agent creates workspace .excalidraw files, places rectangles or frames, routes directional arrows, and imports diagrams directly from Mermaid syntax via import_mermaid.

A central rule in the instructions is single-pass execution. The agent must never loop through continuous rebuilds or clear the canvas with clear_all to chase cosmetic perfection. Minor visual misalignments belong to hand-drawn sketches. Broken elements are fixed with targeted calls like update_element or move_element.

This skill does not handle entity-relationship diagrams or database schemas — the author directs users to the DataModelLM extension and Prisma schemas instead. Diagram generation relies on the Nimbalyst MCP environment to mount a hidden editor and take a single verification screenshot.

What it helps with

  • sketch system architecture and component interactions
  • convert existing Mermaid flowcharts into editable .excalidraw files
  • organize process steps horizontally or vertically with frames
  • adjust layout elements precisely without wiping the whole canvas

Example prompts for the agent

  • Draft a high-level system architecture diagram in system-design.excalidraw
  • Import the Mermaid diagram from flow.md into an Excalidraw canvas
  • Add an authentication step to user-flow.excalidraw and align the connected arrows

How to install excalidraw

1Skills CLI (Vercel)

npx skills add nimbalyst/nimbalyst --skill excalidraw -a claude-code

2Manually: put the files in place

~/.claude/skills/excalidraw/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/excalidraw/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about excalidraw

How do I install excalidraw in Claude Code?

Run npx skills add nimbalyst/nimbalyst --skill excalidraw -a claude-code. The skill file is placed in ~/.claude/skills/excalidraw/SKILL.md.

What is the purpose of the excalidraw skill?

It equips the coding agent with conventions and MCP tool signatures to generate and edit .excalidraw diagram files directly inside your workspace.

Can I use this skill to design database schemas?

The skill documentation advises against it for database ERDs. It points to the DataModelLM extension instead for Prisma-backed schemas.

Source text

SKILL.md · MIT
---
name: excalidraw
description: Create diagrams and visual drawings using Excalidraw (.excalidraw files). Use when the user wants flowcharts, architecture diagrams, system diagrams, sketches, or any visual diagram. For database schemas and entity relationship diagrams, use the DataModelLM extension instead.
---

# Excalidraw Diagrams

Excalidraw is Nimbalyst's whiteboard-style diagram editor for creating flowcharts, architecture diagrams, system diagrams, and visual sketches.

## STOP AFTER ONE PASS — Do Not Thrash

The single biggest failure mode with this skill is agents creating a diagram, capturing a screenshot, noticing minor cosmetic imperfections, then clearing and rebuilding the diagram two, three, or four times without being asked. This is the wrong behavior. The user sees every rebuild, and iterations the user did not ask for are a waste of their time and attention.

Follow these rules:

1. **One-shot by default.** Build the diagram, capture a screenshot once, describe what you made, and stop. Do not iterate on visual polish unless the user explicitly asks for a change.
2. **Never use `excalidraw.clear_all` followed by a rebuild as a way to "redo" the diagram.** `clear_all` is only for user-requested rebuilds. If you just produced a diagram, looked at it, and feel like starting over, don't — stop and hand control back to the user.
3. **Minor imperfections are fine.** Excalidraw is a whiteboard / hand-drawn-style tool. Slight overlaps, arrows that route imperfectly, labels that aren't perfectly centered, and asymmetric spacing are all acceptable and expected. Do not rebuild to fix these. Do not re-run `import_mermaid` because the auto-layout isn't pixel-perfect.
4. **Only one screenshot per diagram.** Capture once to verify the diagram exists and is roughly what you intended, then stop screenshotting. Repeated screenshots drive perfectionism loops.
5. **If something is actually broken, make a targeted fix — not a rebuild.** Use `update_element`, `move_element`, `remove_element`, or `align_elements` on the specific problem. Do not wipe and restart.
6. **"Good enough to convey the idea" is the bar.** The diagram's job is to communicate structure or flow to a human reader. Once it does that, you are done. Do not keep polishing.

If you catch yourself about to call `clear_all` after just having built a diagram, or about to capture a second screenshot of the same diagram, stop. Report what you made and let the user decide whether changes are needed.

## When to Use Excalidraw

- Flowcharts and process diagrams
- Architecture diagrams
- System design diagrams
- Sequence diagrams
- Mind maps
- Network diagrams
- User flow diagrams
- General visual diagrams and sketches

## When NOT to Use Excalidraw

- **Database schemas / Entity relationship diagrams** - Use DataModelLM extension instead (creates `.datamodel` files with Prisma schema)

## File Format

- **Extension**: `.excalidraw`
- **Format**: JSON-based Excalidraw format
- **Location**: Any directory in the workspace

## Available MCP Tools

The Excalidraw extension provides these MCP tools for diagram manipulation:

### Getting Information
- `excalidraw.get_elements` - Get all elements in the diagram

### Adding Elements
- `excalidraw.add_rectangle` - Add a rectangle/box
- `excalidraw.add_arrow` - Add a single arrow
- `excalidraw.add_arrows` - Add multiple arrows at once
- `excalidraw.add_elements` - Add multiple elements at once
- `excalidraw.add_frame` - Add a frame (container for elements)
- `excalidraw.add_row` - Add elements in a horizontal row
- `excalidraw.add_column` - Add elements in a vertical column

### Modifying Elements
- `excalidraw.update_element` - Update an existing element
- `excalidraw.move_element` - Move an element to new position
- `excalidraw.remove_element` - Remove a single element
- `excalidraw.remove_elements` - Remove multiple elements

### Organization
- `excalidraw.align_elements` - Align elements horizontally/vertically
- `excalidraw.distribute_elements` - Distribute elements evenly
- `excalidraw.group_elements` - Group elements together
- `excalidraw.set_elements_in_frame` - Put elements into a frame
- `excalidraw.relayout` - Automatically relayout elements

### Special Features
- `excalidraw.import_mermaid` - Convert Mermaid syntax to Excalidraw
- `excalidraw.clear_all` - Clear all elements from the diagram

## Workflow

1. **Create file** - Create a new `.excalidraw` file or target an existing one. The file does not need to be open in Nimbalyst.
2. **Use MCP tools** - Pass the file path directly to the Excalidraw MCP tools. Nimbalyst mounts a hidden editor automatically; do not call `extension_test_open_file` first because it creates and focuses a visible tab.
3. **Verify visually (once)** - Use `mcp__nimbalyst__capture_editor_screenshot` a single time to confirm the diagram rendered
4. **Stop** - Report what you made and hand control back. Do not iterate on polish unless the user asks for changes. See "STOP AFTER ONE PASS" above.

## Diagrams for the Wiki

When the diagram is for a page in the Wiki (a Team or Personal wiki page), the diagram must be a page too: teammates cannot open a file on this computer, so never link an `.excalidraw` path from a page. Create the page with `createSharedDoc` (`documentType: 'excalidraw'`, under the page it explains), then pass its `uri` (`collab://...`) as `filePath` to the tools above; they edit the shared page directly. An existing `.excalidraw` file is copied in with `importFileToPages`. Link the page by the `link` the tool returns. A drawing for yourself can be a Personal page (`section: 'personal'`); the drawing tools edit Team pages only, so build it in a file and copy it in with `importFileToPages`.

## Best Practices

- Use frames to group related elements
- Keep diagrams clean and readable
- Use consistent spacing and alignment
- Add arrows to show flow/relationships
- Use color sparingly for emphasis

## Example: Creating a Flowchart

1. Add rectangles for each step
2. Add arrows connecting the steps
3. Use `align_elements` to align horizontally/vertically
4. Use `distribute_elements` for even spacing

© nimbalyst · MIT · nimbalyst/nimbalyst

Similar skills

Everything for Design →

excalidraw by other authors comes first.

excalidraw Hermes Agent Creates .excalidraw files for architecture diagrams, flowcharts, and sequence diagrams. Use it when you want an agent to turn a system or process into an editable diagram. CX Codex +1 412installs excalidraw Agents365-ai This skill draws flowcharts, architecture charts and other diagrams into .excalidraw files, then exports them to PNG or SVG. Handy when a picture beats a paragraph. CX Codex +1 4,600installs excalidraw davila7 This skill routes Excalidraw file work to subagents so large JSON diagrams stay out of the main context. Use it for flowcharts and architecture visuals. 342installs frontend-design official anthropics This skill guides intentional visual design for new interfaces and redesigns. Use it when a generic generated UI is not enough. 1,025,790installs grill-me Matt Pocock grill-me interviews you about a plan or design to expose gaps and sharpen decisions. Use it before implementation starts. 1,424,476installs design-taste-frontend Leonxlnx This skill directs the design of public pages and work screens, then checks the result in a browser through screenshots. Use it when an interface feels generic or unfinished. CX Codex +1 678,700installs prototype Matt Pocock Creates throwaway prototypes for checking state logic or exploring UI before committing the decision to the main codebase. 986,201installs grilling Matt Pocock Stress-test a plan, decision, or idea through structured rounds of questions. Use it when you need to expose assumptions before acting. 979,543installs codebase-design Matt Pocock This skill helps design modules with small interfaces and hidden complexity. Use it when refactoring code, choosing a seam, or making tests easier to write. 850,344installs

From the same set16

planning Keeps plans and work items as markdown files with YAML frontmatter: status, priority, progress. Useful when a feature drags on for weeks. CX Codex +1 ★ 1,979repo stars mockuplm Generates standalone HTML and CSS mockups to plan UI screens visually. It helps test interface layouts before writing production code. CX Codex +1 ★ 1,979repo stars feedback-intake Prepare a Nimbalyst bug report or feature request with consent-based evidence gathering, text anonymization, and a draft GitHub Issue. CX Codex +1 ★ 1,979repo stars extension-development A skill for Nimbalyst extension work: build, install and hot-reload extensions from inside the running app through MCP tools. CX Codex +1 ★ 1,979repo stars git-commit This skill prepares a commit proposal in Nimbalyst’s interactive widget. Use it after clicking “Commit with AI” or explicitly requesting a smart commit. CX Codex +1 ★ 1,979repo stars datamodellm Lets the agent draft database schemas in Prisma format for the DataModelLM visual editor. Useful when you want an ERD or a data model before writing code. CX Codex +1 ★ 1,979repo stars canvas Generates Nimbalyst .canvas boards with live workspace file editors, sticky notes, and connecting edges. Useful for mapping user flows and arranging project files spatially. CX Codex +1 ★ 1,979repo stars animation Create step-based technical explainers as .anim.json files for Nimbalyst’s Animation editor. Use it to show how data or system state changes over time. CX Codex +1 ★ 1,979repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor