Quick Start
How Skills Work
- At startup, Pi scans skill locations and extracts names and descriptions
- The system prompt includes available skills in XML format
- When a task matches, the agent uses the
readtool to load the full SKILL.md - The agent follows the instructions, using relative paths to reference scripts and assets
Skill Structure
A complete skill directory:SKILL.md Format
The only required file. Must include:- YAML frontmatter with
nameanddescription - Markdown content with instructions
Frontmatter Fields
Name Rules
- 1-64 characters
- Lowercase letters, numbers, hyphens only
- No leading/trailing hyphens
- No consecutive hyphens
- Must match parent directory name
pdf-processing, data-analysis, code-review
Invalid: PDF-Processing, -pdf, pdf--processing
Description Best Practices
The description determines when the agent loads the skill. Be specific.- Good
- Poor
Complete Example
Skill Locations
Pi loads skills from:- Global:
~/.pi/agent/skills/~/.agents/skills/
- Project:
.pi/skills/.agents/skills/incwdand ancestor directories (up to git repo root)
- Packages:
skills/directories orpi.skillsentries inpackage.json - Settings:
skillsarray with files or directories - CLI:
--skill <path>(repeatable)
Using Skills from Other Harnesses
To use skills from Claude Code or OpenAI Codex, add to~/.pi/agent/settings.json:
.pi/settings.json:
Skill Commands
Skills register as/skill:name commands:
User: <args>.
Toggle via /settings or in settings.json:
Relative Paths
Use relative paths from the skill directory:packages/coding-agent/examples/extensions/dynamic-resources/ for a complete example.
Skill Repositories
- Anthropic Skills - Document processing (docx, pdf, pptx, xlsx), web development
- Pi Skills - Web search, browser automation, Google APIs, transcription
Next Steps
- See Building Extensions for custom tools and event handlers
- See Custom Providers for adding LLM providers
- Browse existing skills for inspiration