# Skills Skills are instruction files that the agent loads on-demand for specific tasks. ## Skill Locations Skills are discovered from these locations (in order of priority, later wins on name collision): 1. `~/.codex/skills/**/SKILL.md` (Codex CLI user skills, recursive) 2. `~/.claude/skills/*/SKILL.md` (Claude Code user skills) 3. `/.claude/skills/*/SKILL.md` (Claude Code project skills) 4. `~/.pi/agent/skills/**/*.md` (Pi user skills, recursive) 5. `/.pi/skills/**/*.md` (Pi project skills, recursive) Skill names and descriptions are listed in the system prompt. When a task matches a skill's description, the agent uses the `read` tool to load it. ## Creating Skills A skill is a markdown file with YAML frontmatter containing a `description` field: ```markdown --- description: Extract text and tables from PDF files --- # PDF Processing Instructions 1. Use `pdftotext` to extract plain text 2. For tables, use `tabula-py` or similar 3. Always verify extraction quality Scripts are in: {baseDir}/scripts/ ``` ### Frontmatter Fields | Field | Required | Description | |-------|----------|-------------| | `description` | Yes | Short description for skill selection | | `name` | No | Override skill name (defaults to filename or directory name) | The parser only supports single-line `key: value` syntax. Multiline YAML blocks are not supported. ### Variables `{baseDir}` is replaced with the directory containing the skill file. Use it to reference bundled scripts or resources. ### Subdirectories (Pi Skills) Pi skills in subdirectories use colon-separated names: - `~/.pi/agent/skills/db/migrate.md` → `db:migrate` - `/.pi/skills/aws/s3/upload.md` → `aws:s3:upload` ## Claude Code Compatibility Pi reads Claude Code skills from `~/.claude/skills/*/SKILL.md`. The `allowed-tools` and `model` frontmatter fields are ignored since Pi cannot enforce them. ## Codex CLI Compatibility Pi reads Codex CLI skills from `~/.codex/skills/`. Unlike Claude Code skills (one level deep), Codex skills are scanned recursively, matching Codex CLI's behavior. Hidden files/directories (starting with `.`) and symlinks are skipped. ## Disabling Skills CLI flag: ```bash pi --no-skills ``` Or in `~/.pi/agent/settings.json`: ```json { "skills": { "enabled": false } } ``` ## Example ```markdown --- description: Perform code review with security and performance analysis --- # Code Review Analyze: ## Security - Input validation - SQL injection - XSS vulnerabilities ## Performance - Algorithm complexity - Memory usage - Query efficiency ```