Official agent skill

React Vendoring

by vercel in vercel/next.js

React vendoring and react-server layer boundaries. An agent skill from vercel/next.js.

OfficialMITAuto-check passedDevelopment

Install React Vendoring

skills CLI
$ npx skills add vercel/next.js --skill react-vendoring -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install vercel/next.js react-vendoring --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/vercel/next.js.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/react-vendoring .claude/skills/react-vendoring && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
react-vendoring
GitHub stars
143k
Token cost
~987 tokens
SKILL.md length
327 words
Files
1
Skills in repo
27
Repo updated
First seen
Licence
MIT

At a glance

React vendoring and react-server layer boundaries. An agent skill from vercel/next.js.

  • Works in 3 steps: Add type declarations to… → Export the API from entry-base.ts behind… → Access it via ComponentMod in other files.
  • Editing entry-base.ts
  • SKILL.md covers App Router Vendoring, entry-base.ts Boundary, Type Declarations and Adding Node.js-Only React APIs, plus 3 more sections
  • Calls pnpm

What it does

React Vendoring is an agent skill from vercel/next.js, published by the product's own GitHub organization. React vendoring and react-server layer boundaries. Use when editing entry-base.ts, $$compiled.internal.d.ts, compiled/react packages, or taskfile.js copyvendorreact. Covers the entry-base.ts boundary (all react-server-dom-webpack/ imports must go through it), vendored React channels, type declarations, Turbopack remap to react-server-dom-turbopack, ComponentMod access patterns, and ESLint suppression for guarded requires.

Its SKILL.md is about 990 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Linting and formatting. It works with React, Turborepo, webpack and ESLint. The licence is MIT.

When your agent uses it

  • Editing entry-base.ts
  • $$compiled.internal.d.ts
  • Compiled/react packages
  • Taskfile.js copyvendorreact

Example prompts

  • “/react-vendoring”

Requirements

  • Node.js

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Add type declarations to $$compiled.internal.d.ts.
  2. Export the API from entry-base.ts behind a process.env guard.
  3. Access it via ComponentMod in other files.

What it can do on your machine

Read from SKILL.md and the folder at commit a32ddfd. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

React Vendoring loads about 987 tokens when it runs. Until then it costs about 111 tokens; SKILL.md has 327 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~111
When it runs · the whole SKILL.md, loaded when a task matches
~987

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from vercel/next.js at commit a32ddfd, republished under its MIT licence (© vercel). 327 words, ~987 tokens.

