Agent Skills: SKILL.md, progressive disclosure, API use
An Agent Skill is a folder with a SKILL.md file (plus optional scripts and reference files) that gives Claude instructions for a task. Only each Skill's name and description load at startup; the full instructions load when the Skill is triggered, so you can attach many Skills without filling the context window.
SKILL.md and progressive disclosure
Every Skill needs a SKILL.md with YAML frontmatter containing name and description, the only two required fields. name is at most 64 characters of lowercase letters, numbers and hyphens, and cannot contain "anthropic" or "claude". description is non-empty, at most 1024 characters, and should say what the Skill does and when to use it, because Claude matches requests against it.
Skills load in three levels. Level 1, the metadata, is always loaded at about 100 tokens per Skill. Level 2, the SKILL.md body, loads when the Skill is triggered and is under 5k tokens. Level 3, bundled files, costs nothing until read; scripts run through bash and only their output enters context.
Using Skills through the API
On the Claude API you list Skills by skill_id in the container parameter, and you must also include the code execution tool, because Skills run in its container. Pre-built Skills use the ids pptx, xlsx, docx and pdf. Custom Skills are uploaded through the /v1/skills endpoints.
API Skills run with no network access and no runtime package installation, so a Skill that calls an external service or installs a package will fail there.
Where Skills live
Custom Skills do not sync across surfaces. Skills uploaded through the API are workspace-wide. Skills in claude.ai are individual to each user and cannot be centrally managed by admins. In Claude Code, Skills are files in ~/.claude/skills/ (personal) or .claude/skills/ (project). Pre-built document Skills are not available in Claude Code. Use Skills only from trusted sources, those you wrote or got from Anthropic, since a malicious Skill can direct Claude to run code or invoke tools in ways its description does not mention.
Where the exam catches people
Attaching several Skills does not load all their instructions up front: only name and description load until a Skill is triggered.
version and entrypoint are not required frontmatter fields; only name and description are.
A Skill uploaded in claude.ai is not available to the API; each surface needs its own upload.
Skills on the API cannot reach the internet or install packages at runtime.