What's new
- SHEET
- F1
- REV
- flowfig 0.8.4
- SOURCE
- generated
- DATE
- 2026-10-05
Each release of flowfig, newest first. The text is the GitHub release note. Subscribe with the RSS feed.
0.8.4 (2026-10-05)
Section titled “0.8.4 (2026-10-05)”flowfig 0.8.4 gives edge labels more room. Each arrow now shows its line and arrowhead on both sides of its label.
Improvements
Section titled “Improvements”- Room around labels. The gap between two boxes holds the edge label and a visible line on each side of it. Before, a label could fill the whole gap and hide the arrow.
- Labels away from boxes. An edge label keeps 6 px from every box when the figure has the room.
Requirements
Section titled “Requirements”- Node 18 or later.
- React 18 or later, only for the
<Flow />player.
Upgrade
Section titled “Upgrade”- Figures with edge labels get a little wider when you render them again. If a wide figure now reports
small-text, shorten a label or make a box narrower. - If your GitHub workflow uses the flowfig Action, change it to
iamalvisng/flowfig@v0.8.4.
Full Changelog: https://github.com/iamalvisng/flowfig/compare/v0.8.3...v0.8.4
0.8.3 (2026-10-05)
Section titled “0.8.3 (2026-10-05)”flowfig 0.8.3 links each state of a state diagram to its own enum member, and fixes two edge routes that crossed a box.
Improvements
Section titled “Improvements”- Enum members in
source. A boxsourcecan name an enum member asOwner.name, for examplesrc/status.ts#OrderStatus.Paid.verifychecks that the member is defined in the enum. This works in TypeScript, JavaScript, Java, C#, Rust and Python (class Owner(Enum)). A name in a comment or a string does not pass. - Edges around boxes. If you set
aroundon an edge and that side has no free path, the edge now takes a free side. A right-angle edge that goes to the left now also avoids the boxes in its way. - Edge lines at the border. An edge that runs along the figure border keeps its full line width.
Requirements
Section titled “Requirements”- Node 18 or later.
- React 18 or later, only for the
<Flow />player.
Upgrade
Section titled “Upgrade”- No change is needed. Edges with a blocked
aroundside can take a new route when you render the figure again. - If your GitHub workflow uses the flowfig Action, change it to
iamalvisng/flowfig@v0.8.3.
Full Changelog: https://github.com/iamalvisng/flowfig/compare/v0.8.2...v0.8.3
0.8.2 (2026-10-05)
Section titled “0.8.2 (2026-10-05)”flowfig 0.8.2 changes only the package description and keywords on npm. The code is the same as in 0.8.1.
Upgrade
Section titled “Upgrade”- No change is needed. If your GitHub workflow uses the flowfig Action, you can change it to
iamalvisng/flowfig@v0.8.2.
Full Changelog: https://github.com/iamalvisng/flowfig/compare/v0.8.1...v0.8.2
0.8.1 (2026-10-05)
Section titled “0.8.1 (2026-10-05)”flowfig 0.8.1 makes figures easier to read, and an agent needs fewer steps to draw one.
npx flowfig spec.json docs/login.svg# figure: 8 boxes, 0 groups, 8 edges, 2 steps, 17 messages# client -> limiter: log in# limiter -> redis: count tries# ...# docs/login.svg: 4 of 4 boxes defined; edges: 6 found, 0 not found, 1 unsure, 1 not checked- One command per try. A render now prints one line per edge and per step, and the
verifycounts when the figure has asourceor avia. You do not need a separateverifyor--speccall to read the figure back.--no-verifyskips the verify part.flowfig verifystays for CI. - Code on hover. If a box, an edge or a hop has a
source, the SVG and the<Flow />player show it on hover. The label can be plain words, and the code name stays one hover away. - Check rule
plain-text(warning). It reports a label that looks like code (findUserByEmail,validate_rows,run()), a label that is a database or cache command (SELECT,SET sess:1 EX 3600), asayline or a caption over 20 words, and filler words such as “seamless” or “robust”. An HTTP request line such asGET /userpasses. If the word is a product name, keep it. - Short guide.
flowfig docsprints a core guide of about half the old length.flowfig docs <topic>prints one topic:lanes,timeline,rail,marksorverify. The MCPdocstool takes the sametopic.
Improvements
Section titled “Improvements”- Edges go around boxes. If a straight edge would cross a box, the edge goes around it with an arc or a right-angle path.
- Labels find free space. An edge label moves along its edge to a spot clear of boxes and other labels.
- Gaps fit the labels. The space between boxes grows to hold the edge labels between them. A
gapthat you set is now the smallest gap, not a fixed one. - Long box labels wrap to two lines before the text gets smaller.
verifygives fewer wrong “not found” results. If the caller calls a function that it receives, such as Expressnext(), the edge is “unsure” with the reason. If the caller is a variable such asconst router = Router(), the check also reads the statements on it, such asrouter.post(...), in TypeScript, JavaScript and Python.flowfig diffnow reports a change tovia, a hop’ssourceorvia, a removed repeat of the same hop, and a step caption change.
Requirements
Section titled “Requirements”- Node 18 or later.
- React 18 or later, only for the
<Flow />player.
Upgrade
Section titled “Upgrade”- Figures can change their layout when you render them again: edges route around boxes, and gaps grow to fit labels. Render your figures again and look at them.
- If your figures use code names as labels, the new
plain-textwarning reports them. Put the code name insourceand write the label in plain words. Under--strictthe warning is an error. - If your GitHub workflow uses the flowfig Action, change it to
iamalvisng/flowfig@v0.8.1.
Full Changelog: https://github.com/iamalvisng/flowfig/compare/v0.8.0...v0.8.1
0.8.0 (2026-10-05)
Section titled “0.8.0 (2026-10-05)”flowfig verify now checks the arrows, not only the names. It tells you which edges of a figure the code really makes, so a reviewer can see which parts to trust.
npx flowfig verify docs/login.svg- Edge check.
verifygives each edge one result:- found: the caller code calls or references the callee, through an import, the same file or a typed receiver.
- not found: the code does not make that call.
verifyprints a warning, and--strictmakes it an error. - unsure:
verifycannot decide, for example when a receiver has no declared type. It lists the edge with the reason and never fails CI. - not checked: the edge has no code to check, or the file is in a language that
verifydoes not read.
- Languages. Edge checks work in TypeScript, JavaScript, Python, Go, Java, C# and Rust.
- Methods. A
sourcecan name a method:src/auth/session.ts#Session.refresh. viafor edges across a process. Setviato the route, queue, topic, table, file or key that both sides use, for example"via": "order-paid". For aviaedge, “found” means that the caller code and the callee file both use that name. It does not prove that a handler serves it.- Counts everywhere. The CLI, the MCP
verifytool and the GitHub Action comment show the box and edge counts.verify --jsonadds acoveragelist with the counts and the unsure edges. - Agent guide. The instructions that
flowfig initinstalls teach agents to set edge sources andvia, and to fix each edge thatverifydoes not find.
Improvements
Section titled “Improvements”- Box check. In a code file, a box symbol must be defined, not only mentioned. A name in a comment or a string no longer passes.
flowfig/verifyexportsverifyReport, which returns the findings and the counts.verifykeeps its signature.
Requirements
Section titled “Requirements”- Node 18 or later.
- React 18 or later, only for the
<Flow />player. flowfig gifuses Chrome, Edge, Chromium or Brave from your machine, and needs a little-endian CPU (x64 or ARM).
Upgrade
Section titled “Upgrade”- A box
sourcewhose symbol the file only mentions, and does not define, now failsverifywithsymbol not defined. Point thesourceat the file that defines the symbol, or usepath#Owner.namefor a method. - Edges that
verifycannot find give warnings, not errors, unless you use--strict. Runnpx flowfig verify <figure>once after the upgrade and fix the edges it reports. - If your GitHub workflow uses the flowfig Action, change it to
iamalvisng/flowfig@v0.8.0.
Full Changelog: https://github.com/iamalvisng/flowfig/compare/v0.7.0...v0.8.0
0.7.0 (2026-10-04)
Section titled “0.7.0 (2026-10-04)”Faster GIF export, smaller SVG files, and faster renders of large figures. The figures look the same.
npx flowfig gif docs/checkout.svgImprovements
Section titled “Improvements”- Faster GIF export.
flowfig gifcaptures frames in up to 4 browser tabs at once and encodes them faster. On a test machine, the GIF of a 16-second figure takes about 16 seconds, down from about 35. The GIF bytes stay the same. - Smaller SVG files. The SVG keeps one keyframe for each run of equal values. A typical figure is 15 to 40 percent smaller, and a large figure can be 20 times smaller. The animation is frame-for-frame the same.
- Faster renders. Large figures and wrapped swimlanes render 2 to 3 times faster.
flowfigrenders a figure once per call, also through the MCPrendertool.
Requirements
Section titled “Requirements”- Node 18 or later.
- React 18 or later, only for the
<Flow />player. flowfig gifuses Chrome, Edge, Chromium or Brave from your machine, and needs a little-endian CPU (x64 or ARM).
Upgrade
Section titled “Upgrade”No breaking change. Render your figures again to get the smaller SVG files.
Full Changelog: https://github.com/iamalvisng/flowfig/compare/v0.6.0...v0.7.0
0.6.0 (2026-10-04)
Section titled “0.6.0 (2026-10-04)”Cleaner timelines and swimlanes, stricter checks, and Windows support for open and gif.
npx flowfig init # get the new agent instructionsImprovements
Section titled “Improvements”- Timeline. The animation starts at the first item, so the first frame of a GIF and of a README shows the playhead in place. The today line and the playhead run behind the bars and do not cross the bar text. A dependency line goes around the bars it does not connect.
- Swimlanes. An edge label stays inside one lane, not on the border between two lanes. A decision at the end of a wrapped block keeps its stub label inside its lane and inside the figure.
- Windows. The tests now run on Windows in CI, including
gifwith Chrome.flowfig gifstops all browser helper processes on Windows and removes its temp folder.flowfig initprints paths with/on every system. - Agent instructions. A pasted Mermaid design keeps its arrow types: a plain arrow stays a plain message, even for a queue. In a process document, the agent draws each path to its end, with one step per path. When a text does not fit its box, the agent widens the box or moves the detail, and does not cut a fact.
- On Windows,
flowfig verifyaccepted asourcepath outside the repo. It now reports it.
Checks
Section titled “Checks”These checks are new, so a figure that passed check --strict in 0.5.0 can now report a fault:
label-overlapalso reports an edge label across a lane border.edge-crosses-boxalso reports a timeline dependency line through a bar.
Requirements
Section titled “Requirements”- Node 18 or later.
- React 18 or later, only for the
<Flow />player. flowfig gifuses Chrome, Edge, Chromium or Brave from your machine.
Upgrade
Section titled “Upgrade”Render your figures again with 0.6.0 and run check --strict. Run npx flowfig init again in your repo to get the new agent instructions.
Full Changelog: https://github.com/iamalvisng/flowfig/compare/v0.5.0...v0.6.0
0.5.0 (2026-10-03)
Section titled “0.5.0 (2026-10-03)”Long swimlane processes now fit in one figure, and decision boxes keep their text inside the diamond.
npx flowfig init # get the new agent instructions- Swimlanes wrap. When the steps of a
lanes: truefigure do not fit the page width, flowfig wraps the time columns into blocks, one under the other. Each block shows only the lanes that have a step in it. An edge between two blocks becomes two short labeled stubs, for example “→ Inspect” and “from Ship item”. A process of 7 or more steps now stays readable in one figure. lane-end-blockcheck.checkwarns when an edge in a wrapped figure ends at a lane that no nearby block shows.stub-crosses-edgecheck.checkwarns when a stub line crosses another edge.--strictmakes it an error.
Improvements
Section titled “Improvements”- A decision box (
shape: 'decision') wraps its sub line inside the diamond outline and grows taller when it needs more room.checknow tests the text against the diamond shape. --widthnow also sets where the lanes wrap, in the CLI and in the MCPrendertool.- Agents keep a long process in one figure. For a process document, agents now also show every deadline, every message to a person, every choice and every wait for a reply.
Requirements
Section titled “Requirements”- Node 18 or later.
- React 18 or later, only for the
<Flow />player.
Upgrade
Section titled “Upgrade”No breaking change. A lanes figure that fits the width renders as before. Run npx flowfig init again in your repo to get the new agent instructions.
Full Changelog: https://github.com/iamalvisng/flowfig/compare/v0.4.0...v0.5.0
0.4.0 (2026-10-03)
Section titled “0.4.0 (2026-10-03)”Swimlanes, a timeline form, start and end marks, and two new commands: open shows a figure in your browser, and gif makes an animated GIF that you can share anywhere.
npx flowfig open docs/checkout.svg # show the figure in your default browsernpx flowfig gif docs/checkout.svg # write docs/checkout.gif- Swimlanes. Set
lanes: trueand give each box anatlane and time column. Each role gets its own band with a label. Use it for a process that several teams share. - Timeline form. Set
timeline: trueto draw a roadmap with dated bars, milestones, dependency lines, a today line and a moving playhead.checkreports dates out of order. - Start and end marks. A lifecycle box can show a start dot or an end ring.
flowfig open <figure.svg>. Opens the figure in your default browser. Add--opento a render or todrawto do the same after the figure is written.flowfig gif <figure.svg> [out.gif]. Writes an animated GIF for Slack, Notion, slides, or any place that does not play SVG animation. Options:--step <n>for one step,--dark,--fps,--scale, and--mp4to also write an MP4.
Improvements
Section titled “Improvements”- After
npx flowfig init, agents use flowfig when you ask for a diagram and name no other tool. In Claude Code, you can also run/figure <question>. - Agent replies end with the
npx flowfig opencommand for the new figure. flowfig inithas a new screen: pick your agents with the arrow keys and the space bar.
Requirements
Section titled “Requirements”- Node 18 or later.
- React 18 or later, only for the
<Flow />player. flowfig gifuses Chrome, Edge, Chromium or Brave from your machine. SetCHROME_PATHto choose one.flowfig gif --mp4also needsffmpegon yourPATH.
Upgrade
Section titled “Upgrade”No breaking change. Run npx flowfig init again in your repo to get the new agent instructions.
Full Changelog: https://github.com/iamalvisng/flowfig/compare/v0.3.0...v0.4.0
0.3.0 (2026-09-30)
Section titled “0.3.0 (2026-09-30)”One command from a question to a figure, captions you can read, a box that lights up when the packet arrives, and colors for the outcome.
npx flowfig draw "how does login work"flowfig draw "<question>". Runs Claude Code on your repo to draw the figure, then checks it withcheck --strictandverify. It prints the result, the agent’s reply and the cost. Needs Claude Code on the machine.toneon a hop and on a box.greenfor success,orangefor a warning or a miss,redfor an error,grayfor idle,purplefor async. The packet, the edge, the arrowhead and the box take the color.- Links to documents.
sourcecan point to a Markdown heading, for exampledocs/sop/refunds.md#step-3-approve-the-refund, so a process figure stays in step with its SOP.
Improvements
Section titled “Improvements”- Readable timing. Each step holds long enough to read its caption. An explicit
mson a step still wins. - Arrival look. The box that a packet reaches gets a border, a tint and a glow, then fades. Boxes the step visited keep a light trail.
- Agents now color the outcome with
toneand mark every queue send and unawaited call as async.
- A short hop in a long animation no longer jumps.
- White text on the orange tone now has enough contrast, and
checktests text on every tone. - Fixes in the GitHub Action’s install step.
Requirements
Section titled “Requirements”- Node 18 or later.
- React 18 or later, only for the
<Flow />player. flowfig drawneeds Claude Code. It does not run on Windows yet.
Upgrade
Section titled “Upgrade”No breaking change. Figures get the new timing and look the next time you render them.
Full Changelog: https://github.com/iamalvisng/flowfig/compare/v0.2.0...v0.3.0
0.2.0 (2026-09-30)
Section titled “0.2.0 (2026-09-30)”Figures that link to the code they draw, a GitHub Action that checks them on every pull request, and an MCP server for agents with no shell.
npx flowfig verify docs/*.svg # fails when a linked file or symbol is gone- Code links. A box, an edge or a hop takes
"source": "src/auth/login.ts#verifyPassword". The link is stored in the SVG with the spec. flowfig verify. Checks every link and reportsmissing-file,missing-symbolandno-source. Options:--root,--strict,--json.flowfig diff old.svg new.svg. Shows what changed between two figures: boxes, edges, steps, messages, groups and the rail.--mdfor a PR comment,--jsonfor a script.- GitHub Action.
uses: iamalvisng/flowfig@v0.2.0runsverifyon every figure in a PR. For each changed SVG, it comments the old and new image with the diff, and it names each figure whose linked code the PR changes. flowfig mcp. An MCP server over stdio with the toolsdocs,check,render,verifyanddiff.flowfig initregisters the MCP server for Claude Code, Cursor, GitHub Copilot, Gemini CLI and Kiro. It adds one entry and never replaces an entry that you changed.--no-mcpskips it.- New entry point
flowfig/verifyfor Node.flowfigandflowfig/svgstill load in a browser.
Improvements
Section titled “Improvements”- Agents now add code links to their figures and run
verifybefore they reply.
flowfig --help,-handhelpprint the usage.- A rail with many messages over several steps no longer reports a false
label-overlap. - A clean render prints
0 errors, 0 warnings. flowfig --specon a missing file prints a message, not a stack trace.
Requirements
Section titled “Requirements”- Node 18 or later.
- React 18 or later, only for the
<Flow />player.
Upgrade
Section titled “Upgrade”No breaking change. Figures without links pass verify with a no-source warning.
Full Changelog: https://github.com/iamalvisng/flowfig/compare/v0.1.0...v0.2.0
0.1.0 (2026-09-29)
Section titled “0.1.0 (2026-09-29)”The first public release. Your coding agent draws animated diagrams of your code, and flowfig checks them.
npx flowfig initThen ask your agent: “draw a diagram of how login works in this repo”.
- Three forms. A map of boxes and edges, a map with a lifeline rail for sequences (
rail: true), and the rail alone (rail: "only"). - One animated SVG with no script. It works in a GitHub README, PR or issue, in light and dark mode. Each SVG carries its own spec, and
npx flowfig --spec <file>reads it back. flowfig check. Finds ids that point nowhere, text wider than its box, edges through boxes, overlapping labels, hidden edges, text too small at the README width, and low contrast.--strictand--jsonfor CI and agents.flowfig init. Sets up Claude Code, Cursor, GitHub Copilot, Codex and otherAGENTS.mdagents, Gemini CLI, Windsurf and Kiro to draw with flowfig.flowfig docs. Prints the guide for agents.- React player.
<Flow />with tabs, pause, speed, hover and full screen.
Requirements
Section titled “Requirements”- Node 18 or later.
- React 18 or later, only for the
<Flow />player. - No runtime dependencies.
MIT license.