Skip to content

eddy is designed, not built. Its design book holds the design whole.

How it fits

The Flywheel family: one loop from what is noticed to what landsheadwater reports a new release of mise and eddy lists a recorded planning call; each prints a capture, and millpond keeps both. The release is its own excerpt, so it becomes one signal; a reader reads the meeting into three signals. Curation joins two of them into one item and makes the third, a question, an item of its own. Each item runs down the flume, which launches one agent in one worktree for it: the bump in one worktree, the export in a planner's plan, and the question in a sounding, whose accepted conclusion comes back to millpond as a new item. sluice tests each change as merged and lands both on main, and flume tidies the bump's worktree. The landed bump moves the pin back to headwater, which stops reporting that release. Flywheel is the Method the whole loop belongs to.Flywheelthe Method all of it belongs to1NOTICE2INBOX3LAUNCH4WORK5LAND6THE LOOP CLOSESthe landed bump moves the pin to 2026.10.10headwatermise 2026.10.10new release · reportedpinned · not reportededdyWispr · planningrecorded · 32 minmillpondthe inboxcapturessignalsitemsown excerptreadercurationflumeone worktreean agent on one brancha planner's plana chore for a teamsoundingworks one questionconclusion acceptedlanded · tidiedsluicetests each as mergedlands what passedmiseCSVmainbump miseCSV exportkeep JSONParquet?releasemeetingsentsentbump miseCSV exportbump miseCSV export2 signalsParquet?Parquet
The Flywheel family: one loop from what is noticed to what landsheadwater reports a new release of mise and eddy lists a recorded planning call; each prints a capture, and millpond keeps both. The release is its own excerpt, so it becomes one signal; a reader reads the meeting into three signals. Curation joins two of them into one item and makes the third, a question, an item of its own. Each item runs down the flume, which launches one agent in one worktree for it: the bump in one worktree, the export in a planner's plan, and the question in a sounding, whose accepted conclusion comes back to millpond as a new item. sluice tests each change as merged and lands both on main, and flume tidies the bump's worktree. The landed bump moves the pin back to headwater, which stops reporting that release. Flywheel is the Method the whole loop belongs to.Flywheelthe Method all of it belongs to1NOTICE2INBOX3LAUNCH4WORK5LAND6THE LOOP CLOSESthe landed bump moves the pin to 2026.10.10headwatermise 2026.10.10new release · reportedpinned · not reportededdyWispr · planningrecorded · 32 minmillpondthe inboxcapturessignalsitemsown excerptreadercurationflumeone worktreean agent on one brancha planner's plana chore for a teamsoundingworks one questionconclusion acceptedlanded · tidiedsluicetests each as mergedlands what passedmiseCSVmainbump miseCSV exportkeep JSONParquet?releasemeetingsentsentbump miseCSV exportbump miseCSV export2 signalsParquet?Parquet
The Flywheel family: one loop from what is noticed to what landsheadwater reports a new release of mise and eddy lists a recorded planning call; each prints a capture, and millpond keeps both. The release is its own excerpt, so it becomes one signal; a reader reads the meeting into three signals. Curation joins two of them into one item and makes the third, a question, an item of its own. Each item runs down the flume, which launches one agent in one worktree for it: the bump in one worktree, the export in a planner's plan, and the question in a sounding, whose accepted conclusion comes back to millpond as a new item. sluice tests each change as merged and lands both on main, and flume tidies the bump's worktree. The landed bump moves the pin back to headwater, which stops reporting that release. Flywheel is the Method the whole loop belongs to.Flywheelthe Method all of it belongs to1NOTICE2INBOX3LAUNCH4WORK5LAND6THE LOOP CLOSESthe landed bump moves the pin to 2026.10.10headwatermise 2026.10.10new release · reportedpinned · not reportededdyWispr · planningrecorded · 32 minmillpondthe inboxcapturessignalsitemsown excerptreadercurationflumeone worktreean agent on one brancha planner's plana chore for a teamsoundingworks one questionconclusion acceptedlanded · tidiedsluicetests each as mergedlands what passedmiseCSVmainbump miseCSV exportkeep JSONParquet?releasemeetingsentsentbump miseCSV exportbump miseCSV export2 signalsParquet?Parquet

One loop, from what is noticed to what lands. Flywheel is the Method it belongs to.

  1. 1headwater and eddy notice events and print captures.
  2. 2millpond keeps them as an inbox: captures become signals, and curation joins signals into items.
  3. 3millpond sends each item down flume, which launches one agent in one worktree for it, and tidies the place once the work lands.
  4. 4An item is worked in its worktree or a planner's plan. A question goes to a sounding, whose conclusion comes back as new items.
  5. 5sluice tests the work as merged and lands it.
  6. 6The landed bump moves the pin, so headwater stops reporting that release.

Some events outside a repository change its work: a release of something it depends on, a decision in a meeting. A program notices each one and hands it to millpond, the inbox. A session reads what needs reading, curation joins what it finds into items, and the work an item becomes lands through sluice. eddy is the program for meetings.

Tool Does With eddy
headwater reports releases and advisories for what a repository declares eddy’s twin for releases: it stands alone the same way, and its Flywheel plugin feeds millpond the same way
millpond keeps the inbox runs eddy’s parts on a schedule, passes over a key it already holds, banks each transcript on the host, writes each capture, and marks it unread for a reader
sluice tests a change as merged and lands it lands the work a meeting’s signals become
Flywheel the umbrella runs eddy’s parts on a Flywheel host unchanged, against the inbox millpond kept

eddy stands alone, as headwater does. Its Claude Code plugin pulls a transcript into a session, and its herdr plugin shows the day’s meetings. Neither needs millpond.

eddy’s Flywheel plugin holds one part per meeting service. millpond runs a part as a command, hands it a raw directory and its last cursor, and lands the capture lines it prints. A part signs in to its service itself, once per host. millpond keeps the cursor and the run’s status, so a fleet’s doctor reads every part’s health from one place.

  • Read a meeting into signals. A reader session does that, through millpond, which refuses an excerpt that does not appear word for word in the transcript.
  • Keep a list of what it reported. millpond passes over a key it already holds, so listing a window again is safe.
  • Write records into an inbox. It prints lines; millpond writes.