Why use Skills
Skills are reusable, filesystem-based resources that provide Claude with domain-specific expertise: workflows, context, and best practices that transform general-purpose agents into specialists. Unlike prompts (conversation-level instructions for one-off tasks), Skills load on-demand and eliminate the need to repeatedly provide the same guidance across multiple conversations. Key benefits:- Specialize Claude: Tailor capabilities for domain-specific tasks
- Reduce repetition: Create once, use automatically
- Compose capabilities: Combine Skills to build complex workflows
For a deep dive into the architecture and real-world applications of Agent Skills, read our engineering blog: Equipping agents for the real world with Agent Skills.
Using Skills
Anthropic provides pre-built Agent Skills for common document tasks (PowerPoint, Excel, Word, PDF), and you can create your own custom Skills. Both work the same way. Claude automatically uses them when relevant to your request. Pre-built Agent Skills are available to all users on claude.ai and via the Claude API. See the Available Skills section below for the complete list. Custom Skills let you package domain expertise and organizational knowledge. They’re available across Claude’s products: create them in Claude Code, upload them via the API, or add them in claude.ai settings.Get started:
- For pre-built Agent Skills: See the quickstart tutorial to start using PowerPoint, Excel, Word, and PDF skills in the API
- For custom Skills: See the Agent Skills Cookbook to learn how to create your own Skills
How Skills work
Skills leverage Claude’s VM environment to provide capabilities beyond what’s possible with prompts alone. Claude operates in a virtual machine with filesystem access, allowing Skills to exist as directories containing instructions, executable code, and reference materials, organized like an onboarding guide you’d create for a new team member. This filesystem-based architecture enables progressive disclosure: Claude loads information in stages as needed, rather than consuming context upfront.Three types of Skill content, three levels of loading
Skills can contain three types of content, each loaded at different times:Level 1: Metadata (always loaded)
Content type: Instructions. The Skill’s YAML frontmatter provides discovery information:Level 2: Instructions (loaded when triggered)
Content type: Instructions. The main body of SKILL.md contains procedural knowledge: workflows, best practices, and guidance:Level 3: Resources and code (loaded as needed)
Content types: Instructions, code, and resources. Skills can bundle additional materials:Level | When Loaded | Token Cost | Content |
---|---|---|---|
Level 1: Metadata | Always (at startup) | ~100 tokens per Skill | name and description from YAML frontmatter |
Level 2: Instructions | When Skill is triggered | Under 5k tokens | SKILL.md body with instructions and guidance |
Level 3+: Resources | As needed | Effectively unlimited | Bundled files executed via bash without loading contents into context |
The Skills architecture
Skills run in a code execution environment where Claude has filesystem access, bash commands, and code execution capabilities. Think of it like this: Skills exist as directories on a virtual machine, and Claude interacts with them using the same bash commands you’d use to navigate files on your computer.
validate_form.py
, the script’s code never loads into the context window. Only the script’s output (like “Validation passed” or specific error messages) consumes tokens. This makes scripts far more efficient than having Claude generate equivalent code on the fly.
No practical limit on bundled content: Because files don’t consume context until accessed, Skills can include comprehensive API documentation, large datasets, extensive examples, or any reference materials you need. There’s no context penalty for bundled content that isn’t used.
This filesystem-based model is what makes progressive disclosure work. Claude navigates your Skill like you’d reference specific sections of an onboarding guide, accessing exactly what each task requires.
Example: Loading a PDF processing skill
Here’s how Claude loads and uses a PDF processing skill:- Startup: System prompt includes:
PDF Processing - Extract text and tables from PDF files, fill forms, merge documents
- User request: “Extract the text from this PDF and summarize it”
- Claude invokes:
bash: read pdf-skill/SKILL.md
→ Instructions loaded into context - Claude determines: Form filling is not needed, so FORMS.md is not read
- Claude executes: Uses instructions from SKILL.md to complete the task

