New to Claude Skills? Learn how to install them →

Avercel on GitHub

Add Adapter

OfficialFree

Easily register third-party adapters in the Chat SDK.

by vercel2.3k stars on vercel/chat
2 views
Updated Aug 10, 2026
Get this skill

Free · Opens the source repo

What Add Adapter does

The Add Adapter skill allows developers to seamlessly integrate third-party adapters into the Chat SDK catalog and documentation. This skill is particularly useful for those who want to enhance the Chat SDK with additional functionality provided by community or vendor-official adapters. By using this skill, developers can ensure that their adapters are properly listed in the adapters.json registry and documented in the relevant MDX pages, making it easier for other users to discover and utilize them.

To use the Add Adapter skill, developers need to provide the GitHub repository URL of their adapter and the corresponding documentation or README file. The skill will extract necessary information such as the package name, factory exports, environment variables, and feature matrix directly from these sources. This ensures that all information included in the catalog and documentation is accurate and up-to-date, eliminating the need for guesswork or assumptions.

This skill is ideal for developers who are looking to contribute to the Chat SDK ecosystem by adding their own adapters. It simplifies the process of registration and documentation, allowing developers to focus on building their adapters without getting bogged down by the administrative tasks involved in listing them. The Add Adapter skill is also beneficial for community contributions, as it provides a clear pathway for developers to share their work with others in the Chat SDK community.

However, it is important to note that this skill is not intended for building first-party adapter packages. Instead, it is specifically designed for third-party adapters, whether they are community-driven or vendor-supported. This distinction is crucial for developers to understand to ensure they are using the right tools for their needs.

When to use it

Use this skill when you want to add, list, or submit a third-party adapter to the Chat SDK catalog and documentation.

When not to use it

This skill is not suitable for creating first-party adapter packages or for users who do not have a third-party adapter to contribute.

What you can build with it

Integrating a New Community Adapter

A developer wants to add their community-built adapter to the Chat SDK to share with others. They use the Add Adapter skill to register and document it.

Updating Adapter Documentation

After making changes to an existing adapter, a developer uses the skill to update the documentation and ensure it reflects the latest features.

Submitting a Vendor-Official Adapter

A company has developed an official adapter for their service and uses the Add Adapter skill to register it in the Chat SDK, making it available to all users.

How to install Add Adapter

View source

1. Install with the skills CLI

npx skills add vercel/chat/add-adapter --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by vercel

Add a catalog adapter (vendor-official or community)

Use this to list a third-party adapter in the Chat SDK catalog and docs. It is not for building a first-party packages/adapter-* package.

Gather the source — never invent details

Ask the user for:

  1. Their adapter's GitHub repository URL.
  2. Their docs or README.

Read both. Everything you write into the catalog and docs must come directly from those sources or from the user. Do not assume or guess any information:

  • packageName — read it from the repo's package.json, verbatim.
  • Factory export (e.g. createFooAdapter) — read it from the package's exports/source. Do not guess it from the display name.
  • type (platform or state), env vars, and the feature matrix — base these on what the code and README actually document.
  • Install and usage snippets — take them from the README; do not write example code the adapter may not support.

If the repo or README does not make something clear, stop and ask the user rather than filling it in. When in doubt, ask.

Choose the slug (kebab-case) and confirm it is not already taken: ls apps/docs/content/adapters/*/.

Pick the tier

  • community — listed in the docs only. No chat/adapters catalog entry, no changeset.
  • vendor-official — a maintained/blessed adapter. Everything community has, plus a chat/adapters catalog entry, a matching create-chat-sdk scaffold-spec entry, and a changeset. Frontmatter adds vendorOfficial: true and author.

Files to change

<tier> is vendor-official or community.

  1. apps/docs/content/adapters/<tier>/<slug>.mdx — the docs page. Start from assets/adapter.mdx. The filename basename must equal the slug frontmatter field, and the page must render <FeatureSupport />.
  2. apps/docs/content/adapters/<tier>/meta.json — add "<slug>" to the pages array.
  3. apps/docs/adapters.json — add a registry entry: name, slug, type, community: true, description, packageName, author, readme (the GitHub URL). Add vendorOfficial: true for vendor-official.
  4. packages/integration-tests/src/docs-adapters.test.ts — add "<slug>" to the hardcoded expected list for its tier.
  5. packages/integration-tests/src/documentation-test-utils.ts — add the packageName to VALID_DOC_PACKAGES, plus every import specifier used in the MDX code blocks (subpaths count separately).

Vendor-official also:

  1. packages/chat/src/adapters/index.ts — add an ADAPTERS entry with group: "vendor-official". Reuse the env/secretEnv/urlEnv helpers; use env: { notes: "…" } when there are no env vars. See packages/chat/src/adapters/AGENTS.md.
  2. packages/create-chat-sdk/src/catalog/scaffold-spec.ts — add a matching "<slug>": { invocation: … } entry, modeled on a similar adapter. This is a required registration step, not a behavior change: the object is satisfies Record<AdapterSlug, …>, so every catalog slug must have one or create-chat-sdk fails to type-check.
  3. .changeset/<slug>-adapter.md"chat": patch + "create-chat-sdk": patch, one line describing the addition.

Invariants the tests enforce

  • Registry ↔ catalog parity. Object.keys(ADAPTERS) must equal the adapters.json slugs where !community || vendorOfficial. So vendor-official must be in chat/adapters; community-only must not be. This is why community adapters skip steps 6–8.
  • peerDeps ↔ PackageInstall. The catalog entry's peerDeps (sorted) must exactly equal the extra packages in the MDX <PackageInstall package="…" />, after removing the adapter's own packageName, chat, and any @chat-adapter/state-*. Easiest: peerDeps: [], install only <packageName> chat (plus a state adapter) in PackageInstall, and keep any other imports in fenced code blocks.
  • Fields match. packageName, type, community, and vendorOfficial must match between the MDX frontmatter and the adapters.json entry.
  • Required frontmatter: title, description, packageName, slug, tagline, type (platform | state), mdxBody: true, community: true (plus vendorOfficial: true and author for vendor-official).
  • Imports. Every import in an MDX code block must be listed in VALID_DOC_PACKAGES.

Validate

pnpm --filter chat build            # regenerate the catalog the tests import
pnpm --filter @chat-adapter/integration-tests test
pnpm --filter chat typecheck
pnpm --filter create-chat-sdk typecheck   # vendor-official only
pnpm check && pnpm konsistent

Resources

  • Human guide (vendor-official): apps/docs/content/docs/contributing/vendor-official.mdx
  • Human guide (community listing): apps/docs/content/docs/contributing/publishing.mdx
  • MDX template: assets/adapter.mdx
  • Catalog conventions: packages/chat/src/adapters/AGENTS.md
  • Examples to copy: apps/docs/content/adapters/vendor-official/ and apps/docs/content/adapters/community/

Frequently asked questions about Add Adapter

Similar skills