Skills provide specialized instructions and capabilities to the agent. They are defined using the Agent Skills format.
Skills are loaded from:
- Global:
~/.pi/agent/skills/*/SKILL.mdor~/.pi/agent/skills/*.md - Project:
.pi/skills/*/SKILL.mdor.pi/skills/*.md - Packages: Installed packages.
A skill is defined in a SKILL.md file with YAML frontmatter.
---
name: "sql-expert"
description: "Expert at writing and optimizing SQL queries"
disable-model-invocation: false
---
You are an expert SQL developer. When writing queries:
1. Always prefer CTEs over subqueries.
2. Use uppercase for keywords.
3. Check for index usage.| Field | Description |
|---|---|
name |
Skill ID (must match directory name if in a subdir; mismatches emit a warning). |
description |
Required. Short description used for selection; empty descriptions are skipped. |
disable-model-invocation |
If true, the skill is not shown to the model in the system prompt. |
If name is omitted, the parent directory name is used.
By default, Pi includes all enabled skills in the system prompt. The model can decide to "activate" a skill by reading its definition file using the read tool.
You can explicitly invoke a skill using the slash command:
/skill:sql-expert "Optimize this query..."This effectively wraps your prompt with the skill's instructions.
To disable the /skill: slash commands, set enable_skill_commands to false in settings.json.