Back to templates

Template details

Sanity Copilot eve Template

A Slack-based Sanity copilot for the eve agent framework that manages content, schemas, and releases with GROQ and drafts into Notion.

About this template

Sanity Copilot eve Template is an open-source boilerplate from Vercel Labs for building a Slack-based content-management agent on the eve framework, letting teams @mention a bot to query and edit Sanity content with GROQ, shape schemas, manage releases, and draft long-form pieces into Notion pages.

What is the Sanity Copilot eve Template?

The Sanity Copilot eve Template is a deployment-ready agent template that runs on Vercel and lives in Slack: team members @mention it or DM it, and it performs Sanity CMS operations as the real user through user-scoped OAuth. It takes Slack messages as input and produces Slack thread replies, approval buttons for destructive actions, and Notion pages for long-form drafts. It is built on the eve agent framework in strict TypeScript (ESM) and is maintained by Vercel Labs.

Key Features

  • Slack-native interface — The bot answers @mentions and DMs, replies in threads, and renders approval requests as clickable buttons, keeping the workflow inside Slack.
  • User-scoped Sanity access — Each user signs into Sanity through Vercel Connect, so queries and edits run with that person's own permissions; destructive operations like patching, publishing, and deploying schemas pause for approval before running.
  • Notion drafting — Long-form content pieces are created as Notion pages through the same user-scoped OAuth flow, with page updates and moves gated on approval.
  • Vercel Blob asset tools — The template includes five tools (upload_asset.ts, list_assets.ts, get_asset_info.ts, download_asset.ts, delete_asset.ts) for storing and reading text or binary files, authenticated by the project's OIDC token.
  • Fresh-context subagents — A researcher subagent with web-only tools and a reviewer subagent with its own copy of the writing-quality rubric run in separate sessions with their own sandboxes.
  • Seven built-in skills — Skills cover Sanity best practices, content modeling, Portable Text conversion and serialization, SEO/AEO, content experimentation, and writing quality; all except writing-quality come from Sanity's Agent Toolkit.
  • Zero static keys — Authentication is handled entirely by Vercel Connect for Slack, Sanity, and Notion and by Vercel OIDC for Blob and AI Gateway, so there are no API keys or client secrets in code or .env files.
  • Local development TUI — Chat with the agent in a terminal TUI via the eve.ts channel, use /model to link a model provider, and test the Sanity, Notion, and Blob flows before deploying with eve deploy.

Who is it for?

The Sanity Copilot eve Template is aimed at Sanity content teams, Sanity developers, and AI agent builders who want to manage a CMS from Slack without leaving their chat workflow. Content editors can create and edit drafts, request approvals, and trigger releases; developers can inspect and reshape schemas, run GROQ queries, and apply Sanity best practices through the bundled skills. AI agent builders can use the repo as a reference for wiring multiple MCP connections, approval gates, and subagents into an eve agent.

What can you do with it?

  • Content operations teams: @mention the bot in Slack to patch content, create drafts, and manage releases, with destructive actions pausing for human approval.
  • Writers and editors: draft long-form pieces as Notion pages, get a fresh-eyes review from the reviewer subagent, and propose the final draft while page updates and moves stay gated on approval.
  • Developers: deploy with the Vercel button to have Slack, Sanity, and Notion connectors plus a Vercel Blob store provisioned automatically, then customize behavior by editing agent/instructions.md.
  • AI agent builders: pair this copilot with the eve Content Agent template using remote agents, passing surface, source material, and constraints in the message while the content agent runs in its own deployment with its own skills and connections.

How does it work?

The Deploy button provisions everything: a Slack connector (with event trigger at /eve/v1/slack), a Sanity connector, a Notion connector, and a Vercel Blob store. Once deployed, team members @mention the bot, which loads the relevant skill, grounds its work in the real Sanity project using GROQ and schema reads, works in drafts, and requests approval before running destructive tools. The bot's behavior is defined in agent/instructions.md, approval gates are lists in the Sanity and Notion connection files, and new tools are added by placing files in agent/tools/.

Pros and cons

  • Pro: No static API keys — Authentication runs through Vercel Connect and OIDC, eliminating secret management.
  • Pro: Approval gates on dangerous operations — Patching, publishing, schema deploys, page moves, and file deletes require human approval, reducing risk.
  • Pro: Extensible architecture — Skills, tools, subagents, and model configuration are all file-based and auto-update as you edit them.
  • Con: Slack surface only runs in deployed environments — Local development uses a TUI instead, so Slack-specific features like buttons and threads cannot be tested locally.

Pricing

Free — the template is open source under the MIT License, as shown in the repository. Deployment costs on Vercel (connectors, Blob storage, and AI Gateway usage) are your own responsibility.

FAQ

Does the Sanity Copilot eve Template store API keys?

No. The template has zero static keys: Slack, Sanity, and Notion credentials come from Vercel Connect, while Vercel Blob and the AI model authenticate with the project's OIDC token. There are no API keys or client secrets to manage in code or environment files.

Can I change which operations require approval?

Yes. Edit the APPROVAL_REQUIRED_TOOLS lists in agent/connections/sanity.ts and agent/connections/notion.ts to decide which MCP tools pause for a human decision before they run.

Can I test the Slack integration locally?

The Slack surface only runs against a deployment. Locally, you can chat with the agent through the dev TUI using the eve.ts channel, which lets you test Sanity, Notion, and Blob flows, but button-based Slack interactions require a deployed environment.

What skills does the template include?

The template ships with seven skills: sanity-best-practices, content-modeling-best-practices, portable-text-conversion, portable-text-serialization, seo-aeo-best-practices, content-experimentation-best-practices, and writing-quality. All except writing-quality come from Sanity's Agent Toolkit, and the sanity-best-practices references back the Sanity MCP server's rules tools.

How do I deploy this template?

Use the Deploy with Vercel button in the repository. It provisions the Slack connector (pointed at /eve/v1/slack), Sanity connector, Notion connector, and a Vercel Blob store automatically. After deployment, @mention the bot in your Slack workspace to start working on your Sanity project.

screenshot of Sanity Copilot eve Template on template0.com