Vercel Skills and skills.sh for AI Coding Agents
September 24, 2026 Avishka Devinda
September 24, 2026 Avishka Devinda
An AI coding agent becomes much more useful when it knows how I want a task performed, not only what the final result should look like.
That is the idea behind agent Skills.
A Skill is a reusable set of instructions for a specific workflow.
Instead of pasting the same long procedure into every prompt, I can install it once and let the agent load it when the task is relevant.
I think about them like this:
AGENTS.md
↓
Rules that should always be available
Skill
↓
Detailed workflow for a specific task
For example, AGENTS.md might say:
Always verify UI changes in a browser.
A Skill can explain exactly how:
Start the dev server
Inspect compilation errors
Open the route
Check browser console
Interact with the UI
Capture failures
Fix the code
Repeat
The first is a rule.
The second is a procedure.
Vercel introduced skills, a CLI for installing and managing agent skill packages, together with skills.sh, a directory for discovering them.
The basic command is:
npx skills add <package>
For Next.js workflows, the current skills live with the Next.js repository.
I can install them with:
npx skills add vercel/next.js
Or install a specific skill:
npx skills add vercel/next.js --skill next-dev-loop
I like this model because workflows can evolve independently from my application code.
The older Next.js skills lived in a separate vercel-labs/next-skills repository.
They later moved into the main Next.js repository.
That solves an important problem: version drift.
If a skill describes framework behavior, I want that guidance to evolve with the framework.
A workflow written for an older Next.js version can become dangerous if APIs, caching behavior, or build rules change.
Keeping the skills closer to Next.js makes it easier for the instructions to stay aligned with the framework.
One workflow I find especially interesting is next-dev-loop.
Its goal is not to generate a component.
Its goal is to give the agent a repeatable development loop.
Conceptually:
Inspect
↓
Edit
↓
Compile
↓
Open in browser
↓
Check console / network / UI
↓
Fix
↓
Repeat
This is much closer to how a real developer works than:
write code
↓
assume it works
That verification loop is where AI development becomes much more reliable.
A useful Skill should not be a long article about a technology.
It should tell the agent what to do.
For example:
---
name: verify-contact-form
description: Verify the contact form after API or UI changes.
---
Use this skill when editing the contact form or mail route.
1. Start the development server.
2. Open /talk.
3. Submit valid data.
4. Verify the success state.
5. Submit invalid data.
6. Verify validation errors.
7. Check server and browser logs.
8. Confirm no secret is exposed to the client.
That is much more valuable to an agent than a generic explanation of forms.
Not every workflow needs to be published.
A project can have its own internal skills.
For example:
.agents/
skills/
deploy-preview/
SKILL.md
lighthouse-check/
SKILL.md
contact-form-test/
SKILL.md
These can encode knowledge that only matters to one repository.
Public skills make more sense for reusable workflows that apply across many projects.
Skills are useful because they are focused.
If I create one giant "build my whole application" skill, I am back to the same problem as a giant prompt.
I prefer skills around repeatable tasks:
Small workflows compose better.
AI coding is becoming less about one prompt and more about tooling around the agent.
The model is important.
But so are:
Those systems reduce the amount of context I need to manually explain and increase the chance that the result is actually correct.
I see AGENTS.md and Skills as two layers of the same idea.
AGENTS.md tells the agent how to behave inside the repository.
Skills tell it how to perform specialized work.
With skills.sh and the skills CLI, those workflows can be discovered and installed instead of copied between prompts.
That makes AI-assisted development feel more like a real engineering environment and less like a chat window that happens to generate code.