| name | excalidraw-obsidian |
| description | Create or update Excalidraw diagrams in the Obsidian vault as .md files compatible with the obsidian-excalidraw-plugin. |
| argument-hint | ["description of what to draw"] |
Excalidraw Obsidian Diagrams
Create or update Excalidraw drawings in the Obsidian vault at ~/notes/obsedian/Excalidraw/.
File Format
Files use the .md extension (NOT .excalidraw or .excalidraw.md) and follow this structure:
---
excalidraw-plugin: parsed
tags: [excalidraw]
---
==Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document.==
# Excalidraw Data
## Text Elements
<text content> ^<element-id>
## Drawing
` ` `json
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [...],
"appState": {
"viewBackgroundColor": "#ffffff",
"gridSize": null
},
"files": {}
}
` ` `
%%
Key Rules
- File extension: Always
.md, never .excalidraw or .excalidraw.md
- Text Elements section: List every text element's content followed by
^<id> — one blank line between each
- Drawing section: Wrapped in
%% at the end (the %% before ## Drawing and after the closing triple backticks)
- JSON format: Use raw
json code fence, NOT compressed-json. The plugin will compress it on load.
- Frontmatter: Must include
excalidraw-plugin: parsed and tags: [excalidraw]
Updating Existing Files
The plugin compresses JSON into compressed-json format on save. You CANNOT surgically edit compressed content. To update an existing file:
- Reconstruct the full elements array from context or by re-reading the
.excalidraw source if available
- Rewrite the entire
## Drawing section with raw json
- Update the
## Text Elements section to include any new text elements
- The plugin will re-compress on next load
Element Format Reference
Use the Excalidraw MCP read_me tool to get the full element format reference including color palettes, element types, and examples. Call it once per session before creating diagrams.
Workflow
- Call the Excalidraw MCP
read_me tool (once per session) to get element format reference
- Optionally use
create_view to preview the diagram inline first
- Write the
.md file to the Excalidraw folder
- If updating, rewrite the full file since compressed JSON can't be edited in place
Arguments
$ARGUMENTS — Description of what to draw or which file to update