skills/vercel-creating-using-skills/SKILL.md
How to create, structure, install, and publish agent skills compatible with the Vercel skills ecosystem and skills.sh. Use when the user wants to build a new skill, structure a SKILL.md file, add install commands to a website or README, or publish skills for distribution across 40+ AI agents.
npx skillsauth add AgentPMT/agent-skills how-to-use-vercel-skillsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Agent skills are folders of instructions, scripts, and resources that AI agents can discover and use. The format is an open standard supported by 40+ agents including Claude Code, Cursor, GitHub Copilot, Windsurf, Cline, Gemini CLI, OpenAI Codex, Roo Code, and many others.
A skill is a directory containing at minimum a SKILL.md file. The directory name must exactly match the name field in the frontmatter.
my-skill/
SKILL.md
my-skill/
SKILL.md # Required -- agent instructions
scripts/ # Optional -- executable helpers (bash, python, js)
references/ # Optional -- detailed docs loaded on demand
assets/ # Optional -- templates, schemas, static files
Every SKILL.md must start with YAML frontmatter followed by markdown content.
---
name: my-skill-name
description: What this skill does and when to use it. Include keywords that help agents match tasks to this skill.
---
| Field | Rules |
|-------|-------|
| name | 1-64 characters. Lowercase letters, numbers, and hyphens only. Must not start or end with a hyphen. No consecutive hyphens (--). Must match the parent directory name. |
| description | 1-1024 characters. Describe what the skill does AND when to use it. Include specific keywords that help agents identify relevant tasks. |
| Field | Purpose |
|-------|---------|
| license | License name or reference to a bundled LICENSE file. |
| compatibility | Max 500 characters. Environment requirements (e.g., "Requires git, docker, jq"). Most skills do not need this. |
| metadata | Arbitrary key-value pairs. Common keys: author, version. |
| allowed-tools | Space-delimited list of pre-approved tools. Experimental, support varies by agent. |
---
name: pdf-processing
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF documents or when the user mentions PDFs, forms, or document extraction.
license: MIT
compatibility: Requires Python 3.10+
metadata:
author: example-org
version: "2.1"
allowed-tools: Bash(python:*) Read
---
Valid:
pdf-processingdata-analysiscode-reviewmy-skill-v2Invalid:
PDF-Processing (uppercase not allowed)-pdf (cannot start with hyphen)pdf- (cannot end with hyphen)pdf--processing (consecutive hyphens not allowed)my skill (spaces not allowed)The description is a routing rule, not a title. Agents see only the name and description at startup to decide whether to load the full skill.
Bad:
description: Helps with PDFs.
Good:
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF documents or when the user mentions PDFs, forms, or document extraction.
The markdown body after frontmatter contains the actual instructions. There are no format restrictions, but recommended sections include:
Keep the main SKILL.md under 500 lines. Move detailed reference material to files in references/.
Skills load in stages to minimize context usage:
name and description are loaded at startup for all installed skills.scripts/, references/, and assets/ are loaded only when required.npx skills add owner/repo
npx skills add owner/repo --skill skill-name
npx skills add owner/repo --all -y
npx skills add owner/repo --agent claude-code
npx skills add owner/repo --agent cursor
npx skills add owner/repo --global
For a repo at github.com/myorg/my-agent-skills with a skill called my-workflow:
## Install
Install all skills:
npx skills add myorg/my-agent-skills
Install just the workflow skill:
npx skills add myorg/my-agent-skills --skill my-workflow
| Command | Purpose |
|---------|---------|
| npx skills add <source> | Install skills from a GitHub repo, URL, or local path |
| npx skills list | Show installed skills (alias: ls) |
| npx skills find [query] | Search for skills interactively or by keyword |
| npx skills check | Check for available updates |
| npx skills update | Upgrade all installed skills |
| npx skills init [name] | Generate a new SKILL.md template |
| npx skills remove [skills] | Uninstall skills |
owner/repohttps://github.com/owner/repohttps://github.com/owner/repo/tree/main/skills/skill-name| Flag | Purpose |
|------|---------|
| -s, --skill | Install a specific skill by name, or '*' for all |
| -a, --agent | Target a specific agent (e.g., claude-code, cursor) |
| -g, --global | Install to user home directory instead of project |
| --copy | Copy files instead of creating symlinks |
| -y, --yes | Skip confirmation prompts |
| --all | Install all skills to all agents non-interactively |
| -l, --list | Preview available skills without installing |
The CLI automatically places skills in the correct location for each agent:
| Agent | Project path | Global path |
|-------|-------------|-------------|
| Claude Code | .claude/skills/ | ~/.claude/skills/ |
| Cursor | .agents/skills/ | ~/.cursor/skills/ |
| GitHub Copilot | .agents/skills/ | varies |
| Windsurf | .agents/skills/ | varies |
40+ agents are supported. The CLI handles path resolution automatically.
my-repo/
SKILL.md
my-repo/
skills/
skill-one/
SKILL.md
skill-two/
SKILL.md
scripts/
helper.sh
references/
detailed-guide.md
The CLI searches these locations automatically:
skills/ directory and its subdirectoriesskills/.curated/, skills/.experimental/, skills/.system/.claude/skills/, .agents/skills/, etc.)Skills can be nested in subdirectories (e.g., skills/category/my-skill/SKILL.md) and the CLI will still discover them.
Skills appear on skills.sh automatically when people install them via the CLI. There is no separate publish step. To get your skill listed:
npx skills add owner/repoUse the reference library to validate your skill before publishing:
npx skills-ref validate ./my-skill
This checks that frontmatter is valid and naming conventions are followed.
name and description in the frontmattername exactly matches the directory namereferences/ for detailed docsscripts/ for any executable helpersnpx skills add . locallynpx skills add owner/repotools
Plaud Transcripts Corrected With Your Own Terminology Glossary: Fixes the words your transcription keeps getting wrong, by giving the pipeline your vocabulary instead of hoping a bigger model guesses right. Every speech model mangles terms it has never seen: cell line and reagent names, drug and device names, case and matter numbers, part numbers, local spelling and number conventions, team and client names. Swapping to a different model does not fix this, because none of them have your terms e.
tools
Plaud Spoken Field Notes to a Structured Sheet: Turns a spoken site visit into a filled-in spreadsheet row, so measurements and specs never get typed up twice. Built for anyone who dictates structured details on the job rather than writing them down: window and flooring measurements, equipment specs, inspection findings, punch lists, service call notes. Say the details out loud in the same order each visit (client, room, width, drop, colour, notes) and the workflow reads each new Plaud recordin.
development
Plaud Recordings to Google Calendar Events: Puts the meetings you agree to out loud straight onto your Google Calendar, without Zapier in the middle. Plaud's own app has no Calendar integration, so this closes that gap directly: each new recording is scanned, the transcript pulled, and any genuine scheduling commitment spoken in it ("let's do Tuesday at 3", "I'll come back out Thursday morning") is extracted with the relative date resolved against the recording's own date and your timezone. Eac.
development
One Plaud Recording, Several Differently Formatted Summaries: Gets you past the one-template-per-recording ceiling. The Plaud app applies a single AutoFlow template to a recording, so if you want a short recap for yourself, a decisions-only version for the people who missed it, and a clean action list for your task manager, you are re-running or rewriting by hand. This workflow reads the transcript once and produces every format you have defined in a single pass: you list the output formats you.