Build1 distinct publisher3 min readUpdated
Fred Schott's first stable release of Flue replaces file-based routing with React-style hooks, on the argument that an agent re-renders every turn and the harness defines it.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
Fred Schott has shipped Flue 2, the first stable release of his agent framework, with React-style "Agent Hooks" as its foundation [1]. The load-bearing claim is not the syntax borrowing: it is that an agent is a JavaScript function that re-renders on every turn, meaning before every model call, and that what makes it an agent is the harness rather than the model [2][17].
If you accept the re-render framing, the abstraction question stops being about pipelines and starts being about what state survives between renders. That is the problem hooks were built for. Flue's hooks are authored in TypeScript, and the framework ships 16 built-in ones including useSkill(), useTool() and useSubagent(), with custom hooks supported [3][4]. According to the Flue 2 launch post, they let agents manage their own state, listen to lifecycle events, and attach resources and capabilities dynamically at runtime [5]. The practical consequence is that an agent's configuration can change as a conversation progresses: Schott's example is a support agent that pulls in an account management tool only after it has verified the user [6]. He told Latent Space that this is what "real support bots, real triage bots" require, because they cannot be fully configured in advance [7].
The more instructive part of the story is the thing that did not work. Schott launched Flue 1 publicly in early May and initially ported web framework concepts across, including file-based routing, on the assumption that five agents would live in five files exposing five routes [8][9]. His larger customers did not fit that shape. "Their whole company is one agent," he said. "They don't care about routing. There's one agent." [10] Flue 2's API therefore draws from React rather than from Astro or Next.js, on the grounds that the base-level problem is composing an agent out of many different things, not routing [11]. That is a rewrite of the central metaphor inside a single release year [19].
Underneath sits Pi, an open source minimal harness; Flue is an opinionated layer on top of it, and hosted agents in Flue 2 are now built with Vite [12][13]. Schott likens Pi's position to the one Vite occupies beneath Astro: an abstraction that does not do too much but exposes the right APIs for something more opinionated to sit on [14]. The harness itself is the bet. "Instead of you and your code driving the LLM and telling it what to do with scripts, you're putting the agent into this harness, and it is able to drive itself and work through problems," he said [15]. Schott's early position was that the harness is not a feature but fundamental to what an agent is [16].
Context worth keeping: Schott created Astro, and his company was acquired by Cloudflare in January [18]. Flue and Vercel's eve both launched this year and are setting the early template for developer agent frameworks [20]. In an earlier Latent Space interview, Sierra CEO and OpenAI chairman Bret Taylor put the field in "the jQuery era of agents, not the react era," and said the jury was still out on who the reactive agents are [21].
Watch whether the hook model survives contact with the one-agent-per-company customers who broke routing, since those are the same users whose feedback produced this API [10]. Watch whether Pi holds its position as a thin base rather than absorbing Flue's opinions, which is the failure mode the Vite comparison implicitly rules out [14]. And watch whether competing frameworks converge on per-turn re-rendering, because that, not the hook names, is the claim other people have to either adopt or reject [2].
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
Fred Schott has released version 2 of Flue, its first stable release, which has React-style "Agent Hooks" as its foundation.
In Flue, an agent is represented by a JavaScript function that "re-renders on every turn," meaning before every model call.
There are 16 built-in hooks in Flue 2, including useSkill(), useTool() and useSubagent(); developers can also add custom hooks.
According to the Flue 2 launch post, hooks "let you build dynamic agents that can manage their own state, listen to agent lifecycle events, and even attach different resources and capabilities dynamically to enhance themselves at runtime."
Hooks allow an agent's configuration to change as a conversation or workflow progresses; for example, a support agent might bring in an account management tool after first verifying a user.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
One primary interview, no outside verification
The cluster contains a single publisher and a single article: a first-hand interview with Flue's creator plus quotations from the Flue 2 launch post. Technical specifics are concrete and checkable in principle (16 hooks, TypeScript authoring, Pi and Vite dependencies, re-render-per-turn model), and the reporter says they built an agent with Flue themselves, which lifts this above pure announcement relay. But nothing is independently corroborated, no benchmarks or production data appear, and the market-stage framing rests on publisher assertion.
Real release, unquantified usage
There is a genuine shipping artifact — a first stable release with a documented hook API and a Vite-based hosted path — which is more than an announced roadmap. Against that, every demand signal is qualitative and vendor-supplied: unnamed "bigger customers" said to run one agent, no download, deployment, revenue or retention figures, and no third-party user accounts beyond the reporter's own test.
"React for agents" outruns the evidence
The story's headline propositions — that Flue is the React for agents and that there is no agent without a harness — are architectural convictions from the framework's own creator, published two to three months after v1, with no measured outcome to test them. The publisher's own Bret Taylor quote concedes the field is pre-React and the jury is out, which sits awkwardly under the framing. The concrete parts (hooks list, Pi and Vite dependencies) are not overstated, so the gap is moderate rather than severe.
Founder-sourced launch narrative with platform stakes
Nearly all substance comes from Flue's creator and its launch post, timed to a stable release he wants adopted. His company was acquired by Cloudflare in January, and the article names Vercel's eve as the most directly competitive product while noting the two platforms' public friction, so the framing also serves a platform rivalry. The publisher is an AI-developer outlet whose format is founder access, and it cross-references its own prior interview, which further aligns coverage with the interviewee's narrative.
Facts of the release are solid; significance is not
Confidence is high that Flue 2 shipped as described and that the design pivoted from routing to hooks — those are first-hand, specific and attributable. Confidence is low on whether the approach matters at scale: one publisher, no independent verification, no adoption or performance data, heavy founder sourcing, and an abstraction that changed materially within a single release year.
build
Cloudflare moves durable execution under the harness, and the platform starts choosing it1 distinct publisher
product
A 2x LLM bill is not a bug report: token spend is an observability problem1 distinct publisher
leadership
Serval's Catalyst mines the ticket queue for automation work, not the project backlog1 distinct publisher
invest
Vercel's eve bets the agent plumbing layer consolidates the way Next.js did1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
1 article · August 15, 2026