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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@simon_he/pi

v0.1.20

Published

An intelligent cross-platform package manager and CLI tool that autodetects project environments (Node.mjs, Go, Rust, Python) with beautiful loading animations and smart command execution.

Readme

📖 Table of Contents

🍭 PI

PI is an intelligent package manager with beautiful custom loading styles, providing a better visual experience when installing dependencies. It can intelligently identify project environments, fuzzy match commands, and find deep-nested instructions, greatly improving development efficiency.

🚀 Smart Package Manager

PI supports package management for multiple environments:

  • Go: Supports dependency installation, uninstallation, execution, and packaging with go mod
  • Rust: Supports dependency installation, uninstallation, execution, and packaging with Cargo
  • Node.js: Supports dependency installation, uninstallation, and execution with npm, pnpm, and yarn
  • Python: Supports Python file execution
  • Monorepo: Automatically identifies and handles differences between yarn and pnpm workspaces, fixing monorepo installation issues

📷 Examples

pi - Install Dependencies

Install Dependencies Example

Install Dependencies Animation

pil - Install the latest dependencies

Example of running a command

pui - Uninstall Dependencies

Uninstall Dependencies Example

pci - Clear Cache

Clear Cache Example

prun - Run Commands

Run Commands Example

Run Commands Animation

pfind - Find Commands

Find Commands Animation

Other Features

Other Features Animation

📱 Language

# Set environment variables in your bash or zsh configuration file

# Chinese
export PI_Lang=zh

# English
export PI_Lang=en

:gear: Install

  npm i -g @simon_he/pi

:open_hands: Usage

  # According to the environment of the current directory to analyze which package manager to use,go、rust、pnpm、yarn、npm
  # Install dependencies
  pi xxx
  # Uninstall dependencies
  pui xxx
  # Execute command
  prun
  # Execute scripts in workspace
  # Execute index.js | index.ts in js | ts files or directories
  # Execute main.go in go files or directories
  # Execute main.rs in rust files or directories
  # Execute main.py in python files or directories
  pfind
  # Initialization
  pinit
  # build - for cargo, go
  pbuild
  # pci

Power

The current environment is npm | yarn | pnpm, and it supports passing some args --silent

  • prun dev The dev command in the current package.json
  • prun If no command is specified, provide all scripts command options under the current package
  • prun playground, provide all scripts command options under the current package

The current environment is go

  • prun message, it will find message.go first, if not found, it will find message/main.go to execute

The current environment is rust

  • prun executable cargo run

workspace of pnpm | yarn

  • pfind Select the package under the current workspace, and then select the corresponding command

:monocle_face: Feature

<-- Go -->
 ## input folder and executor command
 prun  # default executor main.go
 prun table # if table.go exists, executor table.go else executor table/main.go. and table can under any folder. For example, examples/table/main.go will also be found and executed
<-- Go -->

:bulb: Custom configuration

You can configure the loading style in .zshrc, as follows:

export PI_COLOR=red # loadingstyle color
export PI_SPINNER=star # loadingstyle
export PI_DEFAULT=pnpm # If the current project does not set the installed package manager, you can set the default installation here
  • 70+ types of styles, from cli-spinners,You can choose to fill in the name in PI_SPINNER.
  • Color options: 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray', Fill in PI_COLOR.

:battery: Dependency

License

MIT License © 2022 Simon He