Comparisons / Eve vs Flue
Eve vs Flue: Which Agent Framework to Use?
Eve vs Flue, head to head
Eve and Flue are the two TypeScript agent frameworks that launched within six weeks of each other in mid-2026 — Flue from the Astro team on May 1, Eve from Vercel on June 17 — and the temptation to lump them together as "the new TS agent frameworks" hides a real difference in what each one is actually shaped by.
Eve is convention-driven: an agent is a directory. agent.ts, instructions.md, tools/, skills/, subagents/, channels/, schedules/ — each subfolder maps to a capability, and the framework wires them together. Vercel calls it "Next.js for agents" and the analogy holds. Under the hood, Eve composes three Vercel primitives: the Workflow SDK for durable execution, Sandbox for isolated code exec, and AI Gateway for provider routing. The runtime is the value.
Flue is declarative: createAgent({ model, instructions, tools }) describes the agent, valibot schemas type the tools, and state lives in a Durable Stream — a replayable event log stored in Cloudflare Durable Objects. It's built on the Pi harness (same runtime as OpenClaw) and deploys not just to Cloudflare, but also to plain Node, GitHub Actions, and GitLab CI from one config. The cross-runtime story is unusual — most frameworks pick a home; Flue picks four.
The honest split is by deploy target and abstraction shape. If your agents live on Vercel and you want a Next.js-shaped mental model with a filesystem full of tools, Eve fits. If your agents live on Cloudflare (or need to run in CI as well as in production), and you want one config object rather than a directory, Flue fits.
Pick Eve if
Pick Eve when the deploy target is Vercel and the "Next.js for agents" convention matches how your team already thinks.
- You want durable execution, sandboxed exec, and AI Gateway routing bundled — not three separate services to wire.
- A filesystem of tools + sub-agents + schedules matches how your team scales code review across engineers.
- You already run Next.js on Vercel and want the same deploy story for agents.
- The Vercel Sandbox is the actual leverage — you're running LLM-generated code and can't put it in your main process.
Pick Flue if
Pick Flue when Cloudflare is the target and Durable Objects earn their keep.
- Per-agent state + locking via Durable Objects is a real primitive; Flue exposes it as first-class rather than glued on.
- The same agent needs to run in production AND in CI (nightly research agents, GitHub Actions bots) — Flue's cross-runtime deploy is genuinely rare.
- You want a thinner framework: one
createAgentconfig, valibot tool schemas, no directory convention to internalize. - Your team is on the Pi/OpenClaw stack and wants shared tooling.
By the numbers
By the numbers
Eve
3.5k
180
TypeScript
Apache-2.0
2026-06-17
Vercel
Vercel (public)
Runs on Vercel Sandbox + AI Gateway; deploys anywhere Node runs
Yes
Flue
2.4k
140
TypeScript
MIT
2026-05-01
Fred K. Schott + Astro team (at Cloudflare)
Cloudflare
Cloudflare Durable Objects; also deploys to Node, GitHub Actions, GitLab CI
Yes
GitHub stats as of April 2026. Stars indicate community interest, not necessarily quality or fit for your use case.
| Concept | Eve | Flue |
|---|---|---|
| Agent | A directory with `agent.ts` + `instructions.md` + subfolders — the framework wires them together | `createAgent({ model, instructions, tools })` — declarative config, framework runs the loop |
| Tools | Each file in `tools/` exports one tool; schema comes from a Zod export | Registered with valibot schemas: `{ name, description, schema, execute }` |
| Durability | Vercel Workflow SDK checkpoints every step so a crashed agent resumes where it left off | — |
| Sub-agents | Each `subagents/*.ts` becomes a callable sub-agent the parent can hand off to | — |
| Sandboxed exec | Vercel Sandbox runs untrusted code in isolated micro-VMs, one API call away | — |
| Schedules | `schedules/*.ts` exports a cron expression + handler; Vercel runs it | — |
| State | — | Durable Streams — replayable, checkpointed event log stored in Cloudflare Durable Objects |
| Deployment | — | One config controls deploys to Cloudflare, Node, GitHub Actions, or GitLab CI |
| Runtime | — | The Pi harness — same runtime as OpenClaw, so agents share tooling with that ecosystem |
| Cloudflare-native | — | Durable Objects give per-agent persistence and locking without an external DB |
Or build your own in 60 lines
Both Eve and Flue implement the same 8 patterns. An agent is a function. Tools are a dict. The loop is a while loop. The whole thing composes in ~60 lines of Python.
No framework. No dependencies. No opinions. Just the code.
Build it from scratch →