Documentation
Everything you need to know about diagrams.love — the AI-native diagramming tool.
What is diagrams.love?
diagrams.love is an AI-powered diagram editor. Create flowcharts, system architecture diagrams, user journey maps, process flows — anything with visual structure. Describe what you need in plain language and AI builds it instantly, or use the canvas editor to draw manually.
Visual Editor
Drag & drop canvas. Double-click to add cards, drag to connect. No learning curve.
AI Generation
Describe anything in plain language — get a ready diagram in seconds. 400+ AI models.
Share Instantly
Public links anyone can open without an account. Presentation mode included.
Open Format
Every diagram is plain JSON. Download, edit with AI tools, reimport. No lock-in.
Create Your First Diagram
There are multiple ways to create a diagram. Choose whichever fits your workflow:
-
1
Open the Canvas
Go to /canvas (or click Open Canvas in the nav). Sign in — it only takes a moment.
-
2
Choose your creation method
AI: Open the AI chat panel, describe what you need — AI builds the diagram.
Manual: Double-click the canvas to add cards, drag between cards to create connections. -
3
Customize & Share
Change colors, add tags, rename cards. Then hit Share to get a public link anyone can open.
Canvas Basics
The canvas is an infinite whiteboard. Here's how to navigate:
| Action | How |
|---|---|
| Pan the canvas | Click and drag on empty space, or middle mouse button |
| Zoom in/out | Scroll wheel, or pinch on trackpad |
| Add a card | Double-click on empty canvas, or use toolbar button |
| Add a condition (diamond) | Use the Condition button in the toolbar |
| Move an element | Click and drag any card or condition |
| Select multiple | Hold Shift and click, or drag to select a region |
| Delete element | Select it, press Delete or Backspace |
| Fit all to screen | Press F or use the fit button in toolbar |
Cards & Connections
Element Types
- Card — standard block with title, description, tags, and color. The most common element type.
- Condition (Diamond) — decision point for branching logic. Use for Yes/No forks in a flow.
- ASCII — monospace text card for wireframes and text layouts. Great for sketching UI screens.
- HTML — rich card with live HTML content — buttons, forms, animations. Use for interactive mockups.
- iFrame — embed any URL directly on the canvas — live websites, Figma prototypes, data dashboards.
Creating Connections
- Hover over any card — connection handles appear on the edges
- Drag from a handle to another card to create an arrow
- Double-click a connection line to add a label
- Right-click a connection to delete it or change direction
Editing Cards
Click a card to open the detail panel on the right. You can edit:
- Title and description
- Color (10 named values)
- Tags (custom labels per diagram)
- Date field
- Card type (Card, Condition, ASCII, HTML, iFrame)
Keyboard Shortcuts
Managing Diagrams
The dashboard is your home base — a list of all diagrams you own or have access to. All diagrams are private by default and only visible to you.
| Action | How |
|---|---|
| Create new diagram | Click "New diagram" button — opens a blank canvas |
| Rename a diagram | Right-click the diagram card, or open the canvas and edit the title at the top |
| Duplicate | Right-click the diagram card and choose Duplicate — creates a full copy |
| Delete | Right-click and choose Delete. Deletion is permanent — export JSON first if you need a backup |
| Search | Use the search bar at the top of the dashboard to filter by diagram name |
Projects & Subprojects
Projects are folders that let you organize diagrams into groups. You can nest projects inside other projects to create a tree hierarchy.
Working with Projects
- Create a project from the dashboard sidebar — give it a name and it appears in the left panel
- Drag and drop diagrams from the main list into a project folder
- Create sub-projects by nesting a project inside another project
- Rename or delete projects via right-click. Deleting a project does not delete the diagrams inside — they move back to the root level
- Via MCP: use
list_projects,create_project, andmove_schema_to_projectto manage projects programmatically
Invite Collaborators
You can invite specific people to a diagram by email. Collaborators must have a diagrams.love account.
Access Roles
| Role | Permissions |
|---|---|
| Viewer | Can view the diagram, zoom, navigate. Cannot edit anything. |
| Editor | Can edit cards, connections, colors, and tags. Cannot delete the diagram or manage collaborators. |
To manage collaborators: open the Share popup on a diagram, go to the "People" tab, enter an email, choose a role, and send the invite. The owner can revoke access at any time.
Edit Links
Edit links let you share a diagram as editable without requiring the recipient to have an account. Available on Pro and Max plans. Generate an edit link from the Share popup — anyone with the link gets Editor access.
Presentation Mode
Presentation mode turns your diagram into a clean fullscreen view — perfect for walkthroughs, demos, and meetings.
- Hides the toolbar and editing UI
- Clean background, focused on the diagram
- Works on shared links too — send the presentation URL directly
- Works on any screen — desktop, tablet, projector
To enter: click the Present button in the toolbar, or add ?present=1 to any diagram URL.
Export Formats
| Format | Description | Plan |
|---|---|---|
| JSON | Full diagram data — import back, send to AI, edit programmatically | All plans |
| PNG | Raster image — good for presentations and documents | All plans |
| SVG | Vector image — scales without quality loss | All plans |
| WebP | Compressed image — smaller file size than PNG | Pro & Max |
The JSON export is powerful — send it to ChatGPT or Claude, ask them to modify it, then reimport the updated JSON. This is the AI Edit workflow.
AI Chat
The AI chat panel is built into the canvas editor. Open it from the toolbar (AI button). You can:
- Describe a process or system — AI creates a full diagram
- Ask AI to modify the existing diagram ("add an error state", "split this step into two")
- Ask questions about your diagram structure
- Request analysis, suggestions, or missing steps
AI Generation
diagrams.love supports 400+ AI models via OpenRouter. Your prompt produces a structured JSON diagram which renders instantly on canvas.
Example Prompts
- "User registration flow with email verification and role selection"
- "E-commerce checkout process including payment failure handling"
- "CI/CD pipeline from commit to production deployment"
- "Customer support ticket lifecycle from open to resolved"
AI Edit Workflow
Use external AI tools (ChatGPT, Claude) to edit diagrams:
- Export your diagram as JSON (Export button)
- Paste the JSON into ChatGPT or Claude with your edit request
- Copy the returned JSON
- Import it back into diagrams.love (Import from JSON button)
MCP Integration
The MCP (Model Context Protocol) server lets AI tools like Claude Desktop, Cursor, and Windsurf create and edit diagrams directly — no copy-pasting JSON. Available on Pro and Max plans.
Quick Start
-
1
Get your token
Open Profile & Settings and copy your token from the "MCP Integration" section.
-
2
Add to your MCP client config
Add this block to your MCP client config (e.g.
~/.claude.jsonfor Claude Code):~/.claude.json{ "mcpServers": { "diagrams-love": { "command": "npx", "args": ["-y", "diagrams-love-mcp"], "env": { "DIAGRAMS_TOKEN": "your_token_here" } } } } -
3
Restart your MCP client
Restart Claude Code, Cursor, Windsurf, or your other MCP client. The
diagrams-loveserver is now available.
Available Commands
All commands are available as MCP tools. When used via Claude Code they are prefixed automatically (e.g. mcp__diagrams-love__list_schemas).
| Command | Group | Description |
|---|---|---|
list_schemas | Diagrams | List all your diagrams |
get_schema | Diagrams | Get a diagram with all elements and connections |
create_schema | Diagrams | Create a new diagram from JSON |
delete_schema | Diagrams | Delete a diagram permanently |
export_schema_to_json | Diagrams | Export a diagram to a local JSON file |
import_schema_from_json | Diagrams | Create or update a diagram from a local JSON file |
relayout_schema | Diagrams | Re-run auto-layout on a diagram |
list_projects | Projects | List all projects |
create_project | Projects | Create a new project folder |
update_project | Projects | Rename or update a project |
delete_project | Projects | Delete a project (diagrams inside are kept) |
move_schema_to_project | Projects | Move a diagram into a project |
list_tags | Tags | List all tags in a diagram |
add_tag | Tags | Add a new tag to a diagram |
remove_tag | Tags | Remove a tag from a diagram |
tag_element | Tags | Assign a tag to a specific element |
list_schema_versions | Versions | List version history of a diagram |
get_schema_version | Versions | Get a specific historical version |
restore_schema_version | Versions | Restore a diagram to a previous version |
JSON Diagram Format
Diagrams are plain JSON. Each element in the elements array follows this structure:
{
"id": "unique_id",
"type": "card", // card | condition | ascii | html | iframe
"title": "Card Title",
"color": "blue", // color name (see Colors section)
"tags": ["tag1"],
"description": "Description text",
"content": "...", // REQUIRED for ascii/html/iframe types
"connections": [
{"to": "target_id", "label": "optional label"}
]
}
x, y, width, or height — the layout engine calculates these automatically. Only provide the logical structure.
ascii, html, and iframe types, put the main content in the content field. There is no asciiContent or htmlContent — the field is always named content.
Full Example
{
"name": "User Registration",
"elements": [
{
"id": "start",
"type": "card",
"title": "Registration Form",
"color": "green",
"tags": ["user"],
"description": "User fills email and password",
"connections": [{"to": "validate", "label": "submit"}]
},
{
"id": "validate",
"type": "condition",
"title": "Valid?",
"color": "yellow",
"connections": [
{"to": "save", "label": "yes"},
{"to": "error", "label": "no"}
]
},
{
"id": "save",
"type": "card",
"title": "Save to DB",
"color": "blue",
"description": "Create user record",
"connections": [{"to": "success"}]
},
{
"id": "error",
"type": "card",
"title": "Show Error",
"color": "red",
"connections": [{"to": "start", "label": "retry"}]
},
{
"id": "success",
"type": "card",
"title": "Success",
"color": "green"
}
]
}
Colors in JSON
Use color names (not hex values) for the color field. Valid values: default, blue, green, orange, purple, red, teal, yellow, gray, black.
Frequently Asked Questions
list_schema_versions, get_schema_version, and restore_schema_version.Troubleshooting
MCP token not working?
- Tokens don't expire unless manually revoked — check Profile
- Make sure you copied the entire token (no trailing spaces)
- MCP requires Node.js 18 or newer — check with
node --version
MCP not connecting?
- Check JSON syntax in your config file — even a trailing comma breaks it
- The environment variable must be named exactly
DIAGRAMS_TOKEN - MCP requires Pro or Max plan — Free plan cannot use MCP
- After editing the config, fully restart your MCP client (not just reload)
AI chat not responding?
- Check your AI credits balance in Profile → AI Settings
- Free plan: $3 one-time credits — upgrade to Pro or Max when depleted
- Try a different AI model — some may be temporarily unavailable on OpenRouter
Canvas not loading?
- Hard refresh the page: Ctrl+Shift+R (or Cmd+Shift+R on Mac)
- Check your internet connection — the canvas requires a live connection to load and save
- Try opening the diagram in a new browser tab
Need more help?
Use the chat widget at the bottom right of any page — we're here to help.
Visit our Contact page — we respond within 24 hours.
MCP package on npm: diagrams-love-mcp.