Pi — Skills
- File format
- Markdown
- Discovery path
-
.pi/skills - Global install path
-
~/.pi/agent/skills - Syllago install method
- Symlink, Direct copy
- Symlink support
- Yes
- Native frontmatter fields
-
name,description,license,compatibility,metadata
Features
How each feature converts to syllago's canonical format. See format conversion for what these statuses mean.
Fields
Native frontmatter or config fields this provider exposes. The first column is the provider's own field name; the canonical key column links to syllago's cross-provider equivalent.
| Provider field | Conversion | Canonical key | Summary |
|---|---|---|---|
compatibility | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | compatibility | yaml frontmatter key: compatibility (optional, max 500 chars) |
description | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | description | yaml frontmatter key: description (required, max 1024 chars) |
disable-model-invocation | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | disable_model_invocation | yaml frontmatter key: disable-model-invocation (optional bool); confirmed in SkillFrontmatter TypeScript interface as disable-model-invocation?: boolean |
license | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | license | yaml frontmatter key: license (optional) |
metadata | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | metadata_map | yaml frontmatter key: metadata (optional, arbitrary key-value mapping) |
name | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | display_name | yaml frontmatter key: name (required, max 64 chars, lowercase a-z/0-9/hyphens, must match parent directory name) |
allowed-tools | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | — | Space-delimited list of tools pre-approved for the skill so they bypass the user confirmation prompt (experimental). |
pi.skills | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | — | Skills declared via pi.skills in package.json or in skills/ subdirectories of npm packages enable monorepo-wide discovery. |
skills | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | — | Pi's settings skills array accepts paths to other providers' skill directories so foreign skills load without conversion. |
Other features
Behaviors, conventions, and capabilities that aren't tied to a single named field — things like path-based activation, discovery rules, and lifecycle behavior.
| Feature | Conversion | Summary |
|---|---|---|
canonical_filename | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | SKILL.md (required, fixed filename for directory-form skills) |
custom_filename | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | Any .md filename at root of ~/.pi/agent/skills/ or .pi/skills/ (shorthand single-file form) |
global_scope | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | ~/.pi/agent/skills/<name>/SKILL.md or ~/.agents/skills/<name>/SKILL.md |
project_scope | Translated Conversion type: Translated Actively mapped to the target provider’s equivalent field during conversion. Learn more → | .pi/skills/<name>/SKILL.md or .agents/skills/<name>/SKILL.md |
| Description-based auto-invocation | Conversion type: No canonical equivalent — appended as prose in a conversion notes block so nothing is silently lost. Learn more → | Names and descriptions are injected as XML in the system prompt, and the agent loads matching SKILL.md bodies on demand. |
| Supporting files in skill directory | Conversion type: No canonical equivalent — appended as prose in a conversion notes block so nothing is silently lost. Learn more → | Skill directories may include scripts/, references/, and assets/ subdirectories that SKILL.md references via relative paths. |
| CLI flags for runtime skill management | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | --skill <path> loads additional skills at runtime (additive, repeatable); --no-skills disables all default discovery locations. |
| Ignore-file respect during skill scanning | Not portable Conversion type: Not portable Unique to this provider — can’t be carried across providers. Learn more → | Skill scanner honors .gitignore, .ignore, and .fdignore patterns per subdirectory via the ignore npm package. |
Sources
| Source |
|---|
| https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/docs/skills.md |
| https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/src/core/skills.ts |