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

v0.2.0

Published

Intercepts rm commands and moves files to trash instead of permanently deleting

Readme

pi-trash

Intercept rm commands and move files/directories to .pi/trash/ instead of permanently deleting them.

Overview

pi-trash is a pi package that extends pi with a trash can for the coding agent. When the agent runs rm, files are moved to .pi/trash/ instead of being permanently deleted, allowing recovery.

This follows the freedesktop.org XDG Trash Specification:

.pi/trash/
├── files/    ← actual deleted files
└── info/     ← .trashinfo metadata

Features

  • rm interception — Automatically detects and redirects rm commands to .pi/trash/
  • /trash command — List and recover deleted files via the agent's slash command
  • CLI toolbin/pi-trash-rm.mjs for direct command-line usage
  • XDG Trash compatible — Stores files and metadata in .pi/trash/

Installation

npm

pi install npm:pi-trash

Git

pi install git:github.com/Jinsung-L/pi-trash

Project-local

pi install npm:pi-trash -l

After installation, pi loads the extension automatically. No manual configuration needed.

Usage

Automatic rm interception

The agent's rm commands are automatically intercepted:

> rm some-file.txt

Files are moved to .pi/trash/ in the project root instead of being deleted.

/trash command

Manage trashed files using the /trash slash command. Supports four subcommands:

/trash delete <paths...>

Manually move files or directories to trash. This works the same way as the automatic rm interception.

/trash delete file1.txt
/trash delete dir1/ dir2/
/trash delete -v file1.txt file2.txt file3.txt   # verbose: show each deleted path

/trash restore <id>

Restore a trashed item to its original location.

/trash restore abc123def456...

The ID can be found via /trash list. The TUI provides autocomplete for the ID.

/trash list

List all trashed items (most recent first).

/trash list

/trash empty [days]

Permanently delete all trashed items (or items older than <days> days).

/trash empty                    # Delete all trashed items
/trash empty 7                  # Delete items older than 7 days
/trash empty 30d                # Same as above (d suffix is optional)

With UI, a confirmation dialog appears before deletion.