Download SKILL.mdSave it as .claude/skills/react-vendoring/SKILL.md (or your agent's skills folder).
name
react-vendoring
description
React vendoring and react-server layer boundaries. Use when editing entry-base.ts, $$compiled.internal.d.ts, compiled/react* packages, or taskfile.js copy_vendor_react. Covers the entry-base.ts boundary (all react-server-dom-webpack/* imports must go through it), vendored React channels, type declarations, Turbopack remap to react-server-dom-turbopack, ComponentMod access patterns, and ESLint suppression for guarded requires.
metadata.internal
true

React Vendoring

Use this skill for changes touching vendored React, react-server-dom-webpack/*, or react-server layer boundaries.

App Router Vendoring

React is NOT resolved from node_modules for App Router. It's vendored into packages/next/src/compiled/ during pnpm build (task: copy_vendor_react() in taskfile.js). Pages Router resolves React from node_modules normally.

  • Two channels: stable (compiled/react/) and experimental (compiled/react-experimental/). The runtime bundle webpack config aliases to the correct channel via makeAppAliases({ experimental }).

entry-base.ts Boundary

Only entry-base.ts is compiled in rspack's (react-server) layer. ALL imports from react-server-dom-webpack/* (Flight server/static APIs) must go through entry-base.ts. Other files like stream-ops.node.ts or app-render.tsx must access Flight APIs via the ComponentMod parameter (which is the entry-base.ts module exposed through the app-page.ts build template).

Direct imports from react-server-dom-webpack/server.node or react-server-dom-webpack/static in files outside entry-base.ts will fail at runtime with "The react-server condition must be enabled". Dev mode may mask this error, but production workers fail immediately.

Type Declarations

packages/next/types/$$compiled.internal.d.ts contains declare module blocks for vendored React packages. When adding new APIs (e.g. renderToPipeableStream, prerenderToNodeStream), you must add type declarations here. The bare specifier types (e.g. declare module 'react-server-dom-webpack/server') are what source code in src/ imports against.

Adding Node.js-Only React APIs

These exist in .node builds but not in the type definitions. Steps:

  1. Add type declarations to $$compiled.internal.d.ts.
  2. Export the API from entry-base.ts behind a process.env guard.
  3. Access it via ComponentMod in other files.
typescript
// In entry-base.ts (react-server layer) only:
/* eslint-disable import/no-extraneous-dependencies */
export let renderToPipeableStream: ... | undefined
if (process.env.__NEXT_USE_NODE_STREAMS) {
  renderToPipeableStream = (
    require('react-server-dom-webpack/server.node') as typeof import('react-server-dom-webpack/server.node')
  ).renderToPipeableStream
} else {
  renderToPipeableStream = undefined
}
/* eslint-enable import/no-extraneous-dependencies */

// In other files, access via ComponentMod:
ComponentMod.renderToPipeableStream!(payload, clientModules, opts)

ESLint Practical Rule

For guarded runtime require() blocks that need import/no-extraneous-dependencies suppression, prefer scoped block disable/enable. If using eslint-disable-next-line, the comment must be on the line immediately before the require() call, NOT before the const declaration. When the const and require() are on different lines, this is error-prone.

Turbopack Remap

react-server-dom-webpack/* is silently remapped to react-server-dom-turbopack/* by Turbopack's import map. Code says "webpack" everywhere, but Turbopack gets its own bindings at runtime. This affects debugging: stack traces and error messages will reference the turbopack variant.

  • $flags - flag wiring (config/schema/define-env/runtime env)
  • $dce-edge - DCE-safe require patterns and edge constraints
  • $runtime-debug - reproduction and verification workflow

© vercel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/react-vendoring of vercel/next.js.

Open the folder on GitHubat commit a32ddfd

Compare with similar skills

React Vendoring next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

React Vendoring compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
React Vendoring this skillvercel/next.js143k—~987Automated safety check: PassMIT
Ultraciteagustinusnathaniel/nextarter-tailwind1252 repos~1.2kAutomated safety check: PassMIT
React Render Types SetupHorusGoul/eslint-plugin-react-render-types111—~1.8kAutomated safety check: PassMIT
Tsconfigsredis/RedisInsight8.9k—~1.3kAutomated safety check: PassCustom licence
Typescript Tooling MigrationArize-ai/phoenix12k—~2.8kAutomated safety check: PassApache-2.0
Nextjs16 Skillselophanto/EloPhanto106—~1.4kAutomated safety check: PassCustom licence

Similar skills

  • Ultracite

    agustinusnathaniel/nextarter-tailwind

    Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects.

    125 GitHub starsUsed in 2 repos~1.2k tokens
    DevelopmentAuto-check passed
  • React Render Types Setup

    HorusGoul/eslint-plugin-react-render-types

    Install and configure eslint-plugin-react-render-types in a TypeScript React project.

    111 GitHub stars~1.8k tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Tsconfigs

    redis/RedisInsight

    Official

    Locate and modify TypeScript configuration in RedisInsight. An agent skill from redis/RedisInsight.

    8.9k GitHub stars~1.3k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Migrate or upgrade TypeScript tooling in the Phoenix monorepo.

    12k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed
  • Nextjs16 Skills

    elophanto/EloPhanto

    Key facts and links for Next.js 16. An agent skill from elophanto/EloPhanto.

    106 GitHub stars~1.4k tokensUpdated 7 days ago
    DevelopmentAuto-check passed
  • Monorepo

    avibebuilder/claude-prime

    MUST use for ANY query mentioning packages, monorepo, workspace, catalog, turbo, turborepo, or pnpm in a multi-package context.

    120 GitHub stars~1.2k tokensUpdated 4 mo ago
    DevelopmentAuto-check passed

More from vercel/next.js

All 27 skills in this repo
  • Gh Stack

    vercel/next.js

    Official

    Manages stacked PRs and splits multi-part work into reviewable branches with gh-stack.

    143k GitHub starsUsed in 7 repos~2.3k tokens
    Auto-check passed
  • Sandbox Bench

    vercel/next.js

    Official

    Benchmark React or Next.js changes on Vercel Sandbox VMs with paired A/B statistics: react PR/commit vs base, or Next.js PR/commit vs base, measured end-to-end through the bench/render-pipeline app…

    143k GitHub stars~4.1k tokensUpdated today
    Auto-check passed
  • Next Dev Loop

    vercel/next.js

    Official

    Verify Next.js runtime behavior after editing app code. An agent skill from vercel/next.js.

    143k GitHub starsUsed in 9 repos~2.3k tokens
    Auto-check passed
  • Docs Diagrams

    vercel/next.js

    Official

    Draw diagrams for the Next.js docs in the style of the ones already published there: the light/dark PNGs an mdx references with <Image srcLight="/docs/light/<name.png" srcDark="/docs/dark/<name.png".

    143k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Official

    Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces.

    143k GitHub starsUsed in 6 repos~8.3k tokens
    Auto-check passed
  • React Sync

    vercel/next.js

    Official

    Build local React changes in the bundle variants consumed by Next.js, sync them into a local Next.js checkout, and test the resulting integration.

    143k GitHub stars~486 tokensUpdated today
    Auto-check passed

Categories

Questions about React Vendoring

What does React Vendoring do?

React vendoring and react-server layer boundaries. An agent skill from vercel/next.js. js, published by the product's own GitHub organization. React vendoring and react-server layer boundaries.

When should I use React Vendoring?

React Vendoring fits situations like: editing entry-base.ts; $$compiled.internal.d.ts; compiled/react packages; taskfile.js copyvendorreact.

How do I install React Vendoring in Claude Code?

Run `npx skills add vercel/next.js --skill react-vendoring -a claude-code`. Or copy the skill folder (.agents/skills/react-vendoring in vercel/next.js) into .claude/skills/react-vendoring in your project. Claude Code loads it when a task matches its description.

How do I install React Vendoring in Codex?

Run `npx skills add vercel/next.js --skill react-vendoring -a codex`. Or copy the skill folder (.agents/skills/react-vendoring in vercel/next.js) into .agents/skills/react-vendoring in your project. Codex loads it when a task matches its description.

Can I use React Vendoring in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add vercel/next.js --skill react-vendoring -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/react-vendoring, .gemini/skills/react-vendoring, .github/skills/react-vendoring and .opencode/skills/react-vendoring in your project.

What does React Vendoring need to run?

Going by SKILL.md and its folder, React Vendoring needs the command-line tools its instructions call (pnpm). Our summary lists: Node.js.

Does React Vendoring access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is React Vendoring safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does React Vendoring use?

React Vendoring is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does React Vendoring use?

About 987 tokens (SKILL.md is roughly 3.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to React Vendoring?

Skills that share tags, products or a category with React Vendoring: Ultracite (agustinusnathaniel/nextarter-tailwind, 125 stars), React Render Types Setup (HorusGoul/eslint-plugin-react-render-types, 111 stars), Tsconfigs (redis/RedisInsight, 8.9k stars) and Typescript Tooling Migration (Arize-ai/phoenix, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains React Vendoring?

vercel (a GitHub organization, an official publisher) maintains it in vercel/next.js, which has 143,241 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 8, 2026.

Source: vercel/next.js on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.