Create, use, and manage Agent Skills for Claude. Use when working with Skills, creating custom capabilities, or understanding how Skills extend Claude's functionality. Covers Skill architecture, file structure, and best practices.
Scanned 6/3/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: agent-skills
description: Create, use, and manage Agent Skills for Claude. Use when working with Skills, creating custom capabilities, or understanding how Skills extend Claude's functionality. Covers Skill architecture, file structure, and best practices.
---
# Agent Skills
Agent Skills are modular capabilities that extend Claude's functionality. Each Skill packages instructions, metadata, and optional resources that Claude uses automatically when relevant.
## Quick Start
```yaml
# A basic skill structure
---
name: my-skill
description: Brief description of what this Skill does
---
# My Skill
## Instructions
Clear, step-by-step guidance for Claude to follow
## Examples
Concrete examples of using this Skill
```
## Why use Skills
Skills provide domain-specific expertise that transforms general-purpose agents into specialists. Unlike prompts, Skills load on-demand and eliminate repetitive guidance.
**Key benefits**:
- **Specialize Claude**: Tailor capabilities for specific domains
- **Reduce repetition**: Create once, use automatically
- **Compose capabilities**: Combine Skills to build complex workflows
## How Skills Work
Skills leverage Claude's VM environment with filesystem access. They exist as directories containing instructions, executable code, and reference materials.
### Three Levels of Loading
| Level | When Loaded | Token Cost | Content |
|-------|-------------|------------|---------|
| **Level 1: Metadata** | Always (startup) | ~100 tokens | `name` and `description` from YAML frontmatter |
| **Level 2: Instructions** | When triggered | Under 5k tokens | SKILL.md body with guidance |
| **Level 3+: Resources** | As needed | Unlimited | Bundled files executed via bash |
Progressive disclosure ensures only relevant content occupies the context window.
### Skill Directory Structure
```
my-skill/
├── SKILL.md # Main instructions
├── GUIDE.md # Additional guidance
├── REFERENCE.md # API reference
└── scripts/
└── helper.py # Utility scripts
```
**Instructions**: Additional markdown files with specialized guidance
**Code**: Executable scripts that Claude runs via bash
**Resources**: Reference materials like schemas, templates, examples
## Skill Structure
Every Skill requires a `SKILL.md` file with YAML frontmatter:
```yaml
---
name: your-skill-name
description: Brief description of what this Skill does and when to use it
---
# Your Skill Name
## Instructions
[Clear, step-by-step guidance]
## Examples
[Concrete examples]
```
### Field Requirements
**name**:
- Maximum 64 characters
- Lowercase letters, numbers, and hyphens only
- Cannot contain XML tags
- Cannot use reserved words: "anthropic", "claude"
**description**:
- Must be non-empty
- Maximum 1024 characters
- Cannot contain XML tags
- Should explain what the Skill does AND when to use it
## Creating Custom Skills
### For Claude Code
1. Create a directory in `.claude/skills/`
2. Add a `SKILL.md` file with YAML frontmatter
3. Optionally add supporting files (guides, scripts, resources)
4. Claude discovers and uses them automatically
```bash
.claude/skills/
├── my-skill/
│ ├── SKILL.md
│ └── scripts/
│ └── helper.sh
└── another-skill/
└── SKILL.md
```
### For Claude API
1. Create Skill as a directory with `SKILL.md`
2. Upload via Skills API (`/v1/skills` endpoints)
3. Reference `skill_id` in the `container` parameter
4. Requires beta headers:
- `code-execution-2025-08-25`
- `skills-2025-10-02`
- `files-api-2025-04-14`
### For Claude.ai
1. Create Skill as a directory with `SKILL.md`
2. Zip the skill directory
3. Upload through Settings > Features
4. Available on Pro, Max, Team, Enterprise plans
## Best Practices
### Writing Effective Skills
**Be specific about when to use**:
```yaml
description: Extract text from PDF files using pdfplumber. Use when user mentions PDFs, text extraction, or document processing.
```
**Include concrete examples**:
```markdown
## Examples
To extract text from a PDF:
```python
import pdfplumber
with pdfplumber.open("document.pdf") as pdf:
text = pdf.pages[0].extract_text()
```
**Organize progressively**:
- Quick start first
- Common workflows
- Advanced scenarios
- Reference materials
### Bundling Resources
**Use scripts for reliability**:
```bash
# Scripts execute without loading code into context
$ bash validate.sh
Validation passed
```
**Include reference materials**:
- API documentation
- Database schemas
- Code examples
- Templates
## Security Considerations
**Use Skills from trusted sources only**:
- **Audit thoroughly**: Review all files bundled in the Skill
- **External sources are risky**: Skills fetching external content pose risks
- **Tool misuse**: Malicious Skills can invoke tools in harmful ways
- **Data exposure**: Skills with sensitive data access could leak information
- **Treat like installing software**: Only use Skills from trusted sources
## Cross-Surface Availability
| Surface | Custom Skills | Pre-built Skills |
|---------|---------------|------------------|
| Claude API | Yes | Yes (pptx, xlsx, docx, pdf) |
| Claude Code | Yes (filesystem-based) | No |
| Claude.ai | Yes (uploaded) | Yes (pptx, xlsx, docx, pdf) |
**Custom Skills do not sync across surfaces** - manage separately for each.
### Runtime Environment
**Claude API**:
- No network access
- No runtime package installation
- Pre-configured dependencies only
**Claude Code**:
- Full network access
- Local package installation only
**Claude.ai**:
- Varying network access (depends on settings)
## Pre-built Agent Skills
Available immediately:
- **PowerPoint (pptx)**: Create presentations, edit slides, analyze content
- **Excel (xlsx)**: Create spreadsheets, analyze data, generate charts
- **Word (docx)**: Create documents, edit content, format text
- **PDF (pdf)**: Generate formatted PDF documents and reports
## Sharing Models
| Surface | Scope |
|---------|-------|
| Claude.ai | Individual user only |
| Claude API | Workspace-wide |
| Claude Code | Personal (`~/.claude/skills/`) or project-based (`.claude/skills/`) |
## Advanced Patterns
### Chaining Skills
Combine Skills to build complex workflows:
1. Skill A processes input
2. Skill B transforms output
3. Skill C validates results
### Environment-Aware Skills
Design Skills to adapt to runtime:
```markdown
## Runtime Notes
- Claude API: Use pre-installed packages only
- Claude Code: Can install packages locally
- Adjust behavior based on available tools
```
### Progressive Disclosure
Structure Skills so Claude loads only what's needed:
```markdown
# Main Skill
## Quick Start
Essential information for common tasks
## Advanced Usage
Detailed guidance when needed
See [REFERENCE.md](REFERENCE.md) for complete API documentation.
```
## Troubleshooting
### Skill Not Loading
1. Verify `SKILL.md` exists in skill directory
2. Check YAML frontmatter is valid
3. Ensure `name` uses only lowercase letters, numbers, hyphens
4. Confirm `description` is non-empty
### Permission Issues
- Claude Code: Check `.claude/skills/` directory permissions
- Claude API: Verify beta headers are set correctly
- Claude.ai: Confirm plan includes code execution
### Context Overflow
- Move detailed reference to separate files
- Use scripts for complex operations
- Structure with progressive disclosure
## File Reference
- [Authoring Best Practices](/docs/en/agents-and-tools/agent-skills/best-practices)
- [Use Skills with Claude API](/docs/en/build-with-claude/skills-guide)
- [Use Skills in Claude Code](https://code.claude.com/docs/en/skills)
- [Agent Skills SDK](/docs/en/agent-sdk/skills)
No comments yet. Be the first to comment!