ELv2 Licensed · Free to self-host · Open source

Type it.
See it.
Ship it.

Paste the URL. Upload the file. Drop in the email. Whatever form your process lives in — Word doc, PDF, wiki page, or plain text — FlowScript extracts the steps and hands you back a clean, editable flowchart. No drawing. No dragging boxes.

✏️ Try it free — no account needed ⭐ View on GitHub
🙋 Help a brother out

How do you need this to work for you?

Vote anonymously. We're deciding what to build next.

Want to be notified when it ships? Drop your email — no spam, just a ping.

Got it — we'll be in touch.
incident.flow
@direction TB
@layout grid

#start Alert Received
Review monitoring dashboard

#decision Severity?
  -> 'P1' Page On-Call Engineer
  -> 'P2' Assign to Team Lead
  -> 'P3' Add to Backlog

Page On-Call Engineer
Investigate & Mitigate

#decision Resolved?
  -> 'yes' Write Post-Mortem
  ~> 'no' Investigate & Mitigate

Write Post-Mortem
#end Incident Closed
P1 P2 P3 yes no Alert Received Review monitoringdashboard Severity? Page On-Call Engineer Assign to Team Lead Add to Backlog Investigate & Mitigate Resolved? Write Post-Mortem Incident Closed
How it works

From text to diagram in seconds

Three ways to get a flowchart. Pick the one that fits your workflow.

01 — GENERATE

From a process document, get a diagram

Got a process in a Word doc, PDF, email, wiki page, or plain text? Paste it or upload it. The generator reads whatever form it's in, extracts the process, and renders a clean diagram. One click — no drawing required.

02 — REFINE

Edit in the live editor

The generated .flow opens in a Monaco-powered editor with live SVG preview. Tweak labels, add branches, fix the edges AI got wrong — syntax highlighting included.

03 — OWN IT

Self-host or integrate

One Docker container, your LLM key. Or skip the UI entirely — use the MCP server (compile_flow, render_flow) or call render() directly in TypeScript.

Everything you need. Nothing you don't.

11 shape types

Start, end, decision, process, subprocess, I/O, data, circle, note, manual, delay — each rendered with correct geometry.

Smart orthogonal routing

Right-angle edges with rounded corners. Visio-style line jumps at crossings. Retry edges render dashed automatically.

Dual layout engine

Structured grid for top-down flows. Dagre for swimlanes and groups. Automatic fallback when the grid would explode.

🤖

AI extraction

Any OpenAI-compatible provider — OpenAI, Grok, Groq, Ollama. Bring your own key. No data leaves your infrastructure.

🏊

Swimlanes

Assign nodes to actor lanes with #lane. Cross-lane edges route automatically between columns.

SVG export

Clean, scalable output with CSS classes and data attributes — ready to embed, animate, or post-process.

🔌

MCP server

compile_flow and render_flow tools over stdio. Drop FlowScript into any MCP-compatible AI agent.

✏️

Monaco live editor

Syntax highlighting, live SVG preview, zoom controls, light/dark theme. Runs entirely in the browser.

🐳

Self-hosted

One Docker container. No cloud dependency, no vendor lock-in. Your data, your infrastructure, your LLM key.

Deployment

Up in five minutes

Self-host the full stack — generator, editor, and LLM integration — with a single Docker container.

🐳 Docker Compose

Spin up the full generator + editor stack. Bring your own LLM API key — any OpenAI-compatible endpoint.

services:
  flowscript:
    build:
      context: https://github.com/
               kilrkrow/flowscript.git
    ports:
      - "3000:3000"
    environment:
      LLM_API_KEY:  your-key-here
      LLM_BASE_URL: https://api.x.ai/v1
      LLM_MODEL:    grok-3-mini

📦 TypeScript / Node

Use FlowScript as a library. Import the renderer directly — no server required for pure SVG generation.

import { render } from 'flowscript';

const svg = render(`
  #start Begin
    Process Data
    #decision Valid?
      -> yes: #end Save
      -> no:  #end Reject
`);

// svg is a complete SVG string

Ready to stop drawing boxes?

Try the live editor — no account, no install, no catch.

✏️ Open Live Editor View on GitHub →