From-template and manual setup paths to a working Eve agent chat in assistant-ui.
Two paths to a running Eve-powered assistant-ui app. The template is fastest; the manual path is what you adapt when integrating into an existing Next.js project.
From the template
npx create-assistant-ui@latest -t eve my-app
cd my-appSet a model credential:
AI_GATEWAY_API_KEY=your-api-keynpm run devOpen http://localhost:3000 and send a message. The template includes:
agent/agent.tsfor Eve runtime config.agent/instructions.mdfor the always-on system prompt.next.config.tswithwithEve(withAui(nextConfig)).app/page.tsxwithuseEveAgentRuntime().
There is not a React Native Eve template yet.
Use Eve's terminal UI directly for command-line agent sessions.
Manual setup in an existing app
Install dependencies
npm install @assistant-ui/react @assistant-ui/eve eveMount Eve in Next.js
import { withAui } from "@assistant-ui/next";
import type { NextConfig } from "next";
import { withEve } from "eve/next";
const nextConfig: NextConfig = {};
export default withEve(withAui(nextConfig));Add an Eve agent
import { defineAgent } from "eve";
export default defineAgent({
model: "anthropic/claude-sonnet-4.6",
});You are a concise assistant. Use tools when they are available.Create the runtime
"use client";
import { Thread } from "@/components/assistant-ui/thread";
import { useEveAgentRuntime } from "@assistant-ui/eve";
import { AssistantRuntimeProvider } from "@assistant-ui/react";
export default function Home() {
const runtime = useEveAgentRuntime();
return (
<AssistantRuntimeProvider runtime={runtime}>
<Thread />
</AssistantRuntimeProvider>
);
}Production auth
The default Eve channel is convenient for local development. For production browser users, define agent/channels/eve.ts and replace the default auth policy with your app's auth.
import { localDev, vercelOidc } from "eve/channels/auth";
import { eveChannel } from "eve/channels/eve";
export default eveChannel({
auth: [localDev(), vercelOidc()],
});That example keeps the development defaults. Swap in your Clerk, Auth.js, OIDC, or JWT verification before going live.