Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Local-first OpenFlowKit diagramming tools for Claude, Cursor, Windsurf & other MCP clients.

README.md

<div align="center">

<br/>

<img src="public/favicon.svg" width="72" alt="OpenFlowKit" />

<br/> <br/>

<h1>OpenFlowKit</h1>

<h3>The open-source diagramming studio for builders.</h3>

<p>Create flows from templates, code, structured imports, or AI. Refine them visually, keep them local-first, and export as <b>Cinematic MP4 walkthroughs</b> — or drive everything from Claude / Cursor / Windsurf via our first-party <b>MCP server</b>.</p>

<br/>

<p> <a href="https://github.com/Vrun-design/openflowkit/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-f97316.svg?style=flat-square" alt="MIT License" /></a> <a href="https://github.com/Vrun-design/openflowkit/stargazers"><img src="https://img.shields.io/github/stars/Vrun-design/openflowkit?style=flat-square&color=facc15&label=Stars" alt="GitHub Stars" /></a> <a href="https://github.com/Vrun-design/openflowkit/actions"><img src="https://img.shields.io/github/actions/workflow/status/Vrun-design/openflowkit/quality.yml?style=flat-square&label=CI" alt="CI" /></a> <img src="https://img.shields.io/badge/React-19-61dafb.svg?style=flat-square" alt="React 19" /> <img src="https://img.shields.io/badge/TypeScript-5-3178c6.svg?style=flat-square" alt="TypeScript 5" /> <img src="https://img.shields.io/badge/Vite-6-646cff.svg?style=flat-square" alt="Vite 6" /> <img src="https://img.shields.io/badge/PRs-Welcome-2dd4bf.svg?style=flat-square" alt="PRs Welcome" /> </p>

<br/>

<p> <a href="https://app.openflowkit.com"><b>→ Launch the App</b></a> &nbsp;&nbsp;|&nbsp;&nbsp; <a href="https://docs.openflowkit.com">Documentation</a> &nbsp;&nbsp;|&nbsp;&nbsp; <a href="https://openflowkit.com">Website</a> &nbsp;&nbsp;|&nbsp;&nbsp; <a href="https://github.com/Vrun-design/openflowkit/issues">Issues</a> &nbsp;&nbsp;|&nbsp;&nbsp; <a href="CONTRIBUTING.md">Contribute</a> </p>

<br/>

<a href="https://www.producthunt.com/products/openflowkit" target="_blank"> <img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-topic-badge.svg?post_id=1081019&theme=light&period=weekly&topic_id=44" alt="OpenFlowKit on Product Hunt" width="200" height="43" /> </a>

<br/> <br/>

<img src="readme-media/GIF-OFK-F.gif" alt="OpenFlowKit in action" width="100%" />

<br/> <br/>

<table> <tr> <td align="center"><b>✨ Mermaid → Icons</b><br/><sub>Paste Mermaid · 1,600+ icons<br/>auto-assigned · beautiful</sub></td> <td align="center"><b>🤖 AI Generation</b><br/><sub>10 providers inc. local Ollama<br/>Direct-to-canvas output</sub></td> <td align="center"><b>{} Diagram as Code</b><br/><sub>Bidirectional live sync<br/>Git-friendly DSL</sub></td> <td align="center"><b>🧩 Asset Libraries</b><br/><sub>Developer · AWS · Azure<br/>GCP · CNCF · Icons</sub></td> <td align="center"><b>🎬 Cinematic MP4</b><br/><sub>WebCodecs H.264<br/>Faster-than-realtime</sub></td> </tr> <tr> <td align="center"><b>🧷 Anchored Layout</b><br/><sub>Pin nodes — auto-layout<br/>rearranges around them</sub></td> <td align="center"><b>🪄 MCP Server</b><br/><sub>Drive from Claude Desktop,<br/>Cursor, Windsurf</sub></td> <td align="center"><b>⚡ Worker Layout</b><br/><sub>ELK runs off main thread<br/>UI stays responsive</sub></td> <td align="center"><b>🦙 Local AI</b><br/><sub>Ollama localhost preset<br/>fully offline diagramming</sub></td> <td align="center"><b>♻️ Self-Correcting AI</b><br/><sub>Bad DSL → AI sees its own<br/>output and repairs it</sub></td> </tr> </table>

</div>

<br/>

---

See it in action

