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

runpalette

v1.0.3

Published

A searchable list of every command in your project.

Readme

Runpalette

npm CI License: MIT

A searchable list of every command in your project.

Runpalette reads the commands a project already has (package.json scripts, justfile, Taskfile, Makefile, Cargo aliases and Gradle tasks), puts them in one list, and lets you type to find and run one. It doesn't add a new task format. Your package manager or task runner still runs the command.

Why

Every project keeps its commands somewhere different. One has twenty scripts in package.json, another has a Makefile and a justfile, a monorepo has scripts spread over ten packages. I kept opening those files just to remember what a command was called. Now I type runpalette, start typing, and press Enter.

Install

You need Node.js 22+. Try it without installing anything:

npx runpalette

Or add it to the project so the whole team has it:

npm install --save-dev runpalette
{
  "scripts": {
    "what": "runpalette"
  }
}

Then npm run what opens the palette. pnpm, Yarn and Bun work the same way.

Usage

runpalette                              # open the palette
runpalette list                         # print every command
runpalette run test -- --watch          # run one, pass extra arguments
runpalette run build --dry-run          # show exactly what would run
runpalette run dev --workspace @acme/web
runpalette doctor                       # check what's missing

In the palette, type to search, use the arrow keys to move, Tab to jump between groups and Enter to run. Monorepos (npm, pnpm, Yarn and Bun workspaces) work without any configuration.

If you want nicer names, descriptions, aliases or a confirmation before deploy, run runpalette config init and edit the runpalette.json it creates. See configuration.

For coding agents and CI

runpalette list --json
runpalette run test --json --timeout 2m
runpalette mcp

--json gives you one versioned JSON result on stdout and never prompts. runpalette mcp starts an MCP server, so an agent can see which commands exist instead of guessing from the README. By default it can only list and plan commands. It can run them only if you start it with --allow-execution. More in MCP and agents.

What it won't do

  • It doesn't run your command through a shell. It calls the executable with the arguments directly.
  • It doesn't replace npm, pnpm, just, make or anything else. They still run the command.
  • It doesn't hide install hooks like postinstall. It just keeps them out of the default list.

Docs

runpalette --help lists every command and option.

License

MIT. Changelog · Contributing · Security