Skip to content

vercel-labs/personal-agent-template

Personal Agent Template

Personal Agent Template

CI License: MIT Vercel

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

Deploy with Vercel


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.

┌─────────────────────────────────────────────────────────────────┐
│              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: web (Nuxt) and eve (agent runtime).

Quick Start

Deploy to Vercel

Deploy with 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

Contributing

See CONTRIBUTING.md for how to get involved.

License

MIT

About

Open-source template for a durable personal AI agent — web chat, Slack, Linear, and long-term memory with user-approved saves. Eve, Nuxt, Better Auth, Vercel Connect.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors

Languages