@alexgorbatchev/pi-skill-library

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

Packages

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
2.0.0
Published
Nov 5, 2026
Downloads
293/mo · 244/wk
Author
alexgorbatchev
License
MIT
Types
extension
Size
30.1 KB
Dependencies
0 dependencies · 3 peers
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

Requires Pi 1.x (1.5 or newer) from @earendil-works and Node.js 22.19 or newer.

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