src/checkout.ts12if (!cart.items.length) {
13 throw new EmptyCart();
14}
15
16for (const item of cart.items) {
17 reserve(item);
18}
19
20return payment();Local · deterministic · TypeScript
Abstract Flow maps TypeScript source into readable control-flow diagrams—branches, calls, loops, returns, and error exits—without an LLM in the middle.
Evidence, not inference
Abstract Flow records the structural facts that lead to each edge, so the diagram stays grounded in the source you are reading.
src/checkout.ts12if (!cart.items.length) {
13 throw new EmptyCart();
14}
15
16for (const item of cart.items) {
17 reserve(item);
18}
19
20return payment();lines 12–20anchors retainedpaths labeledBuilt for inspection
The same source produces the same graph. AST facts go in; mapped flow comes out.
Analyze a project where it lives. Routes, calls, branches, and throws stay connected to source.
Follow an entrypoint through decisions, loops, functions, and explicit error exits.
Package identity
Abstract Flow ships as a local CLI and a Bun server export in abstract-flow. The first release will make the command available on npm.
abstract-flowFollow the source Install locally
The CLI runs locally. The skill gives a coding agent a short, deterministic path to routes, callers, branches, and SVG flows.
Try it without changing your project, or add it as a local development dependency.
bunx abstract-flowbun add --dev abstract-flow
bunx abstract-flowbun remove abstract-flowA bunx-only run does not add a project dependency.
Copy the portable SKILL.md directory into the skill root your agent already scans.
git clone --depth 1 --branch beta https://github.com/code-salad/abstract-flow.git /tmp/abstract-flow
cp -R /tmp/abstract-flow/skills/abstract-flow <agent-skill-root>/abstract-flow
rm -rf /tmp/abstract-flowrm -rf <agent-skill-root>/abstract-flowRemoving the skill does not remove project code or generated diagrams.