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

@fitchmultz/pi-stash

v0.1.14

Published

A pi extension for stashing draft messages and restoring them later.

Readme

pi-stash

pi-stash is a pi extension for parking an in-progress draft, sending something else, then restoring the draft afterward.

Requirements

  • pi running on Node.js >=22.19.0
  • npm for local validation and publishing

Install

From npm:

pi install npm:@fitchmultz/pi-stash

From GitHub:

pi install https://github.com/fitchmultz/pi-stash

For local development:

npm install
pi install .

Then run /reload inside pi.

Compatibility note: this package is tested against the current pi release during each package update, and pi-bundled runtime packages are declared as optional wildcard peers. That keeps installs forward-open for future pi releases: npm peer ranges should not block users from trying a newer pi, though runtime behavior is only verified against the tested baseline until a follow-up package release confirms it.

Development and validation

pi loads the extension from the source .ts files, but local tests are transpiled into .tmp/test-dist/ before Node runs them so validation works on the declared Node 22.19 floor.

npm run ci          # typecheck + transpiled tests
npm run test:node22 # explicit Node 22.19 compatibility check
npm run validate    # ci + Node 22.19 check + audit + pack dry-run

Design

  • Ctrl+Shift+S stashes the current editor text and clears the editor.
  • Ctrl+Shift+R restores immediately when there is one stash, or opens a picker when there are multiple stashes.
  • The stash picker supports arrow-key navigation, Enter to restore, Ctrl+D to delete the selected stash, and Ctrl+X to clear all stashes.
  • When custom TUI overlays are unavailable (for example some RPC clients), restore falls back to a replace-editor confirmation for the latest stash, and /stash-list prints a latest-first summary instead of crashing.
  • Restores use pasteToEditor() when the editor already has text, so retrieval does not destroy whatever is currently in the box.
  • Drafts are kept as a small LIFO stack, so repeated stashes still work naturally.
  • The current stash stack is persisted in session metadata, so /reload, session resume, and /tree branch navigation keep drafts aligned with the active branch.
  • A footer status shows how many drafts are currently stashed.

Commands

  • /stash — stash the current editor text
  • /stash some text — stash explicit text exactly as provided, including leading or trailing whitespace
  • /stash-list — browse, restore, delete, or clear stashes

Why Ctrl+Shift+R for retrieval?

Ctrl+Shift+S appears free in the current pi keybinding docs, and Ctrl+Shift+R is also currently unassigned and mnemonic for restore.

Usage flow

  1. Start typing a draft.
  2. Press Ctrl+Shift+S.
  3. Type and send the interrupting message.
  4. Press Ctrl+Shift+R.
  5. If needed, pick a different stash with the arrow keys or delete one with Ctrl+D.
  6. Keep going with the restored draft.