Load personal Pi skills only where they make sense.
Use it to keep machine-specific, project-specific, or credential-dependent skills out of sessions where they cannot help.
Set up a conditional skill
Place a normal Pi skill under ~/.pi/agent/skillz/ instead of ~/.pi/agent/skills/.
If you changed Pi's agent directory, use its skillz/ subdirectory instead.
Add at least one condition to its frontmatter.
---
name: jj-workflow
description: Use in a Jujutsu working directory on this machine.
os: [lnx, mac]
host: desktop
path: .jj
---
This skill loads only on Linux or macOS, on host desktop, inside a Pi working directory containing .jj.
Use os with lnx, win32, or mac.
Use host for an exact hostname, path for a marker below Pi's current directory, which for an executable on PATH, or env for a nonempty environment variable.
A list means any value matches.
Use { all: [...] } when every listed value must match.
Different condition types must all match.
Use it in Pi
Nothing to invoke after setup.
Eligible skills become Pi's normal /skill:<name> commands when Pi starts or reloads.
Run /skillz to see which conditional skills loaded or why a discovered candidate was excluded.
The report shows environment variable names and whether they are present, never their values.
Invalid conditions or duplicate skill names produce warnings and do not load that candidate.
Inspect conditional skills from the last discovery
<img src="assets/banner.svg" alt="skillz" height="70">
# skillz
Load personal Pi skills only where they make sense.
Use it to keep machine-specific, project-specific, or credential-dependent skills out of sessions where they cannot help.
## Set up a conditional skill
Place a normal Pi skill under `~/.pi/agent/skillz/` instead of `~/.pi/agent/skills/`.
If you changed Pi's agent directory, use its `skillz/` subdirectory instead.
Add at least one condition to its frontmatter.
```yaml
---
name: jj-workflow
description: Use in a Jujutsu working directory on this machine.
os: [lnx, mac]
host: desktop
path: .jj
---
```
This skill loads only on Linux or macOS, on host `desktop`, inside a Pi working directory containing `.jj`.
Use `os` with `lnx`, `win32`, or `mac`.
Use `host` for an exact hostname, `path` for a marker below Pi's current directory, `which` for an executable on `PATH`, or `env` for a nonempty environment variable.
A list means any value matches.
Use `{ all: [...] }` when every listed value must match.
Different condition types must all match.
## Use it in Pi
Nothing to invoke after setup.
Eligible skills become Pi's normal `/skill:<name>` commands when Pi starts or reloads.
Run `/skillz` to see which conditional skills loaded or why a discovered candidate was excluded.
The report shows environment variable names and whether they are present, never their values.
Invalid conditions or duplicate skill names produce warnings and do not load that candidate.
Install through [Installation](../../README.md#install).
## Reference
<!-- config:start -->
### Commands
| Command | Purpose |
| --- | --- |
| `/skillz` | Inspect conditional skills from the last discovery |
<!-- config:end -->