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

v0.4.1

Published

Codex-style auto-updater for pi. Checks pi and extension packages on startup and prompts to install updates.

Downloads

221

Readme

pi-updater

pi-updater is a pi extension that turns pi's update notices into an interactive flow: it prompts you when a new pi version or extension package updates are available, installs them without leaving your session, and puts you right back where you were.

  • npm: https://www.npmjs.com/package/pi-updater
  • repo: https://github.com/tonze/pi-updater

Why does this exist?

pi already checks for updates on startup — for itself and for installed extension packages — but all it does is print a notice telling you which command to run. The built-in flow is: see the notice, finish what you're doing, quit pi, run pi update, start pi again, run pi -c to get your session back. That's five steps for something that should be one keypress.

pi-updater collapses this into a prompt. Choose an update option and it installs the new versions and puts you back in your current session. You can also skip once, or skip a specific pi version so it stops asking until the next release.

The actual installation is delegated to pi's native pi update command. pi knows how it was installed (npm, pnpm, yarn, bun, or a standalone binary) and what extension packages you have configured; pi-updater deliberately does not reimplement any of that. This extension owns the interactive experience, nothing more.

Installation

pi install npm:pi-updater

Requires pi 0.74.0 or later (the @earendil-works package scope). On older installs the extension fails to load harmlessly; if you need it there, pin [email protected].

Usage

There is nothing to configure. On startup, pi-updater checks both pi itself and your installed extension packages (the same check behind pi's "Package Updates Available" banner).

If only pi is outdated:

  • Update now — run pi update --self, then restart pi on the current session
  • Skip — ask again next session
  • Ignore <version> — don't ask again until a newer version appears

If both pi and extensions are outdated, a combined prompt appears:

  • Update all — run pi update --self --extensions, then restart
  • Update pi only — run pi update --self, then restart
  • Update extensions only — run pi update --extensions, then reload
  • Skip — ask again next session

Version dismissal ("Ignore") is only offered in the pi-only prompt; a dismissed pi version degrades the combined prompt to extensions-only.

If only extensions are outdated, you're offered pi update --extensions.

Choosing an update option is the only interaction: anything involving pi core restarts straight back into your current session, and extension-only updates are hot-reloaded in place (from the startup prompt, where extensions cannot trigger a reload, pi restarts into the session instead — same result). Either way you keep working where you left off.

You can also check manually at any time with /update.

Extension updates have no per-version skip; choosing Skip simply asks again next session. Pinned (@version / #ref) and local packages are excluded, matching pi's own update check.

In non-interactive modes, or if the restart fails, pi-updater falls back to a message telling you how to restart yourself. Ephemeral --no-session runs stay ephemeral across the restart.

How version checks work

Startup is never blocked. Both checks run in the background — pi's version against pi's update service, extension packages against their npm/git sources — and one consolidated prompt appears when they resolve, so you are never offered a partial update. If the version fetch fails, a previously cached result is used as fallback. After an update restarts pi, the startup check is skipped once so you're not immediately re-prompted for anything you just declined.

/update always fetches fresh. Cache and dismissed-version state live in pi's agent directory and respect PI_CODING_AGENT_DIR.

Disabling checks

pi's standard environment variables are respected:

export PI_SKIP_VERSION_CHECK=1   # disable automatic checks
export PI_OFFLINE=1              # offline mode, also disables checks

While pi-updater is active it suppresses pi's built-in update notice so you don't get prompted twice for the same release. pi's "Package Updates Available" banner cannot be suppressed the same way, so it may still appear alongside pi-updater's extension prompt.

Caveats

Because installation is delegated to pi, pi's limitations apply: standalone binary installs get download instructions instead of an automatic install, and Windows self-update covers npm and pnpm installs only. In those cases you'll see pi's own message explaining what to do.

Updating pi-updater itself

pi update npm:pi-updater

License

MIT