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

@danypops/pi-packed

v0.20.1

Published

Pi package lifecycle, validation, daemon, tools, profiles, and TUI

Readme

pi-packed

Pi integration for @danypops/packed: package tools, /packed, setup apply/reload, and named profiles.

pi install npm:@danypops/pi-packed

The extension connects to Packed's authenticated user daemon and starts the package-local packed serve process when no healthy daemon is available. It contains no SQLite, registry, package execution, or daemon implementation code.

Commands

  • /packed -- one floating overlay, four tabs (Packages/Find/Config/Settings), always shown in a persistent tab bar at the top: the focused tab reverses the theme's text color for high contrast in both dark and light modes, unfocused tabs show only a foreground color with their own first letter highlighted as a jump mnemonic (the focused tab needs no mnemonic -- there's nothing to jump to when you're already there). Tab/Shift-Tab (or /) sweep between them -- recognized under legacy CSI, xterm's modifyOtherKeys, and the Kitty keyboard protocol alike, not just one hardcoded encoding; from any tab other than Packages, p/f/c/s also jump straight to the matching one (never stolen while that tab's own filter/query box is capturing text). Esc returns to Packages from anywhere else, or closes the panel from Packages itself. Every approval and reload confirmation, on any tab, renders inline on this same panel (y/n keys), never a separate popup or native dialog. A standing test (keymap.test.ts, using Malevich's tree-style findMnemonicConflicts) verifies no two actions genuinely reachable at once share a key.
    • Packages (the default tab) -- every installed Pi package, with update availability. Mnemonics follow lazy.nvim's own convention (uppercase acts on every row, lowercase on the one under the cursor):
      • u / U -- update the selected package / update every outdated package, one combined confirmation and one reload. U shows a spinner inline next to the package currently updating, settling into a real ✓ or ✗ plus a short tail of that update's own captured output once it finishes -- the list stays visible throughout, nothing swaps to a separate screen. A reload is confirmed separately from the update itself -- decline it to defer: the update already happened, only picking it up in this Pi session is deferred until /reload.
      • x -- remove the selected package.
      • d -- disable (or re-enable) the selected package's own extensions.
      • c -- jump to the Config tab, scoped to the selected package.
      • f -- jump to the Find tab. s -- jump to the Settings tab.
      • Enter opens a smaller floating action menu with all of the above. r refreshes, / filters, v cycles view modes.
    • Find -- search the npm registry for new Pi packages and install one.
    • Config -- enable or disable individual extensions, skills, prompt templates, and themes declared by installed packages, per package, at global or project scope (v switches global/project). /packed config opens the panel landing directly on this tab.
    • Settings -- change whether package mutations (install/update/remove/toggle) require confirmation.
  • /packed setup plan [path] [--prune] / /packed setup apply [path] [--prune] -- preview or apply a reproducible-environment manifest (pi-setup.json) against installed packages and profiles.
  • /profile [name] -- switch to a named Pi profile (provider, model, tools, instructions, theme), reading ~/.pi/agent/profiles.json and a trusted project's own .pi/profiles.json. pi --profile <name> activates one at startup; Ctrl+Shift+U cycles through them.