pi-skillrefs

Pi extension package that autocompletes $skill refs and injects referenced skill bodies as visible environment context.

Package details

extension

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-name token in the user prompt.
  • Injects one visible pi-skillrefs custom message per turn immediately after the referenced user message.
  • Stores compact content like $day, $night so /tree rows 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 path to 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.
  • /tree navigation 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.
  • /tree shows the stored compact row: [pi-skillrefs]: $skill.
  • Expanding the custom message reveals the raw injected XML.

Compatibility

  • Composes with pi-fzfp through its editor handshake.
  • Uses Pi package metadata in package.json, so it loads through pi install and appears in the Pi package gallery contract for npm packages tagged with pi-package.

Development

npm test
npm run typecheck
npm run lint
gate