flowi
Original:🇺🇸 English
Translated
1 scriptsChecked / no sensitive code detected
Visual flowchart and diagram planning tool. Claude writes structured JSON to a .flowi/ directory, which renders as interactive, editable diagrams in the browser. Use for architecture planning, user flows, system design, state machines, and UI mockups.
7installs
Added on
NPX Install
npx skill4agent add aiaiohhh/claude-skills-library flowiTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Flowi - Visual Planning & Diagramming
You are using Flowi, a visual feedback loop for planning. Instead of ASCII diagrams, you write structured JSON that renders as interactive flowcharts the user can see and edit in their browser.
Workflow
- Create directory in the project root if it doesn't exist
.flowi/ - Write JSON diagram files to
.flowi/*.json - Start the viewer if not already running (tell the user to run the server)
- Read back any changes the user makes visually
- Iterate based on visual feedback
Starting the Viewer
Tell the user to run this command in a separate terminal:
bash
node ~/.claude/skills/flowi/server.jsThis starts a dev server at that:
http://localhost:3333- Renders all files as interactive diagrams
.flowi/*.json - Live-reloads when you write new JSON
- Saves the user's visual edits back to the JSON files
JSON Schema
Each file represents one diagram. Use this schema:
.flowi/*.jsonjson
{
"title": "Diagram Title",
"type": "flowchart",
"nodes": [
{
"id": "unique-id",
"type": "start|process|decision|end|io|database|component|note",
"label": "Node Label",
"description": "",
"x": 100,
"y": 100,
"color": ""
}
],
"edges": [
{
"from": "source-node-id",
"to": "target-node-id",
"label": ""
}
]
}Node Types
| Type | Shape | Use For |
|---|---|---|
| Rounded pill (green) | Entry points |
| Rounded pill (red) | Exit/terminal points |
| Rectangle (blue) | Actions, steps, functions |
| Diamond (amber) | Conditionals, branches |
| Parallelogram (purple) | Input/output, API calls |
| Cylinder (teal) | Data stores, databases |
| Rounded rectangle (indigo) | UI components, modules |
| Dashed rectangle (gray) | Annotations, comments |
Diagram Types
Use to hint at layout:
"type"- - Top-to-bottom flow (default)
"flowchart" - - Free-form system diagram
"architecture" - - Left-to-right sequence
"sequence" - - State machine
"statechart" - - UI wireframe layout
"mockup"
Layout Guidelines
- Place nodes on a grid: x increments of 200, y increments of 150
- Start nodes at top (y: 50), flow downward
- Decision branches: place "yes" path to the right, "no" path below
- Keep diagrams readable: max ~15 nodes per diagram, split into multiple files if larger
- Use descriptive file names: ,
auth-flow.json,database-schema.jsoncheckout-states.json
Reading User Edits
After the user edits a diagram visually:
- Read the JSON file back from
.flowi/ - Note changed positions, added/removed nodes, edited labels
- Ask the user what they'd like you to do with the changes
- Update your implementation plan accordingly
Example: Simple Auth Flow
Write to :
.flowi/auth-flow.jsonjson
{
"title": "Authentication Flow",
"type": "flowchart",
"nodes": [
{ "id": "start", "type": "start", "label": "User visits app", "x": 300, "y": 50 },
{ "id": "check", "type": "decision", "label": "Has session?", "x": 300, "y": 200 },
{ "id": "login", "type": "process", "label": "Show login form", "x": 100, "y": 350 },
{ "id": "auth", "type": "io", "label": "Call auth API", "x": 100, "y": 500 },
{ "id": "dashboard", "type": "process", "label": "Load dashboard", "x": 500, "y": 350 },
{ "id": "end", "type": "end", "label": "App ready", "x": 300, "y": 650 }
],
"edges": [
{ "from": "start", "to": "check" },
{ "from": "check", "to": "login", "label": "No" },
{ "from": "check", "to": "dashboard", "label": "Yes" },
{ "from": "login", "to": "auth" },
{ "from": "auth", "to": "dashboard", "label": "Success" },
{ "from": "dashboard", "to": "end" }
]
}Best Practices
- Always create the directory first with
.flowi/mkdir -p .flowi - Write one diagram per concept/flow
- After writing JSON, remind the user to check
http://localhost:3333 - When the user says they've made edits, read the file back before proceeding
- Use the diagram as the source of truth for planning, then implement based on it