# Quickstart
URL: /docs/runtimes/eve/quickstart

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

**React**

```
npx create-assistant-ui@latest -t eve my-app
cd my-app
```

Set a model credential:

```
AI_GATEWAY_API_KEY=your-api-key
```

```
npm run dev
```

Open <http://localhost:3000> and send a message. The template includes:

- `agent/agent.ts` for Eve runtime config.
- `agent/instructions.md` for the always-on system prompt.
- `next.config.ts` with `withEve(withAui(nextConfig))`.
- `app/page.tsx` with `useEveAgentRuntime()`.

## Manual setup in an existing app

1. ### Install dependencies

   ```bash
   npm install @assistant-ui/react @assistant-ui/eve eve
   ```

2. ### Mount 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));
   ```

3. ### 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.
   ```

4. ### 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.

## Next

- [Eve overview](/docs/runtimes/eve/overview) — Architecture, requirements, and runtime behavior.
- [API reference](/docs/api-reference/integrations/eve) — useEveAgentRuntime and message conversion helpers.