A free, open-source diagram canvas: MIT, local-first, no account, in your browser. One canvas, five ways in. Draw it. Write it as code, or paste Mermaid, D2 or Structurizr. Ask any of 10 AI providers, or a local model. Hand it to your coding agent: Claude Code edits the canvas you have open, live, over MCP. Or pull it from a GitHub repo, every arrow citing its file and line. The CLI checks drift in CI, so diagrams keep up with your code.
This is the 2nd launch from OpenFlowKit. View more
OpenFlowKit 2
Launched this week
Free, open-source diagrams you and your agent edit together
A free, open-source diagram canvas: MIT, local-first, no account, in your browser. One canvas, five ways in. Draw it. Write it as code, or paste Mermaid, D2 or Structurizr. Ask any of 10 AI providers, or a local model. Hand it to your coding agent: Claude Code edits the canvas you have open, live, over MCP. Or pull it from a GitHub repo, every arrow citing its file and line. The CLI checks drift in CI, so diagrams keep up with your code.
OpenFlowKit 2 has five ways to make a diagram: draw it, write it as code (or paste Mermaid, D2, Structurizr), ask any AI model or a local one, let Claude Code edit it over MCP, or map a GitHub repo with every arrow cited to a file and line.
If you could only keep one, which would it be, and what's missing from it? This decides what I build next.
Every team I've worked on had one: the architecture diagram that was right once, then quietly went stale. OpenFlowKit 2 goes live today, and it's built around keeping that one diagram current: you draw it or write it as code, your AI assistant proposes changes, your coding agent edits it over MCP.
What's yours? The system diagram, the onboarding flow, the database schema? I'd love to try the new version against real cases.
Hi everyone, I'm Varun. OpenFlowKit was here about 8 months ago as v1. Version 2 is a rebuild from scratch:
- One canvas, five ways in: draw it, write it as code, ask any AI model (or a local one), hand it to your coding agent, or pull it from a GitHub repo
- Your coding agent edits the canvas you have open, live, over MCP (npx -y openflowkit mcp). Every change is one undo step
- Text and canvas are the same diagram: write it as code, or paste Mermaid, D2 or Structurizr
- The repo map cites the file and line behind every arrow, so you can check it instead of trusting it
Why I built it: every team I've worked on had an architecture diagram that was right once. The code kept moving, the diagram didn't, and new people learned the system from a picture nobody trusted. So everything here is built to keep the diagram current: you, your AI and your agent all edit the same one.
Try it with no account: app.openflowkit.com
Honest limits: the map reads code statically (imports and config files, not running traffic), reads public GitHub repos in the browser (run the CLI on a checkout for private ones), and is weaker on .NET and Elixir projects without containers. There's no real-time collaboration yet.
It's free and MIT licensed, and I built it on my own.
A real question: what's the diagram you keep redrawing? Try it there and tell me what got in the way.
Report
The one I keep redrawing is which service is allowed to touch which table, and static imports is exactly where that one falls over. An import graph tells you what can call what, not what does, so the edges I care about are the ones that only exist at runtime, a queue, a webhook, a cron job hitting an endpoint nobody imports. Drift check will happily tell me the diagram is current while the edge that would actually hurt me was never on it. Worth saying you listed that limit yourself, most launches bury it.
@asadmalik901 Spot on, and that’s exactly the gap. Imports show what can talk, not what does. Queues, webhooks and cron edges are the ones I most want to get right next. Which would help you more: reading them from config (queue names, cron files, webhook routes), or a way to add them by hand so drift check guards them too?
The one I keep redrawing is which service is allowed to touch which table, and static imports is exactly where that one falls over. An import graph tells you what can call what, not what does, so the edges I care about are the ones that only exist at runtime, a queue, a webhook, a cron job hitting an endpoint nobody imports. Drift check will happily tell me the diagram is current while the edge that would actually hurt me was never on it. Worth saying you listed that limit yourself, most launches bury it.
@asadmalik901 Spot on, and that’s exactly the gap. Imports show what can talk, not what does. Queues, webhooks and cron edges are the ones I most want to get right next. Which would help you more: reading them from config (queue names, cron files, webhook routes), or a way to add them by hand so drift check guards them too?