<table> <tr> <td width="33%"> <img src="readme-media/Sample -GIF-1.gif" alt="OpenFlowKit demo 1" width="100%" /> </td> <td width="33%"> <img src="readme-media/Sample -GIF-2.gif" alt="OpenFlowKit demo 2" width="100%" /> </td> <td width="33%"> <img src="readme-media/Sample -GIF-3.gif" alt="OpenFlowKit demo 3" width="100%" /> </td> </tr> </table>

<br/>

---

Why OpenFlowKit?

Every diagramming tool makes a compromise. OpenFlowKit doesn't.

| Tool | What's missing | | ----------------------- | ----------------------------------------------------------------------------- | | Excalidraw / tldraw | Freeform whiteboards — no structured diagram types, no DSL, no code imports | | Mermaid.js | Code-only — no visual canvas, no AI, no interactive editor | | Draw.io | Decade-old UX — Limited AI integration, no developer import pipelines | | Lucidchart / Miro | Cloud lock-in — expensive, account required, your data lives on their servers | | PlantUML | Server-dependent rendering — no visual editor, no local-first model |

OpenFlowKit is the only MIT-licensed tool that combines a real workspace home, a professional visual canvas, bidirectional diagram-as-code, AI generation from 10 providers (including fully-local Ollama), automatic icon assignment from 1,600+ tech icons, anchored auto-layout, hardware-encoded cinematic MP4 export, and a Model Context Protocol server so Claude / Cursor / Windsurf can drive it directly — all with zero server-side storage.

---

Feature highlights

| | OpenFlowKit | Excalidraw | Draw.io | Mermaid | Lucidchart | | ------------------------------------- | :---------: | :--------: | :-----: | :-----: | :--------: | | Visual canvas editor | ✅ | ✅ | ✅ | ❌ | ✅ | | Bidirectional diagram-as-code | ✅ | ❌ | ❌ | ✅ | ❌ | | AI generation (10 providers + Ollama) | ✅ | ❌ | ❌ | ❌ | Limited | | Mermaid import (8 types) | ✅ | ❌ | ⚠️ | ✅ | ❌ | | Auto-icon assignment (1,600+) | ✅ | ❌ | ❌ | ❌ | ❌ | | AWS / Azure / GCP / CNCF icons | ✅ | ❌ | ✅ | Partial | ✅ | | Anchored auto-layout (pin nodes) | ✅ | ❌ | ❌ | ❌ | ❌ | | Cinematic MP4 export (WebCodecs) | ✅ | ❌ | ❌ | ❌ | ❌ | | Figma export (editable SVG) | ✅ | ❌ | ❌ | ❌ | ❌ | | No account required | ✅ | ✅ | ✅ | ✅ | ❌ | | Open source (MIT) | ✅ | ✅ | ✅ | ✅ | ❌ |

---

Paste Mermaid → Beautiful Diagrams

Paste any Mermaid flowchart, architecture, state diagram, class diagram, ER diagram, sequence diagram, mindmap, or journey — all 8 diagram families. OpenFlowKit renders it on a visual canvas and automatically assigns the correct branded icon to every technology node.

flowchart TD
  API[Express API] --> DB[(PostgreSQL)]
  DB --> Cache[Redis Cache]
  Cache --> Queue[RabbitMQ]

Paste this → you get the Express wordmark, PostgreSQL elephant, Redis logo, and RabbitMQ icon — all auto-detected, all beautifully laid out. No other tool does this.

1,600+ icons from developer, AWS, Azure, CNCF, and GCP catalogs are matched automatically based on node labels. No manual drag-and-drop. No configuration.

How it works

  1. Paste Mermaid on the canvas or in the code panel
  2. Semantic classifier detects technology names (PostgreSQL, Redis, Express, Lambda, etc.)
  3. Icon matcher searches 1,600+ icons across all catalogs — exact match, then alias, then substring
  4. Enricher assigns colors, icons, and provider SVGs to every node
  5. ELK layout arranges everything cleanly

Mermaid quality gates

  • npm run test:mermaid runs the broad Mermaid parser/plugin/round-trip gate
  • npm run test:mermaid:layout runs the layout, import-state, and recovery corpus gate
  • npm run test:mermaid:gold runs both together

AI generation (API key required)

Describe your system in plain English. AI generates a diagram on the canvas with correct icons applied automatically.

