Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/vercel/eve/llms.txt

Use this file to discover all available pages before exploring further.

eve ships first-class channel adapters for the most common platforms. Each channel handles signature verification, event parsing, delivery, human-in-the-loop (HITL) rendering, and proactive messaging for its surface. Pick the tab for the platform you want to wire up.
All channel files live under agent/channels/. The file stem becomes the channel id. Export the channel definition as the module’s default export.

eve HTTP Channel

The eve channel is the framework’s default HTTP session API. It exposes session routes the terminal UI, useEveAgent, and any HTTP client can call. It is active by default — no file is needed. Add agent/channels/eve.ts only to override auth or add hooks.Import path: eve/channels/eve

Minimal setup

agent/channels/eve.ts
import { eveChannel } from "eve/channels/eve";
import { localDev, vercelOidc } from "eve/channels/auth";

export default eveChannel({
  auth: [localDev(), vercelOidc()],
});

Routes

MethodPathDescription
GET/eve/v1/healthHealth check
POST/eve/v1/sessionStart a new session
POST/eve/v1/session/:sessionIdSend a follow-up message
GET/eve/v1/session/:sessionId/streamStream events (NDJSON)

Quick curl test

# Start a session
curl -X POST https://<deployment>/eve/v1/session \
  -H "Content-Type: application/json" \
  -d '{"message":"What is the weather in Paris?"}'
# {"continuationToken":"eve:7f3c...","ok":true,"sessionId":"ses_01h..."}

# Stream events
curl -N https://<deployment>/eve/v1/session/ses_01h.../stream

Auth helpers

HelperWhen to use
localDev()Accepts requests during local development
vercelOidc()Allows the local CLI and other Vercel-issued deployment tokens
placeholderAuth()Returns a 401 with setup guidance in production until replaced with real auth
Neither localDev() nor vercelOidc() admits browser users or external clients in production. For a public app, wire the channel to your own auth (Clerk, Auth.js, OIDC/JWT verification, or an API-key verifier).

Customization with onMessage and events

agent/channels/eve.ts
import { eveChannel, defaultEveAuth } from "eve/channels/eve";
import { localDev, vercelOidc } from "eve/channels/auth";

export default eveChannel({
  auth: [localDev(), vercelOidc()],
  onMessage(ctx, message) {
    const callerId = ctx.eve.caller?.principalId ?? "anonymous";
    return {
      auth: defaultEveAuth(ctx),
      context: [`HTTP caller ${callerId} sent: ${message}`],
    };
  },
  events: {
    "message.completed"(eventData, channel, ctx) {
      console.log("eve response completed", {
        continuationToken: channel.continuationToken,
        sessionId: ctx.session.id,
      });
    },
  },
});

Build docs developers (and LLMs) love