@knst/pi-exclude-skills

A Pi extension that keeps irrelevant skills out of the model's context, per project.

Packages

Package details

extension

Install @knst/pi-exclude-skills from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@knst/pi-exclude-skills
Package
@knst/pi-exclude-skills
Version
0.1.0
Published
Aug 28, 2026
Downloads
156/mo · 156/wk
Author
knst
License
MIT
Types
extension
Size
16.2 KB
Dependencies
0 dependencies · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./src"
  ]
}

Security note

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

README

Exclude Skills Extension

A Pi extension that keeps irrelevant skills out of the model's context, per project.

Every loaded skill costs context: Pi lists each one's name, description, and location in the <available_skills> block of the system prompt, on every single turn. In a project with thirty skills installed, most of them are noise. This extension removes the ones you don't want from that block, so the model never spends attention on them.

This is a decluttering tool, not a permission system. Excluding a skill hides it from the model — it does not forbid it. If you type /skill:name yourself, the skill runs as normal, because you asked for it explicitly and there is no context left to save.

Installation

pi install npm:@knst/pi-exclude-skills

Commands

Command Description
/exclude-skills Open the picker
/exclude-skills status Print how many skills are in context, and which are not
/exclude-skills <name> Toggle one skill directly, without opening the picker
/exclude-skills clear Put every skill back in context

How It Works

On before_agent_start, the extension rewrites the <available_skills> block in the system prompt, removing each excluded skill's entry entirely — name, description, and location. When every skill is excluded, the block is dropped altogether. The model never sees that those skills exist.

This is the only point at which an extension can influence what the model knows about skills. Pi has no hook that runs at skill discovery time, so a skill cannot be prevented from being read off disk and registered — but that costs nothing at inference time. What costs context is the description in the system prompt, and that is exactly what this removes. Pi loads skill bodies lazily (progressive disclosure), so an excluded skill's SKILL.md is never read unless you invoke it by name.

Notes

  • The config file must live in a trusted project (project trust must be granted).
  • Changes take effect on the next agent turn — no reload needed.
  • This changes only what the model sees. It does not change how Pi discovers skills from packages or global locations, and it never blocks a skill you invoke yourself.