| Prompt | Output | | ----------------------------------------- | --------------------------------------- | | "Node.js API with PostgreSQL and Redis" | 3 nodes with correct icons | | "AWS Lambda → SQS → DynamoDB" | 3 nodes with AWS icons | | "React frontend → Express → MongoDB → S3" | 4 nodes across developer + AWS catalogs |

10 providers supported: Google Gemini, OpenAI, Anthropic Claude, Groq, Mistral, NVIDIA NIM, Cerebras, OpenRouter, Ollama (fully local), or any custom OpenAI-compatible endpoint. Bad DSL from any provider is now auto-repaired — the model sees its own broken output and the parser error, then returns corrected DSL in a single follow-up turn.

---

Home first, editor second

OpenFlowKit now treats the product as two clear surfaces:

  • Home for creating, opening, duplicating, importing, and organizing flows
  • Editor for actual canvas work once a real document exists

That means the app does not create a fake default flow just to get you onto the canvas. If you delete everything, your workspace can stay empty until you intentionally create the next flow.

---

Flowpilot — AI generation with any model

Flowpilot sits directly in the editor. Describe a system, paste source code, upload a screenshot, or ask it to refine what's already on the canvas. Your API key is stored in your browser and sent directly to the provider — OpenFlowKit's servers never see it.

10 providers. Bring your own key. Switch any time. One runs entirely on your laptop.

| Provider | Default model | Why use it | | ------------------- | ------------------------------------------ | ----------------------------------------------- | | 🦙 Ollama (local) | llama3.2 | Fully offline. No key, no network, no cost. | | Google Gemini | gemini-2.5-flash-lite | Free tier available, fast, browser-safe | | OpenAI | gpt-5-mini | Best reasoning for complex architectures | | Anthropic Claude | claude-sonnet-4-6 | Excellent code and system understanding | | Groq | meta-llama/llama-4-scout-17b-16e-instruct| Fastest open-source inference available | | Mistral | mistral-large-latest | Strong European privacy-first alternative | | NVIDIA NIM | meta/llama-4-maverick-17b-128e-instruct | Enterprise GPU inference | | Cerebras | gpt-oss-120b | Ultra-fast on WSE-3 silicon | | OpenRouter | google/gemini-2.5-pro | Access 300+ models through one key | | Custom endpoint | Any model | LM Studio, vLLM, or any OpenAI-compatible API |

No proxy. No middleman. Direct browser-to-provider requests.

---

OpenFlow DSL — diagram as code

Every diagram has a live code panel. Edit the canvas → code updates. Edit the code → canvas updates. Two-way, always in sync.

flowchart TB
  client[React App]   --> gateway[API Gateway]
  gateway             --> auth[Auth Service]
  gateway             --> orders[Orders Service]
  orders              --> db[(PostgreSQL)]
  orders              --> cache[(Redis)]
  auth                --> db
  • Mermaid-compatible syntax — paste any Mermaid and it renders with auto-assigned icons
  • Specify icons directly: { archProvider: "developer", archResourceType: "database-postgresql" }
  • Auto-icon resolution: nodes are enriched with the correct branded icon based on their label
  • Export to Mermaid, PlantUML, or JSON
  • Version snapshots — restore any previous state

---

Structured diagram families

Not a freeform whiteboard. Structured diagram types with opinionated defaults, correct relationship semantics, and purpose-built node styles.

  • 🔷 Flowcharts — processes, decision trees, system flows
  • ☁️ Architecture — AWS / Azure / GCP / CNCF cloud provider icons built in
  • 🗄️ Entity-Relationship — typed fields, FK edges, one-to-many / many-to-many notation
  • 📐 Class diagrams — UML with inheritance, composition, and interface relationships
  • ↔️ Sequence diagrams — async messages, actors, and lifelines
  • 🧠 Mind maps — collapsible radial trees with auto-layout
  • 🛤️ User journeys — steps, phases, and sentiment scoring
  • ⚙️ State machines — transitions, guards, entry and exit actions

---

Editor workflow built for technical diagrams

OpenFlowKit works best when you move between the right surfaces instead of forcing everything through one panel:

  • Toolbar add menu for quick insert actions
  • Command Center for templates, import, assets, search, layout, pages, layers, and design systems
  • Studio for Flowpilot, Mermaid, OpenFlow DSL, infra parsing, and linting
  • Properties panel for exact visual and metadata edits

