---
title: "eve Slack Starter"
description: "Official eve starter template for Slack agents."
url: "https://vercel.com/templates/eve/eve-slack-agent"
links:
  repository: "https://github.com/vercel/eve/tree/main/apps/templates/eve-slack-agent-template"
  deploy: "https://vercel.com/new/clone?demo-title=eve+Slack+Agent&demo-description=An+eve+template+for+Slack+agents+with+webhook+handling%2C+Vercel+Connect%2C+a+starter+agent%2C+and+an+example+tool+ready+to+deploy+on+Vercel.&project-name=eve+Slack+Agent&repository-name=eve-slack-agent&repository-url=https%3A%2F%2Fgithub.com%2Fvercel%2Feve%2Ftree%2Fmain%2Fapps%2Ftemplates%2Feve-slack-agent-template&connect=%5B%7B%22type%22%3A%22slack%22%2C%22env%22%3A%22SLACK_CONNECTOR%22%2C%22triggers%22%3Atrue%2C%22triggerPath%22%3A%22%2Feve%2Fv1%2Fslack%22%7D%5D&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F44UAmDfYVY2HnD7eadzkKB%2Fafd723b9b8b898ea022335366872d2ab%2Feve-slack-conversation-3x.png&demo-url=https%3A%2F%2Fvercel.com%2Fkb%2Fguide%2Feve-slack-agent-starter"
---

# eve Slack Starter

Official eve starter template for Slack agents.

## Build a Slack AI agent with eve

eve Slack Agent is a starter template for a Slack bot powered by an AI agent. It's built on [eve](https://eve.dev), a filesystem-first framework for durable AI agents, and it includes one agent, one example tool, and one example skill. After you deploy it to Vercel, @mention the bot in a Slack channel and it replies in a thread.

Slack connects through [Vercel Connect](https://vercel.com/docs/connect), and model requests go through [Vercel AI Gateway](https://vercel.com/docs/ai-gateway) with your project's credentials. You don't register a Slack OAuth client, copy a signing secret, or set a model provider API key.

## What's included

The agent is five files in the `agent/` directory. eve discovers each file from its location, and the filename becomes the name of the tool, skill, or channel.

| File | What it does |
| --- | --- |
| `agent/agent.ts` | Sets the model, `anthropic/claude-sonnet-5` by default |
| `agent/instructions.md` | Holds the always-on system prompt |
| `agent/channels/slack.ts` | Connects Slack through Vercel Connect and receives events at `/eve/v1/slack` |
| `agent/tools/get_weather.ts` | Defines an example tool with a Zod input schema that returns sample data |
| `agent/skills/plan_a_trip.md` | Defines an example skill the model loads for trip-planning requests |

## Frequently asked questions

### What is eve?

eve is an open-source framework from Vercel for building durable AI agents. You define an agent as files in an `agent/` directory: instructions in Markdown, tools in TypeScript, and channels such as Slack. Each conversation runs as a durable workflow, so a session survives restarts and redeploys.

### Do I need a Slack bot token or a model API key?

No. Vercel Connect manages the Slack app's bot token, token rotation, and request verification, and the template reads only the connector's ID from the `SLACK_CONNECTOR` environment variable. Model requests go through Vercel AI Gateway, which authenticates with your Vercel project's credentials. If you add a tool that calls a third-party API, store that API's key as an environment variable on your Vercel project.

### Which model does the eve Slack Agent template use?

The template uses `anthropic/claude-sonnet-5`, set in `agent/agent.ts`. The ID routes through Vercel AI Gateway. To use a different model, replace the string with another [AI Gateway model ID](https://vercel.com/ai-gateway/models).

### Does the agent reply to every message in a channel?

No. By default, the agent replies when someone @mentions it in a channel it has joined or sends it a direct message. It answers in a thread, and each thread is one session, so you mention it again in that thread to continue. To have it follow thread replies without a mention, add an `onMessage` hook to `agent/channels/slack.ts`, as the [eve Slack channel documentation](https://eve.dev/docs/channels/slack) describes.

### Can I test the Slack agent locally?

You can test everything except the Slack connection. `pnpm dev` opens eve's terminal UI, where you chat with the agent and exercise its tool and skill. Slack sends events through Vercel Connect to your deployed project, not to a local URL, so test Slack against a preview or production deployment.

### How do I add my own tools and skills?

Add a file. A tool is a TypeScript file in `agent/tools/` that default-exports `defineTool` with a description, a Zod input schema, and an `execute` function, and its snake_case filename becomes the tool name. A skill is a Markdown file in `agent/skills/` whose `description` frontmatter tells the model when to load it. eve discovers both from the filesystem, so there's no registration step.

## Related Templates

### [eve Contentful Agent](https://vercel.com/templates/eve/eve-contentful-agent)

Slack-based Contentful assistant built on eve, with Vercel Drives providing a searchable copy of your content.

### [eve Marketing Team](https://vercel.com/templates/eve/eve-marketing-team)

Marketing team in Slack: one lead, five specialists. Blog drafts in Notion, posts in Typefully, campaigns in Resend, on approval.

### [eve Personal Agent](https://vercel.com/templates/nuxt/eve-personal-agent)

Fork your own personal agent. One identity across web, Slack, and iMessage, with memory you can import, edit, and approve.

---

## Additional documentation

The [Vercel Knowledge Base](https://vercel.com/kb) contains guides and answers to common questions about Vercel, including deployment, framework configuration, domains, caching, and troubleshooting.
