{
  "markdown": "<div align=\"center\">\n\n<br/>\n\n<img src=\"public/favicon.svg\" width=\"72\" alt=\"OpenFlowKit\" />\n\n<br/>\n<br/>\n\n<h1>OpenFlowKit</h1>\n\n<h3>The open-source diagramming studio for builders.</h3>\n\n<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>\n\n<br/>\n\n<p>\n  <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>\n  <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>\n  <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>\n  <img src=\"https://img.shields.io/badge/React-19-61dafb.svg?style=flat-square\" alt=\"React 19\" />\n  <img src=\"https://img.shields.io/badge/TypeScript-5-3178c6.svg?style=flat-square\" alt=\"TypeScript 5\" />\n  <img src=\"https://img.shields.io/badge/Vite-6-646cff.svg?style=flat-square\" alt=\"Vite 6\" />\n  <img src=\"https://img.shields.io/badge/PRs-Welcome-2dd4bf.svg?style=flat-square\" alt=\"PRs Welcome\" />\n</p>\n\n<br/>\n\n<p>\n  <a href=\"https://app.openflowkit.com\"><b>→ Launch the App</b></a>\n  &nbsp;&nbsp;|&nbsp;&nbsp;\n  <a href=\"https://docs.openflowkit.com\">Documentation</a>\n  &nbsp;&nbsp;|&nbsp;&nbsp;\n  <a href=\"https://openflowkit.com\">Website</a>\n  &nbsp;&nbsp;|&nbsp;&nbsp;\n  <a href=\"https://github.com/Vrun-design/openflowkit/issues\">Issues</a>\n  &nbsp;&nbsp;|&nbsp;&nbsp;\n  <a href=\"CONTRIBUTING.md\">Contribute</a>\n</p>\n\n<br/>\n\n<a href=\"https://www.producthunt.com/products/openflowkit\" target=\"_blank\">\n  <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\" />\n</a>\n\n<br/>\n<br/>\n\n<img src=\"readme-media/GIF-OFK-F.gif\" alt=\"OpenFlowKit in action\" width=\"100%\" />\n\n<br/>\n<br/>\n\n<table>\n<tr>\n<td align=\"center\"><b>✨ Mermaid → Icons</b><br/><sub>Paste Mermaid · 1,600+ icons<br/>auto-assigned · beautiful</sub></td>\n<td align=\"center\"><b>🤖 AI Generation</b><br/><sub>10 providers inc. local Ollama<br/>Direct-to-canvas output</sub></td>\n<td align=\"center\"><b>`{}` Diagram as Code</b><br/><sub>Bidirectional live sync<br/>Git-friendly DSL</sub></td>\n<td align=\"center\"><b>🧩 Asset Libraries</b><br/><sub>Developer · AWS · Azure<br/>GCP · CNCF · Icons</sub></td>\n<td align=\"center\"><b>🎬 Cinematic MP4</b><br/><sub>WebCodecs H.264<br/>Faster-than-realtime</sub></td>\n</tr>\n<tr>\n<td align=\"center\"><b>🧷 Anchored Layout</b><br/><sub>Pin nodes — auto-layout<br/>rearranges around them</sub></td>\n<td align=\"center\"><b>🪄 MCP Server</b><br/><sub>Drive from Claude Desktop,<br/>Cursor, Windsurf</sub></td>\n<td align=\"center\"><b>⚡ Worker Layout</b><br/><sub>ELK runs off main thread<br/>UI stays responsive</sub></td>\n<td align=\"center\"><b>🦙 Local AI</b><br/><sub>Ollama localhost preset<br/>fully offline diagramming</sub></td>\n<td align=\"center\"><b>♻️ Self-Correcting AI</b><br/><sub>Bad DSL → AI sees its own<br/>output and repairs it</sub></td>\n</tr>\n</table>\n\n</div>\n\n<br/>\n\n---\n\n## See it in action\n\n<table>\n<tr>\n<td width=\"33%\">\n  <img src=\"readme-media/Sample -GIF-1.gif\" alt=\"OpenFlowKit demo 1\" width=\"100%\" />\n</td>\n<td width=\"33%\">\n  <img src=\"readme-media/Sample -GIF-2.gif\" alt=\"OpenFlowKit demo 2\" width=\"100%\" />\n</td>\n<td width=\"33%\">\n  <img src=\"readme-media/Sample -GIF-3.gif\" alt=\"OpenFlowKit demo 3\" width=\"100%\" />\n</td>\n</tr>\n</table>\n\n<br/>\n\n---\n\n## Why OpenFlowKit?\n\nEvery diagramming tool makes a compromise. OpenFlowKit doesn't.\n\n| Tool                    | What's missing                                                                |\n| ----------------------- | ----------------------------------------------------------------------------- |\n| **Excalidraw / tldraw** | Freeform whiteboards — no structured diagram types, no DSL, no code imports   |\n| **Mermaid.js**          | Code-only — no visual canvas, no AI, no interactive editor                    |\n| **Draw.io**             | Decade-old UX — Limited AI integration, no developer import pipelines         |\n| **Lucidchart / Miro**   | Cloud lock-in — expensive, account required, your data lives on their servers |\n| **PlantUML**            | Server-dependent rendering — no visual editor, no local-first model           |\n\nOpenFlowKit 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.\n\n---\n\n## Feature highlights\n\n|                                       | OpenFlowKit | Excalidraw | Draw.io | Mermaid | Lucidchart |\n| ------------------------------------- | :---------: | :--------: | :-----: | :-----: | :--------: |\n| Visual canvas editor                  |     ✅      |     ✅     |   ✅    |   ❌    |     ✅     |\n| Bidirectional diagram-as-code         |     ✅      |     ❌     |   ❌    |   ✅    |     ❌     |\n| AI generation (10 providers + Ollama) |     ✅      |     ❌     |   ❌    |   ❌    |  Limited   |\n| Mermaid import (8 types)              |     ✅      |     ❌     |   ⚠️    |   ✅    |     ❌     |\n| Auto-icon assignment (1,600+)         |     ✅      |     ❌     |   ❌    |   ❌    |     ❌     |\n| AWS / Azure / GCP / CNCF icons        |     ✅      |     ❌     |   ✅    | Partial |     ✅     |\n| Anchored auto-layout (pin nodes)      |     ✅      |     ❌     |   ❌    |   ❌    |     ❌     |\n| Cinematic MP4 export (WebCodecs)      |     ✅      |     ❌     |   ❌    |   ❌    |     ❌     |\n| Figma export (editable SVG)           |     ✅      |     ❌     |   ❌    |   ❌    |     ❌     |\n| No account required                   |     ✅      |     ✅     |   ✅    |   ✅    |     ❌     |\n| Open source (MIT)                     |     ✅      |     ✅     |   ✅    |   ✅    |     ❌     |\n\n---\n\n## Paste Mermaid → Beautiful Diagrams\n\nPaste 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.\n\n```\nflowchart TD\n  API[Express API] --> DB[(PostgreSQL)]\n  DB --> Cache[Redis Cache]\n  Cache --> Queue[RabbitMQ]\n```\n\nPaste 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.\n\n**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.\n\n### How it works\n\n1. **Paste Mermaid** on the canvas or in the code panel\n2. **Semantic classifier** detects technology names (PostgreSQL, Redis, Express, Lambda, etc.)\n3. **Icon matcher** searches 1,600+ icons across all catalogs — exact match, then alias, then substring\n4. **Enricher** assigns colors, icons, and provider SVGs to every node\n5. **ELK layout** arranges everything cleanly\n\n### Mermaid quality gates\n\n- `npm run test:mermaid` runs the broad Mermaid parser/plugin/round-trip gate\n- `npm run test:mermaid:layout` runs the layout, import-state, and recovery corpus gate\n- `npm run test:mermaid:gold` runs both together\n\n### AI generation (API key required)\n\nDescribe your system in plain English. AI generates a diagram on the canvas with correct icons applied automatically.\n\n| Prompt                                    | Output                                  |\n| ----------------------------------------- | --------------------------------------- |\n| \"Node.js API with PostgreSQL and Redis\"   | 3 nodes with correct icons              |\n| \"AWS Lambda → SQS → DynamoDB\"             | 3 nodes with AWS icons                  |\n| \"React frontend → Express → MongoDB → S3\" | 4 nodes across developer + AWS catalogs |\n\n10 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.\n\n---\n\n## Home first, editor second\n\nOpenFlowKit now treats the product as two clear surfaces:\n\n- **Home** for creating, opening, duplicating, importing, and organizing flows\n- **Editor** for actual canvas work once a real document exists\n\nThat 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.\n\n---\n\n## Flowpilot — AI generation with any model\n\nFlowpilot 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.\n\n**10 providers. Bring your own key. Switch any time. One runs entirely on your laptop.**\n\n| Provider            | Default model                              | Why use it                                      |\n| ------------------- | ------------------------------------------ | ----------------------------------------------- |\n| 🦙 **Ollama (local)** | `llama3.2`                               | **Fully offline.** No key, no network, no cost. |\n| Google Gemini       | `gemini-2.5-flash-lite`                    | Free tier available, fast, browser-safe         |\n| OpenAI              | `gpt-5-mini`                               | Best reasoning for complex architectures        |\n| Anthropic Claude    | `claude-sonnet-4-6`                        | Excellent code and system understanding         |\n| Groq                | `meta-llama/llama-4-scout-17b-16e-instruct`| Fastest open-source inference available         |\n| Mistral             | `mistral-large-latest`                     | Strong European privacy-first alternative       |\n| NVIDIA NIM          | `meta/llama-4-maverick-17b-128e-instruct`  | Enterprise GPU inference                        |\n| Cerebras            | `gpt-oss-120b`                             | Ultra-fast on WSE-3 silicon                     |\n| OpenRouter          | `google/gemini-2.5-pro`                    | Access 300+ models through one key              |\n| **Custom endpoint** | Any model                                  | LM Studio, vLLM, or any OpenAI-compatible API   |\n\nNo proxy. No middleman. Direct browser-to-provider requests.\n\n---\n\n## OpenFlow DSL — diagram as code\n\nEvery diagram has a live code panel. Edit the canvas → code updates. Edit the code → canvas updates. Two-way, always in sync.\n\n```\nflowchart TB\n  client[React App]   --> gateway[API Gateway]\n  gateway             --> auth[Auth Service]\n  gateway             --> orders[Orders Service]\n  orders              --> db[(PostgreSQL)]\n  orders              --> cache[(Redis)]\n  auth                --> db\n```\n\n- Mermaid-compatible syntax — paste any Mermaid and it renders with auto-assigned icons\n- Specify icons directly: `{ archProvider: \"developer\", archResourceType: \"database-postgresql\" }`\n- Auto-icon resolution: nodes are enriched with the correct branded icon based on their label\n- Export to Mermaid, PlantUML, or JSON\n- Version snapshots — restore any previous state\n\n---\n\n## Structured diagram families\n\nNot a freeform whiteboard. Structured diagram types with opinionated defaults, correct relationship semantics, and purpose-built node styles.\n\n- **🔷 Flowcharts** — processes, decision trees, system flows\n- **☁️ Architecture** — AWS / Azure / GCP / CNCF cloud provider icons built in\n- **🗄️ Entity-Relationship** — typed fields, FK edges, one-to-many / many-to-many notation\n- **📐 Class diagrams** — UML with inheritance, composition, and interface relationships\n- **↔️ Sequence diagrams** — async messages, actors, and lifelines\n- **🧠 Mind maps** — collapsible radial trees with auto-layout\n- **🛤️ User journeys** — steps, phases, and sentiment scoring\n- **⚙️ State machines** — transitions, guards, entry and exit actions\n\n---\n\n## Editor workflow built for technical diagrams\n\nOpenFlowKit works best when you move between the right surfaces instead of forcing everything through one panel:\n\n- **Toolbar add menu** for quick insert actions\n- **Command Center** for templates, import, assets, search, layout, pages, layers, and design systems\n- **Studio** for Flowpilot, Mermaid, OpenFlow DSL, infra parsing, and linting\n- **Properties panel** for exact visual and metadata edits\n\nLarge diagrams also get better organization with multi-page documents, layers, sections, and local-first document recovery.\n\n---\n\n## 🎬 Cinematic Export — hardware-encoded MP4, no other OSS tool ships this\n\nTurn 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.\n\nDesigned for architecture reviews, onboarding docs, and demos where a static image doesn't cut it.\n\n> **No other open-source diagramming tool does this.**\n\nOn 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.\n\n---\n\n## 🪄 MCP Server — drive OpenFlowKit from Claude Desktop, Cursor, Windsurf\n\nPoint any MCP client at the [`@vrun-design/openflowkit-mcp`](mcp-server/) 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.\n\n```json\n{\n  \"mcpServers\": {\n    \"openflowkit\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@vrun-design/openflowkit-mcp\"]\n    }\n  }\n}\n```\n\nThen 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.\n\n- **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)\n- **5 resources** — DSL cheatsheet, template catalog, template bodies, full icon catalog, and per-provider icon catalogs\n- **3 prompts** — flowchart creation, Mermaid conversion, and codebase architecture, all using the client model\n- **Pure Node, zero infra cost** — runs on the user's machine, ships via npm\n\nFull setup, tool table, and workflow details in [`mcp-server/README.md`](mcp-server/README.md).\n\n---\n\n## Export everywhere\n\nBuild your diagram once. Take it anywhere.\n\n- **🎬 Cinematic WebM / MP4** — animated build walkthrough, browser-only, no upload required\n- **PNG / SVG** — transparent background, pixel-perfect at any resolution\n- **PDF** — print-ready, vector-crisp\n- **Mermaid** — paste directly into GitHub READMEs, Notion, Confluence, Linear\n- **PlantUML** — for enterprise toolchains and legacy integrations\n- **Figma** — full editable SVG import with preserved layers\n- **JSON** — complete round-trip import/export, no data loss\n\n---\n\n## Local-first by default — your data, your machine\n\nLocal-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.\n\n> 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.\n\n---\n\n## Canvas built for keyboard-first developers\n\n| Shortcut         | Action                                                    |\n| ---------------- | --------------------------------------------------------- |\n| `⌘ K` / `Ctrl K` | Command bar — search, import, layout, assets, and actions |\n| `⌘ \\` / `Ctrl \\` | Toggle the live code panel                                |\n| `⌘ Z` / `Ctrl Z` | Full undo with complete history                           |\n| `⌘ D` / `Ctrl D` | Duplicate selection                                       |\n| `⌘ G` / `Ctrl G` | Group selected nodes                                      |\n| `P`              | Pin / unpin selected nodes (anchored layout)              |\n| `⌘ /` / `Ctrl /` | Keyboard shortcuts reference                              |\n\nPlus: smart alignment guides, snap-to-grid, multi-select, pages, layers, sections, architecture lint, light/dark/system theme, and full i18n in 7 languages.\n\n---\n\n## What we are improving next\n\nRecently shipped (latest milestone):\n\n- ✅ **WebCodecs H.264 MP4 export** — faster-than-realtime, hardware-accelerated, deterministic\n- ✅ **MCP server** — `@vrun-design/openflowkit-mcp` for Claude Desktop, Cursor, Windsurf, any MCP client\n- ✅ **Anchored layout** — pin nodes so auto-layout arranges around them\n- ✅ **Ollama provider** — fully offline diagramming, no API key, no cost\n- ✅ **AI self-correction loop** — bad DSL → AI sees its own output + parser error → returns corrected DSL\n- ✅ **ELK in a Web Worker** — layout no longer blocks the UI thread\n- ✅ **Flowchart corpus 12 → 20 fixtures** with explicit known-gap pinning\n\nCurrent roadmap focus:\n\n- **`render_to_svg` MCP tool** — headless SVG render so AI clients can see the diagram, not just code\n- **GIF export for cinematic animations** — MP4 ships today; GIF export for zero-conversion embeds is next\n- **Mermaid family coverage** — gantt, c4, timeline, gitGraph, sankey, quadrant (view + edit-as-code)\n- **Mac / Linux / Windows desktop app** — Tauri shell wrapping the existing web app\n- better layers and page workflows for larger technical diagrams\n- smarter auto-layout defaults with less cleanup after import\n- performance boosts for bigger canvases and heavier sessions\n\n---\n\n## Get started in 30 seconds\n\n```bash\ngit clone https://github.com/Vrun-design/openflowkit.git\ncd openflowkit\nnpm install\nnpm run dev\n```\n\nOpen [http://localhost:5173](http://localhost:5173). Done.\n\n> **Zero environment variables required.** AI provider keys are configured in the in-app settings panel at runtime — nothing goes in `.env`.\n\n---\n\n## Self-host\n\nOpenFlowKit is a pure static SPA. There is no backend. Deploy the `dist/` folder anywhere that serves HTML.\n\n**Cloudflare Pages / Netlify / Vercel:**\n\n```bash\nnpm run build\n# upload dist/ to your provider\n```\n\n**Docker:**\n\n```bash\ndocker build -t openflowkit .\ndocker run --rm -p 3045:3045 openflowkit\n```\n\nOpen [http://localhost:3045](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.\n\nNo database. No secrets. No infrastructure. One folder, or one container.\n\n---\n\n## Tech stack\n\n| Layer         | Technology                                                |\n| ------------- | --------------------------------------------------------- |\n| Framework     | React 19 + TypeScript 5                                   |\n| Build         | Vite 6                                                    |\n| Canvas        | React Flow (XYFlow)                                       |\n| Auto-layout   | ELK.js — runs in a Web Worker, off the main thread        |\n| Video export  | WebCodecs `VideoEncoder` + `mp4-muxer` (MediaRecorder fallback) |\n| State         | Zustand                                                   |\n| Storage       | IndexedDB — local-first, no backend                       |\n| Styling       | Tailwind CSS                                              |\n| Agent surface | `@vrun-design/openflowkit-mcp` — Model Context Protocol stdio  |\n| Collaboration | WebRTC P2P (opt-in, off by default)                       |\n| i18n          | react-i18next — 7 languages                               |\n| Testing       | Vitest + Playwright                                       |\n\n---\n\n## Contributing\n\nAll contributions are welcome — bug fixes, new diagram types, parser improvements, translations, and documentation.\n\nStart here:\n\n```bash\nnpm run dev        # development server at localhost:5173\nnpm run test       # unit tests via Vitest\nnpm run test:e2e   # end-to-end tests via Playwright\nnpm run lint       # ESLint + TypeScript type-check\n```\n\n**Good first issues** are tagged [`good first issue`](https://github.com/Vrun-design/openflowkit/labels/good%20first%20issue). Before opening a PR, please read [CONTRIBUTING.md](CONTRIBUTING.md).\n\n---\n\n<div align=\"center\">\n\n<br/>\n\n**OpenFlowKit** is [MIT licensed](LICENSE), locally hosted, and built in the open.<br/>\nNo cloud required. No account required. No lock-in.\n\n<br/>\n\n|                                                                                            |                                                                                                      |                                        |                                                                      |\n| :----------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------: | :------------------------------------: | :------------------------------------------------------------------: |\n|                      [**→ Launch App**](https://app.openflowkit.com)                       |                               [**Docs**](https://docs.openflowkit.com)                               | [**Website**](https://openflowkit.com) | [**Changelog**](https://github.com/Vrun-design/openflowkit/releases) |\n| [Bug Report](https://github.com/Vrun-design/openflowkit/issues/new?template=bug_report.md) | [Feature Request](https://github.com/Vrun-design/openflowkit/issues/new?template=feature_request.md) | [Contributing Guide](CONTRIBUTING.md)  |                    [Security Policy](SECURITY.md)                    |\n\n<br/>\n\n---\n\n<br/>\n\n**[If OpenFlowKit saves you time, the most impactful thing you can do is give it a star.](https://github.com/Vrun-design/openflowkit/stargazers)**<br/>\n**[It helps other developers find the project.](https://github.com/Vrun-design/openflowkit/stargazers)**\n\n<br/>\n\n[![Star OpenFlowKit on GitHub](https://img.shields.io/github/stars/Vrun-design/openflowkit?style=for-the-badge&logo=github&color=facc15&label=Star%20on%20GitHub)](https://github.com/Vrun-design/openflowkit/stargazers)\n\n<br/>\n\n[![Star History Chart](https://api.star-history.com/svg?repos=Vrun-design/openflowkit&type=Date)](https://star-history.com/#Vrun-design/openflowkit&Date)\n\n<br/>\n\n<sub>\nReact 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\n</sub>\n\n<br/>\n\n<sub>\nMIT Licensed &nbsp;·&nbsp; Local-first &nbsp;·&nbsp; No telemetry &nbsp;·&nbsp; No account &nbsp;·&nbsp; No server-side storage &nbsp;·&nbsp; No lock-in\n</sub>\n\n<br/>\n\n</div>\n",
  "bytes": 24036,
  "sha": "12cde563976117be6f54ac09c7a726d429696bb54346cc71ce5968ee71ab658b",
  "repo_slug": "vrun-design/openflowkit",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_vrun_design_openflowkit_mcp_417abb04/readme"
}