The 2,573-package install buys a filesystem contract
Our Eve install added 2,573 packages and consumed 2,815 MB, a large base for an agent framework. The payoff is a clear authoring model. Put the permanent prompt in instructions.md, typed calls under tools/, on-demand procedures under skills/, and entry points under channels/. Connections, hooks, schedules, sandboxes, and subagents have their own slots. File paths become names, so agent/tools/get_weather.ts registers get_weather without a second registry entry.
This convention is easy to inspect in a pull request, and the full documentation ships inside the npm package for coding agents to read locally. The compiler can also report what it discovered through eve info. There is real depth behind the simple tree: connections can target MCP or OpenAPI services, schedules can use cron prompts, and nested subagents may define their own tools and sandboxes. Root-only boundaries keep channels and schedules out of subagents.
Node.js 24 and a model credential come before the first reply
The documented quick start requires Node.js 24 or newer, then runs npx eve@latest init my-agent. The initializer creates a directory, installs dependencies, initializes Git, and offers to launch the development interface. A minimal agent needs agent/instructions.md; agent.ts is optional until you want to change the model or runtime behavior. Existing projects can run the initializer at . and receive the missing Eve, AI SDK, and Zod dependencies.
The default model path uses Vercel AI Gateway through AI_GATEWAY_API_KEY or a linked project's OIDC token. A direct provider needs its own AI SDK package and API key. That choice affects where prompts and outputs travel, so it belongs in the deployment review rather than a developer's local shortcut. Eve 0.56.0 also added trace audience rules that avoid recording anonymous channel content by default unless the developer marks it public.
What happened when we ran it
Our sandbox installed commit 32aca9b in 64 seconds and used 2,815 MB on disk. The build completed in 35 seconds. We ran it in an unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22, and no secrets. The repository was 30 MB before dependencies, with 5,008 files and about 621,847 source lines. Seven CI workflow files and monorepo workspaces were present; no Dockerfile or root tests directory was found.
Vitest completed after 394 seconds with 8,673 passing tests, 0 failures, and 1 skipped test out of 8,674. That is the cleanest result in this batch, and the 6-minute-plus test run is also a practical contributor cost. A missing root tests directory did not prevent broad coverage because tests live alongside packages in the monorepo. Our run did not deploy an agent, call a model, or measure session latency, so it says nothing about provider speed or token cost.
Self-hosting needs two routes and persistent workflow state
The self-hosted path builds a Nitro server and starts it as a Node service. Durable run state defaults to .eve/.workflow-data, which needs persistent storage if containers or processes are replaced. The reverse proxy must forward both /eve/ and /.well-known/workflow/; the first handles sessions and streams, while the second receives workflow callbacks. Forwarding only the first route can let a session begin and then leave its run stalled.
Sandboxing is another operator choice. Eve can select Docker, microsandbox, a Vercel-hosted sandbox, or a custom backend, while the trusted app runtime retains environment secrets and proxies model-directed work into an isolated /workspace. That boundary is sensible, but issue 3420 matters for current self-hosters: on machines where Docker is unreachable and microsandbox is selected, Eve 0.56.0 reportedly calls a 0.6 API against the installed 0.7 package and leaves shell and filesystem tools unusable.
Version 0.56.0 is active beta software with live session bugs
Release eve@0.56.0 arrived on September 15, 2026, and the repository was pushed again on September 16. GitHub showed 5,186 stars, 555 forks, and 841 combined open issues and pull requests. The release replaced an experimental workflow tool, changed how Linear integrations are installed, adjusted trace metadata, and kept background subagents bound to the authentication context that created them. The pace is high, which fits the README's beta warning.
Current issue reports touch failure recovery, not just missing conveniences. Issue 3419 says cancelling a turn with an attachment can persist an internal URL that breaks every later model call in that session. Issue 3404 says a throwing dynamic connection resolver can end a conversation instead of failing one turn. Issue 3414 describes a denied tool approval becoming pending again after interruption. Teams shipping support bots or approval flows should reproduce their exact channel behavior before treating durability as settled.
Pick Eve when durability is worth 2,815 MB
Eve is most convincing when an agent has to outlive one HTTP request. Its files give tools, channels, schedules, state, and subagents visible homes, while the runtime handles parked work and resumable sessions. The 8,673 passing tests make the source more reassuring than the beta label alone. They do not cover your model choice, sandbox backend, authentication policy, or channel-specific recovery path. Those remain application work.
Mastra is the closer comparison for a broad TypeScript agent application framework. OpenAI's JavaScript Agents SDK asks you to adopt less infrastructure, while Cloudflare Agents fits teams already committed to that platform. Eve earns its weight when you need its durable workflow model and filesystem contract together. If your agent only receives a message, calls one tool, and returns an answer, 2,573 packages are hard to defend.

