@alexgorbatchev/pi-skill-library

Pi extension that exposes skills-library roots through /library:<skill-name> commands.

Package details

extension

Install @alexgorbatchev/pi-skill-library from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@alexgorbatchev/pi-skill-library
Package
@alexgorbatchev/pi-skill-library
Version
1.0.3
Published
Apr 9, 2026
Downloads
517/mo · 18/wk
Author
alexgorbatchev
License
MIT
Types
extension
Size
29.5 KB
Dependencies
0 dependencies · 1 peer
Pi manifest JSON
{
  "extensions": [
    "./src/index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@alexgorbatchev/pi-skill-library

pi extension that discovers skills-library roots and exposes their skills through /library:<skill-name> commands. This extension solves the problem of too many skills. There are skills that you need only occasionally and maybe don't even need them discoverable.

Install

pi install npm:@alexgorbatchev/pi-skill-library

What it does

This package does not register bundled skills through Pi's normal skill loader. Instead, it discovers skills-library directories, loads the skills from those roots itself, and expands:

/library:<skill-name>

into the same <skill ...>...</skill> block format Pi uses for built-in /skill:<name> expansion.

That keeps these skills out of Pi's default skill discovery flow while still making them explicitly invokable.

Library root locations

The extension looks for skills-library in these places:

  • <cwd>/.pi/skills-library
  • <cwd> and ancestor .agents/skills-library directories, stopping at the git root (or filesystem root when no git root exists)
  • ~/.pi/agent/skills-library
  • ~/.agents/skills-library
  • package-local skills-library directories derived from discovered package skill roots
  • extra paths configured via Pi settings under @alexgorbatchev/pi-skills-library.paths

Settings

Use a namespaced block in Pi settings:

{
  "@alexgorbatchev/pi-skills-library": {
    "paths": ["./skills-library", "~/shared/pi-skills-library"]
  }
}

Path resolution follows normal Pi settings behavior:

  • paths in ~/.pi/agent/settings.json resolve relative to ~/.pi/agent
  • paths in .pi/settings.json resolve relative to .pi
  • absolute paths are supported
  • ~/... is supported

Directory layout

Each library root should contain normal skill directories:

skills-library/
├── my-skill/
│   └── SKILL.md
└── another-skill/
    ├── SKILL.md
    └── references/

Commands

Invoke a library skill directly:

/library:my-skill
/library:my-skill additional context here

Discovered library skills are registered as real extension slash commands at startup and reload, so they show up in slash-command autocomplete like other commands.

On startup, the extension prints a library-discovery message into the transcript listing each discovered library root and its skills.

Use the package info command to print the same report again:

/pi-skill-library