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

@bacnh85/pi-hub

v0.1.12

Published

Interactive installer for Pi coding agent packages — browse, search, and install pi extensions via npx pi-hub

Readme

pi-hub

Interactive installer for Pi coding agent packages — browse, search, and install pi extensions without typing pi install ....

Inspired by vercel-labs/skills: one command, interactive multi-select, sensible defaults.

Quick start

npx @bacnh85/pi-hub

That's it — you get the full catalog of @bacnh85 extensions with descriptions, navigate with arrow keys, press space to select, a to select all, then enter to install. Each selection runs pi install npm:<package> for you.

Requirements: Node ≥ 20 and the pi CLI on PATH (pi --version must work).

Commands

pi-hub (no arguments) — interactive browser

npx @bacnh85/pi-hub
  • Lists every curated @bacnh85 package with full-width descriptions
  • ↑/↓ move · space toggle · a toggle all · enter confirm · q quit
  • The detail line under the list shows the full npm name + description of the highlighted package
  • Confirming the picker installs immediately — pi install runs per package (passes through pi's own output)
  • -y installs quietly (suppresses the "Will install" list), -l installs project-local instead of user-scope

add — install without browsing

npx @bacnh85/pi-hub add pi-plan              # curated shorthand → npm:@bacnh85/pi-plan
npx @bacnh85/pi-hub add pi-plan pi-munin     # multiple packages
npx @bacnh85/pi-hub add @bacnh85/pi-review   # scoped npm name
npx @bacnh85/pi-hub add user/repo            # any git repo → git:github.com/user/repo
npx @bacnh85/pi-hub add npm:@foo/pi-tools    # passthrough, exactly as pi install expects
npx @bacnh85/pi-hub add pi-plan -l           # -l = project-local (.pi/settings.json)

Unknown first arguments are treated as add too: npx @bacnh85/pi-hub pi-plan works.

| Input | Resolves to | |---|---| | pi-plan | npm:@bacnh85/pi-plan (curated catalog lookup) | | @scope/pkg | npm:@scope/pkg | | owner/repo | git:github.com/owner/repo | | npm:…, git:…, https://…, ssh://… | passthrough to pi install |

find — search

npx @bacnh85/pi-hub find memory              # curated matches first, then npm at large
npx @bacnh85/pi-hub find plan --json         # machine-readable output

Searches the curated catalog (name + description), then the npm registry for Pi's official keywords:pi-package convention. Offline or rate-limited? It gracefully falls back to the catalog only.

list — what's installed

npx @bacnh85/pi-hub list

Reads ~/.pi/agent/settings.json and shows installed package sources.

remove — uninstall

npx @bacnh85/pi-hub remove pi-plan           # resolve shorthand → pi remove npm:@bacnh85/pi-plan
npx @bacnh85/pi-hub remove                   # no args: removes all user-scope npm: packages

update — update installed packages

npx @bacnh85/pi-hub update                   # runs pi update --extensions

Flags

| Flag | Description | |---|---| | -l, --local | project-local install (.pi/settings.json) instead of user scope | | -y, --yes | quiet — suppress the "Will install" list (interactive mode) | | --json | machine-readable output (find) | | -h, --help | help |

Curated catalog

| Package | Description | |---|---| | pi-a2a | A2A Protocol v1.0 bidirectional — distribute tasks to remote agents, be called by them | | pi-advisor | Automatic advisor: a second model reviews each settled turn and injects severity-routed notes | | pi-agy | Google Antigravity CLI bridge — delegate bulk scaffolding, refactors, test generation | | pi-attachments | Image and file attachments — pastes/drops become file references and inline images | | pi-budget | Spend cap enforcement — halts the agent when session cost exceeds --budget USD | | pi-checkpoint | Git-backed undo/redo — /undo rolls back a message AND its file changes | | pi-commandcode | Connect to Command Code's OpenAI-compatible Provider API | | pi-cron | Scheduled jobs — cron-style prompts fired into the live session, with crontab export | | pi-evolve | Trajectory-based self-learning loop — captures tool calls, extracts and injects learnings | | pi-fff | FFF-powered fuzzy file and content search | | pi-init | Guided AGENTS.md generation — /init scans the repo and generates/updates AGENTS.md | | pi-kicad | KiCad CAD-design extension — drive schematic capture and PCB layout | | pi-model-tools | Unified tool-wrapping, argument repair, DeepSeek V4 guidance, apply_patch diff tool | | pi-munin | Munin long-term memory as native Pi tools | | pi-notebooklm | Google NotebookLM — notebooks, sources, chat, research, Studio artifacts | | pi-notify | Desktop notifications and sounds on task completion, errors, questions | | pi-obsidian | Obsidian vault integration — read, search, create notes via the Obsidian CLI | | pi-permission | Granular permission system — config-driven allow/ask/deny rules per tool | | pi-plan | Plan mode with read-only gating and plan → implement → verify → review workflow | | pi-ponytail | Lazy senior dev mode — YAGNI/stdlib-first coding discipline | | pi-references | External context roots — alias sibling dirs or git repos as @docs/@sdk | | pi-review | Isolated read-only code review with corrected same-session fallback | | pi-selfskills | Skill self-improvement — one skill_manage tool to patch, create, and restore skills | | pi-router | Connect to any OpenAI-compatible AI router via its /v1 API | | pi-rtk | Bash command token rewriting through RTK | | pi-serena | Serena semantic code tools (find/replace/rename symbols, LSP diagnostics) | | pi-sub | Subscription usage footer for OpenAI Codex, OpenCode Go, Z.ai | | pi-subagent | Isolated in-process subagents with parallel/chain modes and git worktree isolation | | pi-themes | Ayu variants (dark, mirage, light) + Catppuccin Mocha | | pi-ux | Anti-slop UI/UX design discipline — DESIGN.md anchoring + deterministic slop-audit gates | | pi-web | Web search, page extraction, Firecrawl scraping/crawling, Crawl4AI headless browser crawling, Gemini web-tier research, free upstream image generation, one-off gateway chat | | pi-windows-tools | Windows-specific tools for Pi |

Install any of them by directory name: npx @bacnh85/pi-hub add pi-munin.

How it works

pi-hub is a thin discovery + selection layer on top of the pi CLI — pi install / pi remove do the actual package management, pi-hub never reimplements it. Sources:

  • Curated catalog — the @bacnh85 monorepo packages, bundled as catalog.json.
  • General discovery — npm registry search for keywords:pi-package, Pi's official package convention. Falls back to catalog-only when offline.

@bacnh85/pi-hub itself is not a pi package (nothing registers into the agent); it's a standalone zero-dependency CLI.

Workflow examples

# Set up a new machine with the full @bacnh85 stack
npx @bacnh85/pi-hub          # press 'a', then 'enter'

# Just the essentials for coding
npx @bacnh85/pi-hub add pi-plan pi-serena pi-subagent pi-review pi-munin

# Explore what the community published
npx @bacnh85/pi-hub find obsidian
npx @bacnh85/pi-hub find memory --json | jq '.[].name'

# Project-local install (shared with your team via .pi/settings.json)
npx @bacnh85/pi-hub add pi-permission -l

Troubleshooting

  • pi not found on PATH — install Pi first: npm install -g @earendil-works/pi-coding-agent (see pi's README). pi-hub checks pi --version before anything else.
  • Picker doesn't respond to keys — stdin must be a TTY. If you're piping input, use add instead of the interactive browser.
  • npm search returns nothing — you're offline or rate-limited; curated catalog still works.
  • Install succeeded but extension not loaded — run pi config to enable it, and pi list to verify the install.

Changelog

See CHANGELOG.md.

License

MIT