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-extmgr

v0.1.13

Published

Enhanced UX for managing local Pi extensions and community packages

Readme

pi-extmgr

pi-extmgr banner

CI License: MIT

A better way to manage Pi extensions. Browse, install, enable/disable, and remove extensions from one place.

Install

pi install npm:pi-extmgr

Then reload Pi.

Features

  • Unified manager UI
    • Local extensions (~/.pi/agent/extensions, .pi/extensions) and installed packages in one list
    • Scope indicators (global/project), status indicators, update badges
  • Safe staged local extension toggles
    • Toggle with Space/Enter, apply with S
    • Unsaved-change guard when leaving (save/discard/stay)
  • Package management
    • Install, update, remove from UI and command line
    • Quick actions (A, u, X) and bulk update (U)
  • Remote discovery and install
    • npm search/browse with pagination
    • Install by source (npm:, git:, URL, local path)
    • Supports direct GitHub .ts installs and local standalone install mode
  • Auto-update
    • Interactive wizard (t in manager, or /extensions auto-update)
    • Persistent schedule restored on startup and session switch
    • Background checks + status bar updates
  • Operational visibility
    • Session history (/extensions history)
    • Cache controls (/extensions clear-cache)
    • Status line summary (pkg count • auto-update • known updates)
  • Interactive + non-interactive support
    • Works in TUI and non-UI modes
    • Non-interactive commands for list/install/remove/update/auto-update

Usage

Open the manager:

/extensions

In the manager

| Key | Action | | ------------- | ------------------------------------------------ | | ↑↓ | Navigate | | Space/Enter | Toggle local/package extension on/off | | S | Save changes | | Enter / A | Actions on selected package (update/remove/view) | | u | Update selected package directly | | X | Remove selected item (package/local extension) | | i | Quick install by source | | f | Quick search | | U | Update all packages | | t | Auto-update wizard | | P / M | Quick actions palette | | R | Browse remote packages | | ? / H | Help | | Esc | Exit |

Commands

/extensions                      # Open interactive manager (default)
/extensions local                # Alias: open interactive manager
/extensions list                 # List local extensions
/extensions remote               # Open remote package browser
/extensions packages             # Alias: remote browser
/extensions installed            # Installed packages view (legacy alias to unified flow)
/extensions search <query>       # Search npm packages
/extensions install <source> [--project|--global]  # Install package
/extensions remove [source]      # Remove package
/extensions uninstall [source]   # Alias: remove
/extensions update [source]      # Update one package (or all when omitted)
/extensions auto-update [every]  # No arg opens wizard in UI; accepts 1d, 1w, never, etc.
/extensions history [options]    # View change history (supports filters)
/extensions clear-cache          # Clear metadata cache

Non-interactive mode

When Pi is running without UI, extmgr still supports command-driven workflows:

  • /extensions list
  • /extensions installed
  • /extensions install <source> [--project|--global]
  • /extensions remove <source>
  • /extensions update [source]
  • /extensions history [options]
  • /extensions auto-update <duration>

Remote browsing/search menus require interactive mode.

History options (works in non-interactive mode too):

  • --limit <n>
  • --action <extension_toggle|package_install|package_update|package_remove|cache_clear>
  • --success / --failed
  • --package <query>
  • --since <duration> (e.g. 30m, 24h, 7d, 1mo)
  • --global (non-interactive mode only; reads all persisted sessions)

Examples:

  • /extensions history --failed --limit 50
  • /extensions history --action package_update --since 7d
  • /extensions history --global --package extmgr --since 24h

Install sources

/extensions install npm:package-name
/extensions install @scope/package
/extensions install git:https://github.com/user/repo.git
/extensions install https://github.com/user/repo/blob/main/extension.ts
/extensions install /path/to/extension.ts
/extensions install ./local-folder/

Tips

  • Staged changes: Toggle extensions on/off, then press S to apply all at once. A * shows pending changes.
  • Two install modes:
    • Managed (npm): Auto-updates with pi update, stored in pi's package cache
    • Local (standalone): Copies to ~/.pi/agent/extensions/{package}/, supports multi-file extensions
  • Auto-update schedule is persistent: /extensions auto-update 1d stays active across future Pi sessions and is restored when switching sessions.
  • Reload is built-in: When extmgr asks to reload, it calls ctx.reload() directly.
  • Remove requires restart: After removing a package, you need to fully restart Pi (not just a reload) for it to be completely unloaded.

License

MIT