pi-skill-picker-jev
v0.3.0
Published
Keep Pi's skill catalog out of context until Jev selects relevant skills
Maintainers
Readme
Skill Picker for Pi
Want to understand how this extension works? Read the visual explainer for a walkthrough of skill selection, scoring, and the request flow.
Pi can discover a lot of skills, but most requests only need a few. Skill Picker asks a classifier which of your already-available skills fit the task, then shows Pi only that smaller set instead of the whole catalog.
It is meant for people who already use Pi skills and want less prompt bloat, cleaner skill selection, and a simple way to keep the right skills available.
Check out my other Pi extensions
— Auto-syncs Pi theme with OS dark/light mode.
— Real-time prompt cache hit rates and token metrics.
— Session task checklist with dependencies and a TUI renderer.
— Prunes verbose tool outputs from context while preserving history.
— Dot-grid visualization of context window token usage.
— Live tokens/sec and TTFT in the status bar.
— Tracks subscription quotas and rate limits across AI providers.
Why people install it
- Smaller initial context — Pi does not need to advertise every available skill up front.
- Better focus — relevant skills appear automatically for the task in front of you.
- Fail-closed behavior — if ranking is unavailable, the extension does not fall back to exposing the full catalog.
- Manual control still works — you can still invoke a skill yourself with
/skill:name.
Install
Requires Pi 0.87.1+.
From npm
pi install npm:pi-skill-picker-jevFrom this repository
pi install git:github.com/championswimmer/pi-skill-picker-jevIf you want the default hosted backend, make sure Pi already has OpenRouter credentials:
pi auth check --provider openrouterYou can also use the built-in Pi classifier mode or point the extension at your own TypeSafe-compatible HTTP endpoint.
Extension order matters
Place Skill Picker first in your Pi configuration—or at least before any other extension that reads or modifies context. It needs to filter the skills catalog before those extensions see the context, so they work with the selected skills rather than the full catalog.
First run
- Start Pi inside a project that already contains Pi skills.
- Ask for help normally.
- Open
/skill-picker historyto see which skills were added. - Open
/skill-picker settingsif you want to make it more or less selective, or keep the picker off for small skill repos.
The extension uses the skills Pi has already discovered. It does not install or generate skills for you.
Real prompts to try
These examples come from the repository's storefront demo project and are good sanity checks for a fresh install:
Add a low-stock report for the catalog and test the reorder threshold.Add a coupon code to the checkout total and explain the rounding policy.Write an accessible cart-empty state and update the storefront copy.Draft a migration plan for changing the product JSON format.Add an incident runbook for checkout failures and a release checklist.
In each case, you should see a small, task-specific set of skills show up in /skill-picker history instead of the whole skill catalog being exposed up front.
Everyday commands
/skill-picker— open the picker menu./skill-picker settings— tune threshold, max new skills, minimum repo skills, trigger timing, classifier mode, and always-allowed skills. Global (user-level) skills are allowed in a global list saved in~/.pi/agent/pi-skill-picker-jev.json; project skills are allowed per project in.pi/skill-picker-jev.json./skill-picker history— inspect which skills were added during this session./skill-picker on//skill-picker off— enable or disable the extension quickly./skill:name— manually invoke a skill if you want to bypass automatic selection.
Skills selected during a session stay available for the rest of that session. A new Pi session starts fresh.
By default, the picker only runs in repos where Pi has loaded at least 30 model-invocable skills after deduping by name. Set Minimum repo skills to 0 if you want it to run even in smaller skill catalogs.
What gets sent
By default, the hosted OpenRouter / Jev mode sends:
- your current request,
- bounded recent conversation context,
- completed tool text (depending on trigger mode), and
- skill names and descriptions.
It does not send full skill files.
If that is too sensitive for your workflow, switch to the Pi classifier mode or configure your own trusted HTTP endpoint in settings.
