---
title: Deploy to Vercel
description: Deploy an eve agent with Vercel Workflow, Sandbox, Cron, and project credentials.
---

# Deploy to Vercel



Deploy eve to Vercel when you want the framework’s managed build and runtime integrations. Vercel runs the web service, workflows, sandboxes, schedules, and deployment observability.

## Prepare the Vercel project

Link the agent directory to a Vercel project:

```bash
eve link
```

The command links an existing project or creates one, then pulls its environment variables. For non-interactive use, name the project instead of picking it:

```bash
eve link --project your_project_name --non-interactive
```

Use `--team` as well when the account has access to more than one team. `eve link` creates the project if it doesn't exist yet.

## Configure credentials and auth

A string model ID routes requests through the [Vercel AI Gateway](https://vercel.com/docs/ai-gateway). The deployment authenticates through project OpenID Connect (OIDC), so you don’t need a provider API key for that path.

Add credentials for direct model providers, tools, and connections to the Vercel project environment. Add any signing keys or passwords required by your [route authentication policy](../auth-and-route-protection). Replace `placeholderAuth()` before a browser sends a production request.

## Select the sandbox backend

Leave the sandbox `backend` unset to use `defaultBackend()`. On Vercel, it selects Vercel Sandbox. You can also select the backend explicitly:

```typescript
import { defineSandbox } from "eve/sandbox";
import { vercel } from "eve/sandbox/vercel";

export default defineSandbox({
  backend: vercel(),
});
```

See [Sandbox](../../sandbox) for resource limits, network policy, and lifecycle hooks.

<Callout type="info" title="Sandbox prewarming">
  During a Vercel build, eve automatically creates or reuses a sandbox template when your sandbox
  has `bootstrap()` or seed files. The build needs permission to create Vercel Sandbox templates,
  and a prewarm failure stops the deployment. See the [sandbox lifecycle](../../sandbox#lifecycle)
  for template and session setup.
</Callout>

## Deploy the agent

A project containing only several independently addressed root agents can use eve's hostless workspace layout:

```text
my-project/
├── package.json
└── agents/
    ├── support/
    │   └── agent/
    └── research/
        └── agent/
```

In an eve workspace, eve discovers direct `agents/<name>/` children that contain nested or flat agent files and do not have their own `package.json`. Their directory names become their public identities, exposed at `/<name>/eve/v1/*`. A child with its own `package.json` is a separate package rather than a member of the parent eve workspace. Run an agent-specific command from a member directory or pass `--agent <name>` at the workspace root; interactive commands open a picker when the name is omitted. Run project-level build, link, and deploy commands from the workspace root. Workspace members share the root package, dependencies, and build scripts.

Create this layout with `eve init my-project --agents support,research`, or add one agent to an existing workspace with `eve init billing`.

With no authored `vercel.json#services`, `eve build` derives the complete Vercel Services graph on every build. If `vercel.json` declares `services`, that authored graph is authoritative instead; use `vercel build` to build and validate the complete project. This supports heterogeneous projects with frontends, private APIs, bindings, and other non-eve services without generated configuration files.

An authored eve service routed at `/eve/v1` already uses the protocol path; callbacks remain at `/eve/v1/callback/*`. A named mount such as `/support` adds that mount before the protocol path, giving `/support/eve/v1/callback/*`.

Deploy the linked project to production:

```bash
eve deploy
```

`eve deploy` installs dependencies, runs `vercel deploy --prod`, and pulls the project environment after deployment. You can also push to a Git-connected Vercel project. Hosted Vercel builds set `VERCEL`, so `eve build` writes the deployment bundle under `.vercel/output`.

For non-interactive use, confirm the production deploy up front. `--project` links first, so a new project needs no separate `eve link`:

```bash
eve deploy --project your_project_name --non-interactive --yes
```

Vercel uses the generated output to configure these services:

* **Web runtime**: serves health, session, stream, channel, callback, and schedule routes
* **Vercel Workflow**: persists and resumes durable runs, with optimistic replay preconditions enabled so stale event-log snapshots reload before they can commit
* **Vercel Cron**: invokes authored schedules
* **Vercel Sandbox**: runs sandbox sessions selected by `defaultBackend()`

## Verify the deployment

Check the health route and connect the development TUI:

```bash
curl https://your_agent.vercel.app/support/eve/v1/health
eve dev https://your_agent.vercel.app/support
```

Set `VERCEL_AUTOMATION_BYPASS_SECRET` locally before connecting if the deployment uses Deployment Protection.

## Inspect agent runs

Vercel detects eve and can add an **Agent Runs** tab under the project’s **Observability** view. Use it to browse sessions and inspect each conversation trace.

The Agent Runs tab requires enablement for your Vercel team. Contact your Vercel representative if the tab doesn’t appear. For third-party tracing backends, configure [OpenTelemetry instrumentation](../instrumentation).

## Continue configuring production

Use these guides to secure and observe the deployed agent:

* [Authentication](../auth-and-route-protection): configure who can call the deployed agent
* [Observability](../instrumentation): export traces and diagnose runtime failures
* [Sandbox](../../sandbox): configure resources, isolation, and network access


---

For a semantic overview of all documentation, see [/sitemap.md](/sitemap.md)

For an index of all available documentation, see [/llms.txt](/llms.txt)

For agent-facing discovery, including API and MCP surfaces, see [/agents.md](/agents.md)