eve is now available in public preview.
eve is an open-source framework for building, running, and scaling agents. An agent is just a directory of files, and production comes built in:
Durable execution
Sandboxed compute
Human-in-the-loop approvals
Subagents
Evals
agent/ agent.ts # the model it runs on instructions.md # who it is tools/ run_sql.ts # what it can do post_chart.ts skills/ revenue-definitions.md # what it knows subagents/ investigator/ # who it delegates to channels/ slack.ts # where it lives schedules/ monday-summary.ts # when it acts on its ownA data analyst agent, readable at a glance
The smallest agent that runs is just two files, a model and a set of instructions.
import { defineAgent } from "eve";
export default defineAgent({ model: "anthropic/claude-opus-4.8",});Configuring the agent and its model in one file
You are a senior data analyst. You answer questions about the team's data.
- Prefer exact numbers to hand-waving. If you can compute it, compute it.- State the assumptions behind any number you report (date range, filters, grain).- Use the tools available to you rather than guessing. If you cannot answer from the data, say so plainly.The agent's identity and standing rules, prepended to every model call
Add a tool, skill, channel, or schedule by adding a file. eve picks them up at build time and wires them in for you, so there's no boilerplate to register them.
You can scaffold and start a new agent with a single command. It installs the dependencies, scaffolds the project, and starts a dev server, so you have an agent running locally in under a minute.
npx eve@latest init my-agentYour first eve agent
Or you can let your coding agent set it up for you. Give it this prompt:
Set up an Eve agent for the user. Eve is a filesystem-first TypeScript framework for durable agents, published as the npm package eve. Read its docs: once eve is installed they are bundled in the package at node_modules/eve/docs; before eve is installed, read the published Introduction and Getting Started pages. If the project has no Eve app, scaffold one with `npx eve@latest init <name>`; add `--channel-web-nextjs` only when the user wants Web Chat. The init command installs dependencies, initializes Git, and starts the dev server, so run it in a controllable process and stop it before editing. To add Eve to an existing app, run `npm install eve@latest`. Make sure agent/agent.ts and agent/instructions.md exist, then add a first typed tool at agent/tools/get_weather.ts using defineTool from eve/tools with a Zod inputSchema and an inline execute. Start the dev server again, then exercise the HTTP API: create a session with POST /eve/v1/session, attach to GET /eve/v1/session/:id/stream, and send a follow-up with the returned continuationToken. Verify with the project's typecheck, adapt model and provider choices to the project, and do not commit unless the user asks.A starting prompt for your coding agent
And because an eve agent is an ordinary Vercel project, vercel deploy ships it to production unchanged, exactly as it ran on your machine.
eve is the framework that Vercel builds and runs its own agents on. For the full tour, read the announcement or the documentation, and you can follow development in the open over at github.com/vercel/eve.
Build your first agent
An agent is a directory of files, and eve runs it with durable execution, a sandbox, approvals, and evals built in. Works with any model, any MCP server, and channels like Slack, Discord, and GitHub.
Get started