npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

pi-skill-picker-jev

v0.3.0

Published

Keep Pi's skill catalog out of context until Jev selects relevant skills

Readme

Skill Picker for Pi

npm version

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

  • pi-auto-theme — Auto-syncs Pi theme with OS dark/light mode.
  • pi-cache-graph — Real-time prompt cache hit rates and token metrics.
  • pi-checklist — Session task checklist with dependencies and a TUI renderer.
  • pi-context-prune — Prunes verbose tool outputs from context while preserving history.
  • pi-context-usage — Dot-grid visualization of context window token usage.
  • pi-gauge — Live tokens/sec and TTFT in the status bar.
  • pi-subscription-meter — 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-jev

From this repository

pi install git:github.com/championswimmer/pi-skill-picker-jev

If you want the default hosted backend, make sure Pi already has OpenRouter credentials:

pi auth check --provider openrouter

You 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

  1. Start Pi inside a project that already contains Pi skills.
  2. Ask for help normally.
  3. Open /skill-picker history to see which skills were added.
  4. Open /skill-picker settings if 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.

Learn more