Every folder and file Flow puts on your computer and in a project, and what writes each one. → marks a link and where it points. <clone> is the folder you downloaded Flow into.
- The whole tree: every folder on one screen
~/.agents/: the skills~/.claude/: what Claude Code reads~/.flow/: your Flow home~/.local/bin/: the commands you type- In a project: the files at the top,
.claude/,.flow/anddocs/ - What stays on one computer: what
flow syncnever carries
~/
├─ .agents/
│ └─ skills/flow/skills/<name> → <clone>/skills/<group>/<name>
├─ .claude/
│ ├─ CLAUDE.md → ~/.flow/CLAUDE.md
│ ├─ settings.json
│ ├─ skills/flow → ~/.agents/skills/flow
│ ├─ skills/<name> → a skill switched on everywhere
│ ├─ skills/home-<n>/ a ticket skill
│ ├─ agents/, rules/, commands/ → files in <clone>/claude/
│ └─ projects/ Claude Code's record of every session
├─ .flow/
│ ├─ CLAUDE.md your rules
│ ├─ scripts, references, docs → folders in <clone>
│ ├─ repos/ every repository Flow downloads
│ ├─ settings.json
│ ├─ settings.local.json
│ ├─ version
│ ├─ machines/<name>.json
│ ├─ tickets/
│ ├─ ticket-counter
│ ├─ projects/<project>/ a project's tickets, kept privately
│ ├─ workflow-notes.md
│ ├─ study-cases/<issue>/
│ ├─ wiki/<tool>/
│ ├─ research/<topic>/
│ ├─ private-skills/<name>/
│ ├─ logs/
│ ├─ audit/
│ ├─ changes/<session>/
│ ├─ migrations/<place>/<time>/
│ └─ originals/<place>/
└─ .local/bin/
├─ flow, fw → <clone>/scripts/flow.js
└─ util, u → ~/.flow/repos/util
<project>/
├─ CLAUDE.md the project's rules
├─ .gitignore
├─ .uncommitted-include
├─ .claude/
│ ├─ settings.json
│ ├─ skills/<name>
│ └─ skills/<id>/ a ticket skill
├─ .flow/
│ ├─ tickets/<id>-<label>/
│ ├─ tickets/archive/
│ ├─ ticket-counter
│ ├─ inbox.md
│ ├─ findings/
│ ├─ research/<topic>/
│ ├─ overlays/<skill>.md
│ ├─ settings.json
│ └─ version
└─ docs/
├─ spec/
└─ context/
A folder no single tool owns. flow install touches only this entry, and leaves anything else there alone.
skills/flow/: a link for each Flow skill that is on, beside the file that names the setflow, so each one is typed/flow:<name>.
Each folder here can also hold entries from other tools. flow install never replaces an entry that is not one of its links.
CLAUDE.md: the rules every session loads. A link to~/.flow/CLAUDE.md, soflow synccarries your rules to your other computers.settings.json: Claude Code's settings, with Flow's keys added. Settings covers each key.skills/flow: a link to~/.agents/skills/flow/, which is how Claude Code finds Flow's skills.skills/<name>: a link for each skill from a skill repository switched on everywhere.flow skills on <name> --globalmakes it.skills/home-<n>/: a ticket skill for each open ticket in your Flow home.agents/haiku-worker.md: the helper agent Flow hands simple jobs to. Subagents covers it.rules/comments.md: the rules for code comments, loaded only while the agent works on code.commands/capture.md:/capture.projects/: Claude Code's record of every session.flow auditreads it.
Your Flow home: the folder where Flow keeps your rules, notes, settings and tickets. It is a git repository, backed up to a private GitHub repository named flow-home, and flow sync shares it between your computers. Sync between computers covers how.
CLAUDE.md: your rules.~/.claude/CLAUDE.mdlinks to it. The setup session writes it from Flow's template and what it kept from your old rule files. After that it is yours, and sessions add what they learn about you.settings.jsonandsettings.local.json: Flow's settings. Settings covers every key.version: the newest Flow change this computer has applied.flowrefuses to run while it is missing, since that means the install never finished.machines/<name>.json: one record per computer sharing this Flow home, saying which version of Flow it is on:{ "name": "macbook-pro", "joined": "2026-09-27", "flowVersion": 12 }.README.mdand.gitignore: a warning for anyone opening the repository on GitHub, and the list of what stays on this computer.
scripts: theflowcommand, every hook, and the jobs that run in the background.references: the house style, and the line the reminder prints.docs: these pages, at the same path on every computer.
tickets/: tickets that belong to no project, with ids startinghome-, such ashome-4. Same shape as a project's.ticket-counter: the highesthome-number ever given out, so a deleted or moved ticket's number never goes to a new one.projects/<project>/: the tickets of a project kept privately, which the project's.flow/links to.flow init --privateandflow store privatemake it.
Learning covers each of these.
workflow-notes.md: one dated line per bit of friction worth remembering.study-cases/<issue>/: one file per recorded mistake, filed under the kind of mistake.flow cases newwrites them.wiki/<tool>/: what Flow knows about one outside tool, shared by every project./flow:researchwrites it.research/<topic>/: research reports asked outside any project, one folder per topic and one file per question. Empty until one is asked.private-skills/<name>/: skills you write for yourself and never share. Extend covers writing one.
logs/install.log: every line of this computer's lastflow install.logs/history/<month>.jsonl: one line per change Flow made to this computer: a skill switched, a repository downloaded, an install, a restore.logs/failures/<month>.jsonl: one line per failure of a Flow command, a hook, a tool from a plugin, or the API.logs/scorecards/<session>.jsonl: one line per rule check that ran.flow scorecardreads them.audit/: the indexflow auditsearches, built from~/.claude/projects/.audit/kept/holds the sessionsflow audit keepsaved.changes/<session>/: what each helper agent changed. Deleted after 7 days untouched.migrations/<place>/<time>/: each change a setup or an update session made, as a list of changes and the new files.originals/<place>/: every path as it was before Flow first touched this computer or a project.flow restoreputs them back.
repos/ holds every repository Flow downloads. flow install downloads each one that is missing.
repos/flow: Flow itself, as the install line downloaded it. Installed from a clone of your own, it is a link to that clone.repos/util/:util, the second command-line tool Flow uses, for file trees and git shortcuts.repos/toolbox/: a catalog of outside tools that/flow:researchreads.repos/sources/<owner>_<repo>/: one per skill repository insources. Each updates itself when a session opens.
flowandfw: links toscripts/flow.jsin your clone.flow installmakes them.utilandu: links into~/.flow/repos/util/.flow installmakes them.
CLAUDE.md: what every session in this project needs. It starts with 2 sections,## Projectand## Rules, and sessions fill it in..gitignore: ignorestmp/,node_modules, the links to skills, and.flow/..uncommitted-include: files git ignores that should still travel with your uncommitted work. Empty to start.
flow init writes all 4. Your next commit takes them, and none is Flow's alone after that.
settings.json: this project's Claude Code settings, added on top of~/.claude/settings.json.skills/<name>: a link for each skill switched on for this project, or a real folder for a skill this project keeps for itself.skills/<id>/: a ticket skill for each open ticket. git never sees them.
The project's tickets and what sessions learn in it. It is the project's flow branch checked out here, sharing no history with your code. In a project kept privately, it is a link into ~/.flow/projects/ instead. New project covers both.
tickets/<id>-<label>/: one folder per ticket, such asshop-7-safari-cookie/. Tickets shows what it holds.tickets/archive/: finished and dropped tickets, moved here whole.ticket-counter: the highest ticket number this project ever gave out, such as75, so a deleted or moved ticket's number never goes to a new one.inbox.md: notes with no home yet./flow:file-findingssorts them.findings/: one file per lesson a session learned, waiting for/flow:file-findings.research/<topic>/: the research reports this project asked for, one folder per topic./flow:researchwrites them.overlays/<skill>.md: lines this project adds to a skill. Configure covers overlays.settings.json: this project's skill lines andticketPrefix.version: the newest Flow change this project has applied.
Sessions write here, and Flow owns none of it.
intake/: notes, brainstorms and drafts you drop in./flow:groundworkreads them before designing.spec/: what the product is.product.mdalways, plus a file per large part of it, whichproduct.mdlists./flow:tickets-from-speccuts tickets from it.context/: facts about this project that some work needs and most does not.
flow sync carries everything else in ~/.flow/ to your other computers. These stay:
settings.local.json,version,logs/,audit/,changes/andoriginals/repos/: each computer downloads its own, from the samesourceslist- each tool's
wiki/<tool>/downloads/ - the small files Flow keeps while it works:
run.json,records-sync.json,skills-update.jsonandstatus-line.json
Claude Code's ~/.claude/projects/ stays too. A project's .flow/ travels with the project: on its flow branch, or inside your Flow home.