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

@ian-pascoe/pi-skills-selector

v0.1.0

Published

Native Skill Reference autocomplete and link conversion for Pi user input.

Readme

Pi Skills Selector

Reference Skills with $skill-name anywhere in a user message. Type $ to open Pi's native completion popup, then fuzzy-filter by name. Each result shows its description; selecting one leaves shorthand in the editor. Repeat to reference several Skills.

pi install npm:@ian-pascoe/pi-skills-selector

Requires Pi >=0.85.1 and Node >=22.19.0. There are no settings or extra tools.

Submission

Typed, pasted, and selected references are equivalent. On submission:

Review with $code-review and $ponytail.
→ Review with [$code-review](/skills/code-review/SKILL.md) and [$ponytail](/skills/ponytail/SKILL.md).

Paths come from the current Pi Skill Catalogue. The model receives links, not full instructions, and chooses when to read them. The submitted transcript stores the links rather than a separate raw shorthand message.

Only exact known names in prose expand. Unknown names and expressions such as $HOME stay literal, as do escaped \$skill-name, code, and existing Markdown links. Escape or code-format a literal variable whose name matches a Skill. Multiple and repeated references retain their order; path characters are escaped for Markdown links.

The catalogue follows Pi's discovery, trust, and name precedence, including Skills marked disable-model-invocation because selection is an explicit user request. It is available on the first prompt, refreshes with Pi's resources, and works with enableSkillCommands: false.

Integration

Completion stacks over the current provider, retaining ordinary slash/file completion, keyboard controls, and custom editors. Conversion applies to terminal and RPC prompt input, including steering and follow-ups, without changing attachments or message routing. Extension-generated input is unchanged.

Pi 0.85.1 RPC limitation: direct steer and follow_up commands bypass Pi's input hooks, so their shorthand stays literal. Send prompt with streamingBehavior: "steer" or "followUp" while streaming to get conversion. This extension uses public hooks rather than patching Pi's message pipeline.

Troubleshooting

  • No popup: confirm the extension loaded, use an interactive terminal, and type $ at a prose token boundary. Check that the expected Skill is in Pi's discovered resources; reload after changing resource configuration.
  • No link: check the exact case-sensitive name, its discovered document path, and whether the reference is escaped, in code, or already inside a link.
  • Wrong target: inspect Pi's resource origins and duplicate-name precedence. The selector uses the winning catalogue entry rather than scanning separately.
  • The model did not read the Skill: inspect the submitted user message first. A correct link verifies conversion; reading the document is the model's choice.