chat-sdk
The Chat SDK skill helps agents build multi-platform chatbots that work across Slack, Teams, Discord, Telegram, GitHub, Linear, and other services using a…
Identity proven by GitHub's verified organisation badge (vercel, vercel-labs)
- Agents
- Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode
- License
- Apache-2.0 (permissive)
- Pin
- 2a1e58dpinned Oct 9, 2026
- Context cost
- about 1,700 tokenswhen the skill loads
- GitHub stars
- 300on vercel/vercel-plugin
- Scripts
- None found
What it does
“Vercel Chat SDK expert guidance. Use when building multi-platform chat bots — Slack, Telegram, Microsoft Teams, Discord, Google Chat, GitHub, Linear — with a single codebase. Covers the Chat class, adapters, threads, messages, cards, modals, streaming, state management, and webhook setup.”
Generated summary from the skill's own text
The Chat SDK skill helps agents build multi-platform chatbots that work across Slack, Teams, Discord, Telegram, GitHub, Linear, and other services using a single TypeScript codebase. It covers the Chat class, platform adapters, message handling, cards, modals, streaming, state management, and webhook configuration.
When to use it
- Building bots that run on multiple platforms with unified code
- Implementing interactive chat features with cards and modal responses
- Creating streaming responses and state management in chat handlers
- Scaffolding new bot projects with create-chat-sdk
When not to
- Building real-time chat UI components on the frontend
- Managing long-running bot processes without durable execution
- Using platform-specific libraries instead of adapters
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add vercel/vercel-plugin --skill chat-sdkInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install vercel/vercel-plugin chat-sdk@2a1e58dfb63c064c2589c0c21b3e93c53728f8d5Installs the commit we checked (2a1e58d).
Copy by hand
Download the folder at 2a1e58d and put it in .claude/skills/chat-sdk for Claude Code and in .agents/skills/chat-sdk for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Claude Code plugin
/plugin install vercel@claude-plugins-officialThe publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "chat-sdk" by Vercel. Source, pinned to commit 2a1e58dfb63c064c2589c0c21b3e93c53728f8d5: https://github.com/vercel/vercel-plugin/tree/2a1e58dfb63c064c2589c0c21b3e93c53728f8d5/skills/chat-sdk 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/chat-sdk/ for Claude Code and .agents/skills/chat-sdk/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/vercel/chat-sdk
SKILL.md at the pin
---
name: chat-sdk
description: Vercel Chat SDK expert guidance. Use when building multi-platform chat bots — Slack, Telegram, Microsoft Teams, Discord, Google Chat, GitHub, Linear — with a single codebase. Covers the Chat class, adapters, threads, messages, cards, modals, streaming, state management, and webhook setup.
metadata:
priority: 8
docs:
- "https://chat-sdk.dev/docs"
- "https://vercel.com/kb/chat-sdk"
sitemap: "https://chat-sdk.dev/sitemap.xml"
pathPatterns:
- "app/api/chat/**"
- "app/api/chat-bot/**"
- "app/api/bot/**"
- "app/api/slack/**"
- "app/api/teams/**"
- "app/api/discord/**"
- "app/api/gchat/**"
- "app/api/telegram/**"
- "app/api/github-bot/**"
- "app/api/linear-bot/**"
- "app/api/webhooks/slack/**"
- "app/api/webhooks/teams/**"
- "app/api/webhooks/discord/**"
- "app/api/webhooks/gchat/**"
- "app/api/webhooks/telegram/**"
- "app/api/webhooks/github/**"
- "app/api/webhooks/linear/**"
- "src/app/api/chat/**"
- "src/app/api/chat-bot/**"
- "src/app/api/bot/**"
- "src/app/api/slack/**"
- "src/app/api/teams/**"
- "src/app/api/discord/**"
- "src/app/api/gchat/**"
- "src/app/api/telegram/**"
- "lib/bot.*"
- "lib/bot/**"
- "src/lib/bot.*"
- "src/lib/bot/**"
- "lib/chat-bot/**"
- "src/lib/chat-bot/**"
- "bot/**"
- "pages/api/bot.*"
- "pages/api/bot/**"
- "src/pages/api/bot.*"
- "src/pages/api/bot/**"
- "tests/**/bot*"
- "test/**/bot*"
- "fixtures/replay/**"
- "apps/*/app/api/bot/**"
- "apps/*/app/api/slack/**"
- "apps/*/app/api/teams/**"
- "apps/*/app/api/discord/**"
- "apps/*/lib/bot/**"
- "apps/*/src/lib/bot/**"
importPatterns:
- "chat"
- "@chat-adapter/*"
bashPatterns:
- '\bnpm\s+(install|i|add)\s+[^\n]*\bchat\b'
- '\bpnpm\s+(install|i|add)\s+[^\n]*\bchat\b'
- '\bbun\s+(install|i|add)\s+[^\n]*\bchat\b'
- '\byarn\s+add\s+[^\n]*\bchat\b'
- '\bnpm\s+(install|i|add)\s+[^\n]*@chat-adapter/'
- '\bpnpm\s+(install|i|add)\s+[^\n]*@chat-adapter/'
- '\bbun\s+(install|i|add)\s+[^\n]*@chat-adapter/'
- '\byarn\s+add\s+[^\n]*@chat-adapter/'
- '\bnpm\s+(install|i|add)\s+[^\n]*@chat-adapter/telegram'
- '\bpnpm\s+(install|i|add)\s+[^\n]*@chat-adapter/telegram'
- '\bbun\s+(install|i|add)\s+[^\n]*@chat-adapter/telegram'
- '\byarn\s+add\s+[^\n]*@chat-adapter/telegram'
promptSignals:
phrases:
- "chat sdk"
- "chat bot"
- "chatbot"
- "conversational interface"
- "slack bot"
- "telegram bot"
- "discord bot"
- "teams bot"
allOf:
- [bot, platform]
- [bot, multi]
anyOf:
- "onNewMention"
- "onSubscribedMessage"
- "chat adapter"
- "cross-platform bot"
noneOf:
- "useChat"
minScore: 6
retrieval:
aliases:
- chat ui
- chatbot
- conversation interface
- messaging component
intents:
- build chatbot
- add chat interface
- create messaging ui
- implement chat feature
entities:
- useChat
- Message
- ChatUI
- StreamingMessage
- chat-sdk
examples:
- build a chatbot interface
- add chat to my app
- create a messaging component
chainTo:
-
pattern: 'from\s+[''""]openai[''""]'
targetSkill: ai-sdk
message: 'Direct OpenAI SDK import in chat bot — loading AI SDK guidance for unified provider abstraction and streaming.'
-
pattern: 'from\s+[''\"](slack-bolt|@slack/bolt|@slack/web-api)[''"]|require\s*\(\s*[''\"](slack-bolt|@slack/bolt|@slack/web-api)[''"]|new\s+App\s*\(\s*\{\s*token'
targetSkill: chat-sdk
message: '@slack/bolt or @slack/web-api detected — use the Chat SDK with @chat-adapter/slack instead for a unified multi-platform bot that works across Slack, Teams, Discord, Telegram, and more.'
-
pattern: 'from\s+[''\"](discord\.js|discord-api-types|telegram-bot-api|telegraf|grammy)[''"]|require\s*\(\s*[''\"](discord\.js|telegraf|grammy)[''"]'
targetSkill: chat-sdk
message: 'Platform-specific bot library detected — use the Chat SDK with the corresponding @chat-adapter/* package for a unified multi-platform bot codebase.'
-
pattern: 'setTimeout\s*\(|setInterval\s*\(|while\s*\(\s*true'
targetSkill: workflow
message: 'Long-running or polling logic in chat bot — loading Workflow SDK for durable execution that survives deploys.'
skipIfFileContains: 'use workflow|from\s+[''"]workflow[''"]'
-
pattern: 'process\.env\.(OPENAI_API_KEY|ANTHROPIC_API_KEY)|from\s+[''"]@ai-sdk/(anthropic|openai)[''""]'
targetSkill: ai-gateway
message: 'Direct provider API key in chat bot — loading AI Gateway guidance for OIDC auth and model routing.'
skipIfFileContains: 'gateway\(|@ai-sdk/gateway'
---
# Chat SDK
Unified TypeScript SDK for building chat bots across Slack, Microsoft Teams, Google Chat, Discord, Telegram, GitHub, Linear, WhatsApp, and more. Write your bot logic once, deploy everywhere.
## Scaffold a new project
Use `create-chat-sdk` to scaffold a basic Next.js bot project without prompts. Run `npx create-chat-sdk --help` to see the available options and how the CLI works.
## Start with Chat SDK documentation
When Chat SDK is installed in a user's project, inspect the published docs that ship in `node_modules/chat/docs/`, the resources in `node_modules/chat/resources/`, and the available open source templates in `node_modules/chat/resources/templates.json`.
If those paths do not exist, the `chat` package is not installed in the project yet. The user can install it with `npm i chat`.
You can also find the docs on the [Chat SDK website](https://chat-sdk.dev/docs) and in the [Vercel knowledge base](https://vercel.com/kb/chat-sdk).
## Available resources
<!-- RESOURCES:START -->
### Guides
- `node_modules/chat/resources/guides/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk.md` — Build a Slack AI agent using Chat SDK, AI SDK's ToolLoopAgent, and Vercel AI Gateway. Covers project setup, tool definitions, streaming responses, deployment to Vercel, and scaling tool selection with toolpick.
- `node_modules/chat/resources/guides/human-in-the-loop-with-chat-sdk-and-workflow-sdk.md` — Pause durable workflows on Slack approval cards using Chat SDK and Workflow SDK. Uses createWebhook to suspend workflows until a button click, with patterns for multi-stage approvals, timeouts via durable sleep, and approver validation.
- `node_modules/chat/resources/guides/liveblocks-chat-sdk-ai-sdk.md` — Build an AI agent that replies to @-mentions in Liveblocks comment threads with streamed responses and tool calling. Uses Chat SDK, the Liveblocks adapter, AI SDK's ToolLoopAgent, and Redis for thread subscriptions and distributed locking.
- `node_modules/chat/resources/guides/slack-bot-vercel-blob.md` — Build a Slack bot that lists, reads, uploads, and deletes files in Vercel Blob through tool calls. Uses Chat SDK, AI SDK's ToolLoopAgent, and Files SDK's createFileTools factory with approval-gated write tools and a read-only mode.
- `node_modules/chat/resources/guides/run-and-track-deploys-from-slack.md` — Build a Slack deploy bot with Chat SDK and Vercel Workflow. Dispatch GitHub Actions from a slash command, gate production behind approval, poll for completion, and notify Linear and GitHub when the run finishes.
- `node_modules/chat/resources/guides/triage-form-submissions-with-chat-sdk.md` — Build a Slack bot that triages form submissions with interactive cards. Forward, edit, or mark as spam without leaving Slack. Built with Chat SDK, Hono, and Resend.
- `node_modules/chat/resources/guides/how-to-build-a-slack-bot-with-next-js-and-redis.md` — This guide walks through building a Slack bot with Next.js, covering project setup, Slack app configuration, event handling, interactive features, and deployment.
- `node_modules/chat/resources/guides/create-a-discord-support-bot-with-nuxt-and-redis.md` — This guide walks through building a Discord support bot with Nuxt, covering project setup, Discord app configuration, Gateway forwarding, AI-powered responses, and deployment.
- `node_modules/chat/resources/guides/ship-a-github-code-review-bot-with-hono-and-redis.md` — This guide walks through building a GitHub bot that reviews pull requests on demand. When a user @mentions the bot on a PR, Chat SDK picks up the mention, spins up a Vercel Sandbox with the repo cloned, and uses AI SDK to analyze the diff.
- `node_modules/chat/resources/guides/build-a-slack-bot-with-vercel-connect.md` — Learn how to build your very own Slackbot with Chat SDK and AI SDK. Vercel Connect supplies runtime Slack tokens and forwards triggers, so you never store a long-lived bot token.
- `node_modules/chat/resources/guides/vercel-connect.md` — Use Vercel Connect to call provider APIs like Slack, GitHub, and Snowflake from your agents and services with short-lived, user-authorized tokens instead of long-lived secrets.
- `node_modules/chat/resources/guides/ai-gateway-and-ai-sdk.md` — Build AI agents on Vercel with AI Gateway and AI SDK, then make them reliable, capable, and durable with Sandbox, Chat SDK, Vercel Connect, and Workflow.
- `node_modules/chat/resources/guides/daily-digest-bot-with-chat-sdk-and-workflow-sdk.md` — Create your own daily digest bot that posts a daily digest of GitHub stats to Slack. Learn how to use Vercel Connect to set up Slack and GitHub app securely in your project.
### Templates
Listed in `node_modules/chat/resources/templates.json`:
- **Chat SDK Liveblocks Bot** — Build a bot that you can engage with inside Liveblocks. (https://vercel.com/templates/next.js/chat-sdk-liveblocks-bot)
- **Durable iMessage Agent** — Durable iMessage agent powered by the Sendblue adapter. (https://vercel.com/templates/nitro/durable-imessage-ai-agent)
- **Knowledge Agent** — Open source file-system and knowledge based agent template. Build AI agents that stay up to date with your knowledge base. (https://vercel.com/templates/nuxt/chat-sdk-knowledge-agent)
- **Community Agent** — Open source AI-powered Slack community management bot with a built-in Next.js admin panel. Uses Chat SDK, AI SDK, and Vercel Workflow. (https://vercel.com/templates/next.js/chat-sdk-community-agent)
- **Caltext** — iMessage calorie tracking assistant powered by AI. (https://vercel.com/templates/hono/caltext)
<!-- RESOURCES:END -->
## Chat SDK adapters
### Adapter directory
See the 'Official Adapters', 'Vendor-Official Adapters', and 'Community Adapters' sections in the [Chat SDK llms.txt file](https://chat-sdk.dev/llms.txt) for the current list of official, vendor-official, and community adapters.
### Adapter catalog subpath
Chat SDK exposes a zero-dependency static catalog at `chat/adapters`.
Agents can import `ADAPTERS`, `ADAPTER_NAMES`, `getAdapter`, `isAdapterSlug`, `listEnvVars`, `getSecretEnvVars`, and metadata types like `CatalogAdapter` and `AdapterSlug` from this subpath without importing any adapter implementation package.
Use it for:
- Listing official and vendor-official adapter slugs, names, npm packages, groups, and platform vs state types.
- Building setup or onboarding flows that need package names, peer dependencies, and install guidance before any adapter is installed.
- Discovering required, optional, and credential-mode environment variables for an adapter, including which variables are secrets.
- Keeping vendor-official adapter docs and metadata aligned with the catalog when adding or updating a listed adapter.From vercel/vercel-plugin at 2a1e58d, shown as plain text under its license: Apache-2.0 (permissive). The license text is in LICENSE.
View SKILL.md on GitHub at 2a1e58dFiles
- SKILL.md12 KB · 65b932858227
- .vercel.approvers22 B · fe7d2df05827
- overlay.yaml4.8 KB · b8187b63db38
3 files, 16 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at 2a1e58dMore from Vercel
next-bundle-optimizer
Audits Next.js applications to identify and reduce browser bundle size and initial-load work by analyzing routes, dependencies and client outputs.
Claude Code, Codex, Cursor +4 · about 2.3K tokens · pinned 6 days ago
next-cache-components-optimizer
Optimize Next.js routes to display meaningful UI instantly on initial load or client navigation by encoding the optimization goal as a failing…
Claude Code, Codex, Cursor +4 · about 5.6K tokens · pinned 6 days ago
next-partial-prefetching-adoption
Enables Partial Prefetching in Next.js 16.3+ apps and guides adoption through auditing Link prefetch behavior, preserving UI in tests or manually, and…
Claude Code, Codex, Cursor +4 · about 6.7K tokens · pinned 6 days ago
next-partial-prefetching-optimizer
This skill optimizes Next.js client-side navigation under Partial Prefetching by defining what UI loads before and after a click.
Claude Code, Codex, Cursor +4 · about 2.8K tokens · pinned 6 days ago
apple
This skill emulates Apple's OAuth and OIDC services for local development and testing.
Claude Code, Codex, Cursor +4 · about 1.9K tokens · pinned 6 days ago
aws
This skill emulates AWS cloud services locally, providing S3 bucket and object operations, SQS message queues, IAM user and role management, and STS assume…
Claude Code, Codex, Cursor +4 · about 2.8K tokens · pinned 6 days ago
Related in AI and agents
authoring-scouts
This skill helps engineers write, edit, and adapt PostHog Signals scouts, scheduled agents that scan projects and report findings to an inbox.
by PostHogOfficial publisher
Claude Code, Codex, Cursor +4 · about 10.6K tokens · pinned 6 days ago
acquiring-skills
Enables the agent to discover and install skills from multiple registries including Hermes Skills Hub, ClawHub, GitHub, and community repositories.
by LettaOfficial publisher
Agents not labelled yet · about 3.1K tokens · pinned 6 days ago
ai-gateway
Vercel AI Gateway skill provides guidance for routing model requests across multiple AI providers with unified authentication, budgets, and observability.
by VercelOfficial publisher
Claude Code, Codex, Cursor +3 · about 3K tokens · pinned 6 days ago
ai-sdk
The Vercel AI SDK is a TypeScript library for building AI applications with unified APIs across language model providers.
by VercelOfficial publisher
Claude Code, Codex, Cursor +3 · about 1.3K tokens · pinned 6 days ago
benchmark-agents
This skill runs advanced AI agent benchmarks by launching interactive Claude Code sessions through WezTerm, injecting a Vercel platform plugin, and verifying…
by VercelOfficial publisher
Claude Code · about 3.5K tokens · pinned 6 days ago
build-agents
This skill provides default guidance for building AI agents using eve, Vercel's filesystem-first framework for durable agents.
by VercelOfficial publisher
Claude Code, Codex, Cursor +3 · about 750 tokens · pinned 6 days ago
Open roles at Vercel
5 of 11 open roles on the jobs board
- Software Engineer - Data Platform
Remote (United States) (Remote)
- Software Engineer, CDN
San Francisco, California, United States; New York City, New York, United States (Hybrid)
- Software Engineer, Trust & Safety
San Francisco, California, United States; New York City, New York, United States (Hybrid)
- Solutions Architect
San Francisco, New York City, Austin, United States (Hybrid)
- Software Engineer, Compute
London, UK (Hybrid)