vercel-labs-skills
The CLI for the open agent skills ecosystem. Supports OpenCode, Claude Code, Codex, Cursor, and 72 more.
Comprehensive Vercel ecosystem plugin — relational knowledge graph, skills for every major product, specialized agents, and Vercel conventions. Turns any AI agent into a Vercel expert.
> /plugin marketplace add vercel-labs/vercel-plugin> /plugin install vercel-plugin@vercel
Repo: vercel-labs/vercel-plugin
What's inside
| Tool | Status |
|---|---|
| Claude Code | Supported |
| Cursor | Supported |
| GitHub Copilot CLI | Supported |
| OpenAI Codex | Supported |
| Grok Build | Supported |
| Kimi Code | Supported |
npx plugins add vercel/vercel-plugin
That's it. The plugin installs Vercel context, skills, and a lightweight default hook profile.
This plugin gives AI agents a relational knowledge graph of the Vercel ecosystem plus a bundled skill library covering products, libraries, CLI, APIs, and workflows.
After installing, the plugin keeps automatic behavior lightweight. Session-start activation now only kicks in for empty directories and detected Vercel, Next.js, or Eve projects, and Vercel skills are no longer auto-injected on every tool call or every prompt by default. The default post-tool path is now observer-only. The skills remain available for direct use, and the repo still keeps the injection engine for targeted or future opt-in workflows.
vercel.md)A text-form relational graph covering:
| Skill | Covers |
|---|---|
access-protected-vercel-deployment | Authenticated CLI and browser access to protected preview and production deployments using vc curl, OIDC, and Trusted Sources |
ai-gateway | Unified model API, provider routing, failover, cost tracking, 100+ models |
ai-sdk | AI SDK v6 — text/object generation, streaming, tool calling, agents, MCP, providers, embeddings |
auth | Authentication integrations — Clerk, Descope, Auth0 setup for Next.js with Marketplace provisioning |
bootstrap | Project bootstrapping orchestrator — linking, env provisioning, db setup, first-run commands |
cdn-caching | Diagnose cache hit rate, stale content, revalidation behavior, per-request cache reasons, and ISR read/write cost across CDN/ISR/PPR |
chat-sdk | Multi-platform chat bots — Slack, Telegram, Teams, Discord, Google Chat, GitHub, Linear |
deployments-cicd | Deployment and CI/CD — deploy, promote, rollback, --prebuilt, CI workflow files |
env-vars | Environment variable management — .env files, vercel env commands, OIDC tokens |
eve | Filesystem-first framework for durable AI agents, agent applications, channels, sandboxes, schedules, evals, and frontend clients |
knowledge-update | Knowledge update guidance for the plugin |
marketplace | Integration discovery, installation, auto-provisioned env vars, unified billing |
microfrontends | Multi-zone and microfrontend architecture, routing, deployment boundaries, and shared dependencies |
next-cache-components | Next.js 16 Cache Components — PPR, use cache, cacheLife, cacheTag, updateTag |
next-forge | Production SaaS monorepo starter — Turborepo, Clerk, Prisma/Neon, Stripe, shadcn/ui |
next-upgrade | Next.js version upgrades — codemods, migration guides, dependency updates |
nextjs | App Router, Server Components, Server Actions, Cache Components, routing, rendering strategies |
react-best-practices | React/Next.js performance optimization — 64 rules across 8 categories |
routing-middleware | Request interception before cache, rewrites, redirects, personalization — Edge/Node.js/Bun runtimes |
runtime-cache | Ephemeral per-region key-value cache, tag-based invalidation, shared across Functions/Middleware/Builds |
shadcn | shadcn/ui — CLI, component installation, custom registries, theming, Tailwind CSS integration |
turbopack | Next.js bundler, HMR, configuration, Turbopack vs Webpack |
vercel-agent | AI-powered code review, incident investigation, SDK installation, PR analysis |
vercel-cli | All CLI commands — deploy, env, dev, domains, cache management, MCP integration, marketplace |
vercel-connect | Managed OAuth tokens and third-party connections for apps, MCP servers, and Eve agents |
vercel-firewall | DDoS protection, WAF rules, rate limiting, bot filtering, and IP controls |
vercel-functions | Serverless, Edge, Fluid Compute, streaming, Cron Jobs, configuration |
vercel-sandbox | Ephemeral Firecracker microVMs for running untrusted/AI-generated code safely |
vercel-services | Multiple frontends and backends in one project, with public rewrites and private service bindings |
vercel-storage | Blob, Edge Config, Neon Postgres, Upstash Redis, migration from sunset packages |
verification | Full-story verification — infers user story, verifies end-to-end browser → API → data → response |
workflow | Workflow DevKit — durable execution, DurableAgent, steps, Worlds, pause/resume |
| Agent | Expertise |
|---|---|
deployment-expert | CI/CD pipelines, deploy strategies, troubleshooting, environment variables |
performance-optimizer | Core Web Vitals, rendering strategies, caching, asset optimization |
ai-architect | AI application design, model selection, streaming architecture, MCP integration |
| Command | Purpose |
|---|---|
/vercel-plugin:bootstrap | Bootstrap project — linking, env provisioning, db setup |
/vercel-plugin:deploy | Deploy to Vercel (preview or production) |
/vercel-plugin:env | Manage environment variables |
/vercel-plugin:status | Project status overview |
Lifecycle hooks that run automatically during your session:
After installing, session context is injected automatically only for empty directories and detected Vercel, Next.js, or Eve projects. Vercel skills are available on demand, and you can invoke them directly via slash commands:
/vercel-plugin:nextjs
/vercel-plugin:ai-sdk
/vercel-plugin:deploy prod
Telemetry is on by default and can be disabled with VERCEL_PLUGIN_TELEMETRY=off.
What is collected:
dau:active_today: sent at most once per UTC day when the plugin runs.plugin:first_use: sent once per local user profile the first time the plugin successfully reports telemetry.plugin:version: sent with telemetry batches so usage can be grouped by plugin version.Each telemetry event contains only:
id: a random event UUID.event_time: the event timestamp.key: one of the event names listed above.value: currently "1".The request also sends HTTP headers used by the telemetry bridge:
x-vercel-plugin-topic-id: daux-vercel-plugin-session-id: a random UUID generated for that telemetry request.x-vercel-plugin-version: the plugin version embedded at build time.Prompt text, bash commands, tool-call contents, file paths, project names, account IDs, and skill-injection details are not collected.
How it is tracked:
https://telemetry.vercel.com/api/vercel-plugin/v1/events.0.40.0 and newer.~/.config/vercel-plugin/:
dau-stamp prevents sending dau:active_today more than once per UTC day.first-use-stamp prevents sending plugin:first_use more than once.active-session.json is refreshed on session start with the plugin version and expiry timestamp. It lets Vercel CLI telemetry identify commands run while a recent Vercel plugin session marker is present. It contains no prompt text, file paths, project names, account IDs, tool-call contents, or skill-injection details.Behavior:
VERCEL_PLUGIN_TELEMETRY: telemetry is enabled.VERCEL_PLUGIN_TELEMETRY=off: disables all telemetry, including dau:active_today and plugin:first_use.Where to set VERCEL_PLUGIN_TELEMETRY:
~/.zshrc, ~/.bashrc, ~/.bash_profile, or ~/.config/fish/config.fish, then restart that terminal or app session.$PROFILE), or set it as a persistent user environment variable.Examples:
export VERCEL_PLUGIN_TELEMETRY=off
setx VERCEL_PLUGIN_TELEMETRY off
11 skills are synced from their upstream source repos on skills.sh. Each synced skill uses an overlay + upstream model:
skills/<name>/
├── overlay.yaml # Plugin metadata (priority, pathPatterns, validate, chainTo)
├── upstream/
│ ├── SKILL.md # Pure upstream file (synced from source repo)
│ └── references/ # Upstream reference files
└── SKILL.md # Build output: overlay + upstream body (auto-generated)
overlay.yaml is ours — injection metadata that drives the hook system. Never overwritten by sync.upstream/SKILL.md is theirs — pulled from the source repo, never manually edited.SKILL.md is the build output — auto-generated by bun run build:skills.| Skill | Upstream Repo |
|---|---|
ai-sdk | vercel/ai |
chat-sdk | vercel/chat |
eve | vercel/eve |
next-cache-components | vercel-labs/next-skills |
next-forge | vercel/next-forge |
next-upgrade | vercel-labs/next-skills |
nextjs | vercel-labs/next-skills |
react-best-practices | vercel-labs/agent-skills |
vercel-cli | vercel/vercel |
vercel-sandbox | vercel-labs/agent-browser |
workflow | vercel/workflow |
Drop the updated file into upstream/ and rebuild:
cp /path/to/new/SKILL.md skills/ai-sdk/upstream/SKILL.md
bun run build:skills
bun run build:skills:check
Exits non-zero if any SKILL.md is stale. Add to CI to catch drift.
vercel-plugin/
├── .plugin/plugin.json # Plugin manifest
├── vercel.md # Ecosystem graph + conventions (injected via SessionStart hook)
├── skills/ # 32 skills
│ ├── ai-sdk/ # Upstream-synced skill example:
│ │ ├── overlay.yaml # Plugin injection metadata
│ │ ├── upstream/ # Pure upstream content
│ │ │ ├── SKILL.md
│ │ │ └── references/
│ │ ├── SKILL.md # Build output (overlay + upstream)
│ │ └── references/ # Copied from upstream at build time
│ ├── ai-elements/ # Plugin-only skill example:
│ │ └── SKILL.md # Entirely ours
│ └── ...
├── agents/ # 3 specialist agents
├── commands/ # 5 slash commands
├── scripts/
│ ├── build-skills.ts # Rules engine: overlay + upstream → SKILL.md
│ ├── build-manifest.ts # Generates skill-manifest.json from frontmatter
│ └── build-from-skills.ts # Resolves {{include:skill:...}} in templates
└── hooks/ # SessionStart injection, repo profiler, skill injection, deprecation guard
└── src/ # TypeScript source (compiled to .mjs via tsup)
bun run build # Runs all 4 stages in order
bun run build:skills # Stage 1: Merge overlay + upstream → SKILL.md
bun run build:hooks # Stage 2: Compile hook TypeScript → .mjs
bun run build:manifest # Stage 3: Generate skill-manifest.json
bun run build:from-skills # Stage 4: Resolve template includes
vc curl, local OIDC tokens, Trusted Sources)If something doesn't work right, a skill gives bad advice, or injection doesn't fire when it should — file an issue on GitHub. Include:
VERCEL_PLUGIN_LOG_LEVEL=debug.claude/
.claude-plugin/
marketplace.json
plugin.json
settings.json
skills/
benchmark-agents/
prompts.md
SKILL.md
benchmark-e2e/
SKILL.md
benchmark-sandbox/
logger.ts
run-eval.ts
sandbox-analyze.ts
sandbox-runner.ts
SKILL.md
spike/
create-snapshot.ts
interactive-proof.ts
provision.ts
types.ts
benchmark-testing/
SKILL.md
plugin-audit/
references/
log-format.md
scripts/
batch-match.mjs
SKILL.md
release/
SKILL.md
vercel-plugin-eval/
SKILL.md
.cursor-plugin/
plugin.json
.github/
workflows/
ci.yml
.gitignore
.kimi-plugin/
plugin.json
.mcp.json
.plugin/
plugin.json
agents/
ai-architect.md
ai-architect.md.tmpl
deployment-expert.md
deployment-expert.md.tmpl
performance-optimizer.md
performance-optimizer.md.tmpl
assets/
vercel.svg
bun.lock
CLAUDE.md
commands/
_conventions.md
bootstrap.md
bootstrap.md.tmpl
deploy.md
deploy.md.tmpl
env.md
env.md.tmpl
status.md
status.md.tmpl
generated/
build-from-skills.manifest.json
skill-catalog.md
skill-manifest.json
hooks/
compat.mjs
compat.test.ts
hook-env.mjs
hooks.json
inject-claude-md.mjs
lexical-index.mjs
lexical-index.test.ts
logger.mjs
patterns.mjs
platform-hook-compat.test.ts
pretooluse-skill-inject.mjs
prompt-analysis.mjs
prompt-patterns.mjs
session-end-cleanup.mjs
session-hooks-platform-compat.test.ts
session-start-activation.mjs
session-start-profiler-platform.test.ts
session-start-profiler.mjs
session-start-seen-skills.mjs
setup-telemetry.mjs
shared-contractions.mjs
skill-map-frontmatter.mjs
skill-map-frontmatter.test.ts
src/
compat.mts
hook-env.mts
inject-claude-md.mts
lexical-index.mts
logger.mts
patterns.mts
pretooluse-skill-inject.mts
prompt-analysis.mts
prompt-patterns.mts
session-end-cleanup.mts
session-start-activation.mts
session-start-profiler.mts
session-start-seen-skills.mts
setup-telemetry.mts
shared-contractions.mts
skill-map-frontmatter.mts
stemmer.mts
telemetry.mts
unified-ranker.mts
user-prompt-submit-skill-inject.mts
vercel-config.mts
vercel-context.mts
stemmer.mjs
telemetry.mjs
tsconfig.json
tsup.config.ts
unified-ranker.mjs
user-prompt-submit-skill-inject.mjs
user-prompt-submit-skill-inject.test.ts
vercel-config.mjs
vercel-context.mjs
LICENSE
package.json
README.md
scripts/
audit-retrieval-metadata.ts
benchmark-analyze.ts
benchmark-e2e.ts
benchmark-report.ts
benchmark-runner.ts
benchmark-scenarios.ts
benchmark-verify.ts
build-from-skills.ts
build-manifest.ts
build-skills.ts
cli-reference.ts
coverage-baseline.ts
explain.ts
generate-catalog.ts
generate-doc-inventories.ts
prompt-signals-explain.ts
validate.ts
verify-docs.ts
skills/
access-protected-vercel-deployment/
SKILL.md
ai-gateway/
SKILL.md
ai-sdk/
overlay.yaml
references/
ai-gateway.md
common-errors.md
devtools.md
type-safe-agents.md
SKILL.md
upstream/
references/
ai-gateway.md
common-errors.md
devtools.md
type-safe-agents.md
SKILL.md
auth/
SKILL.md
bootstrap/
SKILL.md
cdn-caching/
SKILL.md
chat-sdk/
overlay.yaml
SKILL.md
upstream/
SKILL.md
deployments-cicd/
SKILL.md
env-vars/
SKILL.md
eve/
overlay.yaml
SKILL.md
upstream/
SKILL.md
knowledge-update/
SKILL.md
marketplace/
SKILL.md
microfrontends/
references/
configuration.md
local-development.md
managing-microfrontends.md
path-routing.md
security.md
troubleshooting.md
SKILL.md
next-cache-components/
overlay.yaml
SKILL.md
upstream/
SKILL.md
next-forge/
overlay.yaml
references/
architecture.md
customization.md
packages.md
setup.md
SKILL.md
upstream/
references/
architecture.md
customization.md
packages.md
setup.md
SKILL.md
next-upgrade/
overlay.yaml
SKILL.md
upstream/
SKILL.md
nextjs/
overlay.yaml
references/
app-router-files.md
async-patterns.md
bundling.md
data-patterns.md
debug-tricks.md
directives.md
error-handling.md
file-conventions.md
font.md
functions.md
hydration-error.md
image.md
metadata.md
parallel-routes.md
route-handlers.md
rsc-boundaries.md
runtime-selection.md
scripts.md
self-hosting.md
suspense-boundaries.md
SKILL.md
upstream/
references/
app-router-files.md
async-patterns.md
bundling.md
data-patterns.md
debug-tricks.md
directives.md
error-handling.md
file-conventions.md
font.md
functions.md
hydration-error.md
image.md
metadata.md
parallel-routes.md
route-handlers.md
rsc-boundaries.md
runtime-selection.md
scripts.md
self-hosting.md
suspense-boundaries.md
SKILL.md
react-best-practices/
AGENTS.md
overlay.yaml
rules/
_sections.md
_template.md
advanced-event-handler-refs.md
advanced-init-once.md
advanced-use-latest.md
async-api-routes.md
async-defer-await.md
async-dependencies.md
async-parallel.md
async-suspense-boundaries.md
bundle-barrel-imports.md
bundle-conditional.md
bundle-defer-third-party.md
bundle-dynamic-imports.md
bundle-preload.md
client-event-listeners.md
client-localstorage-schema.md
client-passive-event-listeners.md
client-swr-dedup.md
js-batch-dom-css.md
js-cache-function-results.md
js-cache-property-access.md
js-cache-storage.md
js-combine-iterations.md
js-early-exit.md
js-flatmap-filter.md
js-hoist-regexp.md
js-index-maps.md
js-length-check-first.md
js-min-max-loop.md
js-set-map-lookups.md
js-tosorted-immutable.md
rendering-activity.md
rendering-animate-svg-wrapper.md
rendering-conditional-render.md
rendering-content-visibility.md
rendering-hoist-jsx.md
rendering-hydration-no-flicker.md
rendering-hydration-suppress-warning.md
rendering-resource-hints.md
rendering-script-defer-async.md
rendering-svg-precision.md
rendering-usetransition-loading.md
rerender-defer-reads.md
rerender-dependencies.md
rerender-derived-state-no-effect.md
rerender-derived-state.md
rerender-functional-setstate.md
rerender-lazy-state-init.md
rerender-memo-with-default-value.md
rerender-memo.md
rerender-move-effect-to-event.md
rerender-no-inline-components.md
rerender-simple-expression-in-memo.md
rerender-split-combined-hooks.md
rerender-transitions.md
rerender-use-deferred-value.md
rerender-use-ref-transient-values.md
server-after-nonblocking.md
server-auth-actions.md
server-cache-lru.md
server-cache-react.md
server-dedup-props.md
server-hoist-static-io.md
server-parallel-fetching.md
server-serialization.md
SKILL.md
upstream/
AGENTS.md
rules/
_sections.md
_template.md
advanced-event-handler-refs.md
advanced-init-once.md
advanced-use-latest.md
async-api-routes.md
async-defer-await.md
async-dependencies.md
async-parallel.md
async-suspense-boundaries.md
bundle-barrel-imports.md
bundle-conditional.md
bundle-defer-third-party.md
bundle-dynamic-imports.md
bundle-preload.md
client-event-listeners.md
client-localstorage-schema.md
client-passive-event-listeners.md
client-swr-dedup.md
js-batch-dom-css.md
js-cache-function-results.md
js-cache-property-access.md
js-cache-storage.md
js-combine-iterations.md
js-early-exit.md
js-flatmap-filter.md
js-hoist-regexp.md
js-index-maps.md
js-length-check-first.md
js-min-max-loop.md
js-set-map-lookups.md
js-tosorted-immutable.md
rendering-activity.md
rendering-animate-svg-wrapper.md
rendering-conditional-render.md
rendering-content-visibility.md
rendering-hoist-jsx.md
rendering-hydration-no-flicker.md
rendering-hydration-suppress-warning.md
rendering-resource-hints.md
rendering-script-defer-async.md
rendering-svg-precision.md
rendering-usetransition-loading.md
rerender-defer-reads.md
rerender-dependencies.md
rerender-derived-state-no-effect.md
rerender-derived-state.md
rerender-functional-setstate.md
rerender-lazy-state-init.md
rerender-memo-with-default-value.md
rerender-memo.md
rerender-move-effect-to-event.md
rerender-no-inline-components.md
... 154 moreThe CLI for the open agent skills ecosystem. Supports OpenCode, Claude Code, Codex, Cursor, and 72 more.
Browser automation CLI for AI agents. Fast native Rust CLI.
Local drop-in replacement services for CI and no-network sandboxes. Fully stateful, production-fidelity API emulation. Not mocks.
FAQ
vercel is a Claude Code plugin with 50 hand-picked skills for cloud & infrastructure work, indexed on Flowy. Install it with the command on its page. It includes benchmark-agents, benchmark-e2e, benchmark-sandbox. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.