- Default state with system prompt and skill metadata pre-loaded
- Claude triggers the skill by reading SKILL.md via bash
- Claude optionally reads additional bundled files like FORMS.md as needed
- Claude proceeds with the task
Where Skills work
Skills are available across Claude’s agent products:Claude API
The Claude API supports both pre-built Agent Skills and custom Skills. Both work identically: specify the relevantskill_id
in the container
parameter along with the code execution tool.
Prerequisites: Using Skills via the API requires three beta headers:
code-execution-2025-08-25
- Skills run in the code execution containerskills-2025-10-02
- Enables Skills functionalityfiles-api-2025-04-14
- Required for uploading/downloading files to/from the container
skill_id
(e.g., pptx
, xlsx
), or create and upload your own via the Skills API (/v1/skills
endpoints). Custom Skills are shared organization-wide.
To learn more, see Use Skills with the Claude API.
Claude Code
Claude Code supports only Custom Skills. Custom Skills: Create Skills as directories with SKILL.md files. Claude discovers and uses them automatically. Custom Skills in Claude Code are filesystem-based and don’t require API uploads. To learn more, see Use Skills in Claude Code.Claude.ai
Claude.ai supports both pre-built Agent Skills and custom Skills. Pre-built Agent Skills: These Skills are already working behind the scenes when you create documents. Claude uses them without requiring any setup. Custom Skills: Upload your own Skills as zip files through Settings > Features. Available on Pro, Max, Team, and Enterprise plans with code execution enabled. Custom Skills are individual to each user; they are not shared organization-wide and cannot be centrally managed by admins. To learn more about using Skills in Claude.ai, see the following resources in the Claude Help Center:- What are Skills?
- Using Skills in Claude
- How to create custom Skills
- Tech Claude your way of working using Skills
Skill structure
Every Skill requires aSKILL.md
file with YAML frontmatter:
name
and description
These are the only two fields supported in YAML frontmatter.
Frontmatter limits:
name
: 64 characters maximumdescription
: 1024 characters maximum
description
should include both what the Skill does and when Claude should use it. For complete authoring guidance, see the best practices guide.
Security considerations
We strongly recommend using Skills only from trusted sources: those you created yourself or obtained from Anthropic. Skills provide Claude with new capabilities through instructions and code, and while this makes them powerful, it also means a malicious Skill can direct Claude to invoke tools or execute code in ways that don’t match the Skill’s stated purpose.If you must use a Skill from an untrusted or unknown source, exercise extreme caution and thoroughly audit it before use. Depending on what access Claude has when executing the Skill, malicious Skills could lead to data exfiltration, unauthorized system access, or other security risks.
- Audit thoroughly: Review all files bundled in the Skill: SKILL.md, scripts, images, and other resources. Look for unusual patterns like unexpected network calls, file access patterns, or operations that don’t match the Skill’s stated purpose
- External sources are risky: Skills that fetch data from external URLs pose particular risk, as fetched content may contain malicious instructions. Even trustworthy Skills can be compromised if their external dependencies change over time
- Tool misuse: Malicious Skills can invoke tools (file operations, bash commands, code execution) in harmful ways
- Data exposure: Skills with access to sensitive data could be designed to leak information to external systems
- Treat like installing software: Only use Skills from trusted sources. Be especially careful when integrating Skills into production systems with access to sensitive data or critical operations
Available Skills
Pre-built Agent Skills
The following pre-built Agent Skills are available for immediate use:- PowerPoint (pptx): Create presentations, edit slides, analyze presentation content
- Excel (xlsx): Create spreadsheets, analyze data, generate reports with charts
- Word (docx): Create documents, edit content, format text
- PDF (pdf): Generate formatted PDF documents and reports
Custom Skills examples
For complete examples of custom Skills, see the Skills cookbook.Limitations and constraints
Understanding these limitations helps you plan your Skills deployment effectively.Cross-surface availability
Custom Skills do not sync across surfaces. Skills uploaded to one surface are not automatically available on others:- Skills uploaded to Claude.ai must be separately uploaded to the API
- Skills uploaded via the API are not available on Claude.ai
- Claude Code Skills are filesystem-based and separate from both Claude.ai and API
Sharing scope
Skills have different sharing models depending on where you use them:- Claude.ai: Individual user only; each team member must upload separately
- Claude API: Workspace-wide; all workspace members can access uploaded Skills
- Claude Code: Personal (
~/.claude/skills/
) or project-based (.claude/skills/
)
Runtime environment constraints
Skills run in the code execution container with these limitations:- No network access: Skills cannot make external API calls or access the internet
- No runtime package installation: Only pre-installed packages are available. You cannot install new packages during execution.
- Pre-configured dependencies only: Check the code execution tool documentation for the list of available packages