pi-skillrefs
Pi extension package that autocompletes $skill refs and injects referenced skill bodies as visible environment context.
Package details
Install pi-skillrefs from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-skillrefs- Package
pi-skillrefs- Version
0.1.2- Published
- Apr 27, 2026
- Downloads
- 379/mo · 151/wk
- Author
- pyronaur
- License
- MIT
- Types
- extension
- Size
- 31.1 KB
- Dependencies
- 2 dependencies · 2 peers
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
],
"image": "https://raw.githubusercontent.com/pyronaur/pi-skillrefs/main/docs/images/cover.jpg"
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-skillrefs
pi-skillrefs adds $skill autocomplete to Pi and injects referenced skill bodies as visible turn context.
Install
pi install npm:pi-skillrefs
Or add it directly to Pi settings:
{
"packages": ["npm:pi-skillrefs"]
}
What it does
- Autocompletes discovered skills when you type
$in the editor. - Keeps the
$skill-nametoken in the user prompt. - Injects one visible
pi-skillrefscustom message per turn immediately after the referenced user message. - Stores compact content like
$day, $nightso/treerows stay short. - Renders chat messages as skill summaries with token counts, while sending the model the full referenced skill bodies inside one
<environment_context>wrapper. - Strips YAML frontmatter from full skill injections.
- Resolves every skill
pathto an absolute symlink-resolved path. - Sends a reminder block instead of reinjecting the full body when that skill is already on the active session path.
Injected model context shape
<environment_context>
<injected_skill ref="$day" path="/absolute/resolved/path/to/day/SKILL.md">
# Day Skill
...
</injected_skill>
<injected_skill ref="$night" path="/absolute/resolved/path/to/night/SKILL.md">
# Night Skill
...
</injected_skill>
</environment_context>
Reminder injections keep the same wrapper and attributes, but replace the body with a short reminder string.
Transcript behavior
- The user-visible prompt text stays unchanged.
/treenavigation to a referenced user message excludes that turn's skill injection until the prompt is submitted again.- The chat transcript shows one compact aside summary per visible referenced skill, with token counts.
/treeshows the stored compact row:[pi-skillrefs]: $skill.- Expanding the custom message reveals the raw injected XML.
Compatibility
- Composes with
pi-fzfpthrough its editor handshake. - Uses Pi package metadata in
package.json, so it loads throughpi installand appears in the Pi package gallery contract for npm packages tagged withpi-package.
Development
npm test
npm run typecheck
npm run lint
gate