Large diagrams also get better organization with multi-page documents, layers, sections, and local-first document recovery.

---

🎬 Cinematic Export — hardware-encoded MP4, no other OSS tool ships this

Turn any diagram into an animated video walkthrough — node by node, edge by edge — entirely in your browser. No upload, no server, no third-party tool.

Designed for architecture reviews, onboarding docs, and demos where a static image doesn't cut it.

No other open-source diagramming tool does this.

On modern browsers (Chrome / Edge / Safari 16.4+ / Firefox 130+) OpenFlowKit encodes via WebCodecs VideoEncoder + an in-browser MP4 muxer — H.264 baseline, hardware-accelerated, faster than real-time, deterministic frame timing. No more dropped frames under load. MediaRecorder remains a fallback for older browsers, so the feature is purely additive.

---

🪄 MCP Server — drive OpenFlowKit from Claude Desktop, Cursor, Windsurf

Point any MCP client at the @vrun-design/openflowkit-mcp package and your AI assistant gains local-first diagramming tools — no API key, no cloud round-trip. Your client already has an LLM, so OpenFlowKit MCP supplies deterministic local validation, codebase analysis, templates, icon lookup, and viewer links.

{
  "mcpServers": {
    "openflowkit": {
      "command": "npx",
      "args": ["-y", "@vrun-design/openflowkit-mcp"]
    }
  }
}

Then ask Claude: "Read the OpenFlowKit DSL cheatsheet, create a checkout flow with a promo-code branch and a Stripe webhook step, validate it, and create a viewer URL." The DSL comes back in seconds and stays editable in OpenFlowKit.

  • 8 local-first tools — validate DSL, create viewer URLs, analyze codebases, find icon slugs, fetch starter templates, and inspect capabilities (no API key, runs on your machine)
  • 5 resources — DSL cheatsheet, template catalog, template bodies, full icon catalog, and per-provider icon catalogs
  • 3 prompts — flowchart creation, Mermaid conversion, and codebase architecture, all using the client model
  • Pure Node, zero infra cost — runs on the user's machine, ships via npm

Full setup, tool table, and workflow details in mcp-server/README.md.

---

Export everywhere

Build your diagram once. Take it anywhere.

  • 🎬 Cinematic WebM / MP4 — animated build walkthrough, browser-only, no upload required
  • PNG / SVG — transparent background, pixel-perfect at any resolution
  • PDF — print-ready, vector-crisp
  • Mermaid — paste directly into GitHub READMEs, Notion, Confluence, Linear
  • PlantUML — for enterprise toolchains and legacy integrations
  • Figma — full editable SVG import with preserved layers
  • JSON — complete round-trip import/export, no data loss

---

Local-first by default — your data, your machine

Local-first is the default. Your saved flows live in your browser's IndexedDB. Your AI keys stay on your device — every request goes directly from your browser to the provider you chose. Exports are explicit and run entirely client-side. No accounts, no telemetry, no server-side storage.

Real-time P2P collaboration over WebRTC exists in the codebase as an opt-in beta (set VITE_COLLABORATION_ENABLED=true). It is off by default while we redesign the signaling path for production reliability — the local-first experience does not depend on it.

---

Canvas built for keyboard-first developers

| Shortcut | Action | | ---------------- | --------------------------------------------------------- | | ⌘ K / Ctrl K | Command bar — search, import, layout, assets, and actions | | ⌘ \ / Ctrl \ | Toggle the live code panel | | ⌘ Z / Ctrl Z | Full undo with complete history | | ⌘ D / Ctrl D | Duplicate selection | | ⌘ G / Ctrl G | Group selected nodes | | P | Pin / unpin selected nodes (anchored layout) | | ⌘ / / Ctrl / | Keyboard shortcuts reference |

Plus: smart alignment guides, snap-to-grid, multi-select, pages, layers, sections, architecture lint, light/dark/system theme, and full i18n in 7 languages.

---

What we are improving next

Recently shipped (latest milestone):

  • WebCodecs H.264 MP4 export — faster-than-realtime, hardware-accelerated, deterministic
  • MCP server@vrun-design/openflowkit-mcp for Claude Desktop, Cursor, Windsurf, any MCP client
  • Anchored layout — pin nodes so auto-layout arranges around them
  • Ollama provider — fully offline diagramming, no API key, no cost
  • AI self-correction loop — bad DSL → AI sees its own output + parser error → returns corrected DSL
  • ELK in a Web Worker — layout no longer blocks the UI thread
  • Flowchart corpus 12 → 20 fixtures with explicit known-gap pinning

