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

runner-cli

v0.8.1

Published

A universal task runner, with support for NPM scripts, Gulp, Makefiles and task scripts

Readme

runner-cli

A universal task runner, with support for NPM scripts, Gulp, Makefiles and shell scripts

The tool is currently a work in progress.

Usage

Install it on your system:

npm i -g runner-cli

To display the available actions:

run

The command above will attempt to locate package.json, gulpfile.js, makefile and taskfile and display the available commands.

To run a task:

run action

The command above will attempt to run npm run action, gulp action, make action and bash taskfile action.

Invocation examples

Let's assume that we have a main action that depends on actions one and two (check the examples folder).

If the project has a gulpfile.js:

$ run main
gulp main

[18:13:23] Using gulpfile ~/git/runner-cli/example/gulpjs/gulpfile.js
[18:13:23] Starting 'one'...
This is task 1
[18:13:23] Finished 'one' after 152 μs
[18:13:23] Starting 'two'...
This is task 2
[18:13:23] Finished 'two' after 90 μs
[18:13:23] Starting 'main'...
This is the main task
[18:13:23] Finished 'main' after 67 μs

If the project has a package.json:

$ run main
npm run main


> [email protected] main /Users/jordi/git/runner-cli/example/npm
> run one && run two

npm run one


> [email protected] one /Users/jordi/git/runner-cli/example/npm
> echo 'This is action 1'

This is action 1
npm run two


> [email protected] two /Users/jordi/git/runner-cli/example/npm
> echo 'This is action 2'

This is action 2

If the project has a makefile:

$ run main
make main

This is action one
This is action two
This is the main action

If the project has a taskfile:

$ run main
bash taskfile main

This is the main action

Sequential actions:
> This is action one
> This is action two (parameter $1 = testing)
Actions one and two completed

Concurrent actions:
> This is action two (no parameter)
> This is action one
Actions one and two completed concurrently

Task completed in 0m0.002s

Display available commands

In the same scenario as before, we just execute run:

If the project has a gulpfile.js:

$ run
gulp --tasks

[18:01:14] Using gulpfile ~/git/runner-cli/example/gulpjs/gulpfile.js
[18:01:14] Tasks for ~/git/runner-cli/example/gulpjs/gulpfile.js
[18:01:14] ├── one
[18:01:14] ├── two
[18:01:14] └─┬ main
[18:01:14]   ├── one
[18:01:14]   └── two

If the project has a package.json:

$ run
npm run

Scripts available in runner-cli-npm-example via `npm run-script`:
  one
    echo 'This is action 1'
  two
    echo 'This is action 2'
  main
    run one && run two

If the project has a makefile:

$ run
make

Available actions:

  $ make         Runs 'make info' by default
  $ make info    Shows this text

  $ make one     Action one
  $ make two     Action two
  $ make main    The main action

If the project has a taskfile:

$ run
bash taskfile

taskfile <task> <args>

Available tasks:
     1	default
     2	main
     3	one
     4	two
Task completed in 0m0.004s

Why a meta task runner

Read the motivational article on Medium.com

Roadmap:

  • [x] Run tasks from package.json
  • [x] Run tasks from gulpfile.js
  • [x] Run tasks from makefile
  • [x] Run tasks from taskfile's (shell scripts exposing functions)
  • [x] Display the available tasks
  • [x] Detect and prompt for installation if a tool is missing
  • [x] Install local Gulp if missing
  • [x] Generate templates for the supported formats