Skip to content
New Project

eve Personal Agent

Open source personal agent template. Web chat, Slack, iMessage, Linear, and long-term memory.

DeployView Demo

Personal Agent Template

Template. Fork it, customize it, and deploy your own personal agent.


Open source personal agent template. Web chat, Slack, iMessage, Linear, and long-term memory — one codebase, durable sessions, user-approved memory saves.

Features

Web Chat — Threads That Persist

Chat with your agent in the browser. Threads resume across sessions, tool calls render in real time, and save_memory proposals require explicit approval before anything is stored.

Slack — Same Agent, Different Surface

DMs and @mentions on Slack. Link your Slack account to your web profile so memory and context follow you across channels.

iMessage — Text Your Agent

Reach V over iMessage via Sendblue. Add your phone number in Profile, then message the Sendblue line — same memory and context as web and Slack.

Linear — Issues On Demand

Connect Linear via Vercel Connect MCP. Ask about issues, projects, and cycles — the agent queries Linear tools, never guesses from memory.

Long-Term Memory — Import and Grow

Raycast-style import from ChatGPT or other assistants. Five fixed categories, one prose block each. Edit, delete, or let the agent propose updates via save_memory.

Daily Summary — On Demand

Morning briefing skill: active focus from memory, assigned Linear issues, and a suggested next action. Trigger from the home quick action or ask in chat.

Architecture

┌─────────────────────────────────────────────────────────────────┐
│ Web chat · Slack DMs / mentions · iMessage │
└───────────────────────────────┬─────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────────────┐
│ Eve agent (channels, tools, skills) │
└───────────────────────────────┬─────────────────────────────────┘
│ /api/internal/* (Bearer auth)
▼
┌─────────────────────────────────────────────────────────────────┐
│ Nuxt (UI + Nitro API + Better Auth + SQLite) │
└───────────────────────────────┬─────────────────────────────────┘
▼
Vercel Connect (Linear, Slack)

On Vercel, two services deploy from vercel.json [blocked]: web (Nuxt) and eve (agent runtime).

Quick Start

Deploy to Vercel

Self-hosting

Requirements: Node.js 24+, pnpm

git clone https://github.com/vercel-labs/personal-agent-template.git
cd personal-agent-template
pnpm install
cp .env.example .env
pnpm db:migrate
pnpm dev

Open http://localhost:3000, create an account, and start chatting.

Required environment variables:

BETTER_AUTH_SECRET=... # openssl rand -base64 32
BETTER_AUTH_URL=http://localhost:3000
INTERNAL_API_SECRET=... # openssl rand -base64 32 — same on web + eve

See ENVIRONMENT.md for the full reference.

Fresh local database:

rm -rf .data/db && pnpm db:migrate

Customization

Personal Agent Template ships with V as the example persona. See the Customization Guide for how to:

  • Rename your agent (name, slug, persona)
  • Change the AI model
  • Add tools and skills
  • Configure Slack, iMessage, and Linear integrations
  • Theme the UI
  • Deploy your fork

Memory

Long-term memory is injected into every Eve session for authenticated users (web, linked Slack, and iMessage).

  1. Open Profile → Import Memory
  2. Copy the export prompt into ChatGPT, Claude, etc.
  3. Paste the response → Add to Memory
  4. Start a new chat so the agent picks up the latest context

V can also propose facts via save_memory — approve or skip in chat. Edit or delete entries on Profile → Memory.

How It Works

For the full technical deep-dive, see Architecture.

  1. Auth: Users sign in via Better Auth (email/password)
  2. Session start: Eve fetches profile + memory and injects into agent instructions
  3. Chat: Web UI streams through Eve; Slack events hit the slack channel; iMessage via Sendblue
  4. Tools: Agent calls weather, save_memory, Linear MCP as needed
  5. Internal API: Agent reads/writes memory, Slack links, and phone links via authenticated Nitro routes

Development

pnpm dev # Start Nuxt + Eve dev server
pnpm typecheck # TypeScript check
pnpm build # Production build
pnpm db:generate # Generate Drizzle migrations
pnpm db:migrate # Apply migrations

See AGENTS.md for notes aimed at AI coding assistants.

Built With

  • Eve — Durable agent framework
  • Nuxt — Full-stack Vue framework
  • Nuxt UI — UI component library
  • NuxtHub — SQLite database
  • Better Auth — Authentication
  • Drizzle ORM — Type-safe database queries
  • Vercel Connect — Linear and Slack integrations

Contributing

See CONTRIBUTING.md for how to get involved.

License

MIT

GitHub
Ownervercel-labs
Repositorypersonal-agent-template
LicenseView License
Use Cases
AI
Starter
Authentication
Stack
Nuxt
Eve

Related Templates

eve Chat Template

A persisted Next.js chat template for eve, built with shadcn/ui, Tailwind CSS, Streamdown, Better Auth, Drizzle, and Neon.
eve Chat Template thumbnail

eve Content Agent

Draft blog posts, LinkedIn posts, release notes, and newsletters in your team's house voice without leaving Slack.
eve Content Agent thumbnail
DeployView Demo