Current roadmap focus:

  • render_to_svg MCP tool — headless SVG render so AI clients can see the diagram, not just code
  • GIF export for cinematic animations — MP4 ships today; GIF export for zero-conversion embeds is next
  • Mermaid family coverage — gantt, c4, timeline, gitGraph, sankey, quadrant (view + edit-as-code)
  • Mac / Linux / Windows desktop app — Tauri shell wrapping the existing web app
  • better layers and page workflows for larger technical diagrams
  • smarter auto-layout defaults with less cleanup after import
  • performance boosts for bigger canvases and heavier sessions

---

Get started in 30 seconds

git clone https://github.com/Vrun-design/openflowkit.git
cd openflowkit
npm install
npm run dev

Open http://localhost:5173. Done.

Zero environment variables required. AI provider keys are configured in the in-app settings panel at runtime — nothing goes in .env.

---

Self-host

OpenFlowKit is a pure static SPA. There is no backend. Deploy the dist/ folder anywhere that serves HTML.

Cloudflare Pages / Netlify / Vercel:

npm run build
# upload dist/ to your provider

Docker:

docker build -t openflowkit .
docker run --rm -p 3045:3045 openflowkit

Open http://localhost:3045. The container serves the production build with nginx, SPA route fallback, long-lived caching for hashed assets, and the same security headers used by the static hosting path.

No database. No secrets. No infrastructure. One folder, or one container.

---

Tech stack

| Layer | Technology | | ------------- | --------------------------------------------------------- | | Framework | React 19 + TypeScript 5 | | Build | Vite 6 | | Canvas | React Flow (XYFlow) | | Auto-layout | ELK.js — runs in a Web Worker, off the main thread | | Video export | WebCodecs VideoEncoder + mp4-muxer (MediaRecorder fallback) | | State | Zustand | | Storage | IndexedDB — local-first, no backend | | Styling | Tailwind CSS | | Agent surface | @vrun-design/openflowkit-mcp — Model Context Protocol stdio | | Collaboration | WebRTC P2P (opt-in, off by default) | | i18n | react-i18next — 7 languages | | Testing | Vitest + Playwright |

---

Contributing

All contributions are welcome — bug fixes, new diagram types, parser improvements, translations, and documentation.

Start here:

npm run dev        # development server at localhost:5173
npm run test       # unit tests via Vitest
npm run test:e2e   # end-to-end tests via Playwright
npm run lint       # ESLint + TypeScript type-check

Good first issues are tagged good first issue. Before opening a PR, please read CONTRIBUTING.md.

---

<div align="center">

<br/>

OpenFlowKit is MIT licensed, locally hosted, and built in the open.<br/> No cloud required. No account required. No lock-in.

<br/>

| | | | | | :----------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------: | :------------------------------------: | :------------------------------------------------------------------: | | → Launch App | Docs | Website | Changelog | | Bug Report | Feature Request | Contributing Guide | Security Policy |

<br/>

---

<br/>

If OpenFlowKit saves you time, the most impactful thing you can do is give it a star.<br/> It helps other developers find the project.

<br/>

![Star OpenFlowKit on GitHub](https://github.com/Vrun-design/openflowkit/stargazers)

<br/>

![Star History Chart](https://star-history.com/#Vrun-design/openflowkit&Date)

<br/>

<sub> React 19 &nbsp;·&nbsp; TypeScript 5 &nbsp;·&nbsp; Vite 6 &nbsp;·&nbsp; XYFlow &nbsp;·&nbsp; ELK.js (worker) &nbsp;·&nbsp; WebCodecs + mp4-muxer &nbsp;·&nbsp; MCP SDK &nbsp;·&nbsp; Zustand &nbsp;·&nbsp; Yjs &nbsp;·&nbsp; Framer Motion &nbsp;·&nbsp; Tailwind CSS &nbsp;·&nbsp; Cloudflare Pages </sub>

<br/>

<sub> MIT Licensed &nbsp;·&nbsp; Local-first &nbsp;·&nbsp; No telemetry &nbsp;·&nbsp; No account &nbsp;·&nbsp; No server-side storage &nbsp;·&nbsp; No lock-in </sub>

<br/>

</div>

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use Other servers.