Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Run npm tasks in parallel and exit when they are all done.

Build Status


Locally (recommended, especially with npm scripts):

npm install npm-run-parallel

Globally, as a CLI:

npm install -g npm-run-parallel


From the command line, or an npm script:

npm-run-parallel <npm scripts>

So, if I want to run npm install and npm test in parallel (a contrived example, I know!):

npm-run-parallel install test

The process will complete when both npm install and npm test finish.

Note: you can run custom npm scripts, too. Just like you would install or test above.


On a given project, there are likely some long or expensive npm scripts, like asset compilation or multi-directory dependency installs. It's faster to do these in parallel.

A common way to run any shell command (which an npm script is) is the & operator, which creates a subprocess. This subprocess runs separately, so the original process can never tell how or when the subprocess ended. In a similar vein, the | operator can pipe the output of one command to another. This can feel like streaming, but passing the output of one npm script to another is both a hack and prone to erroring out.

Some build tools, like gulp, accomplish parallel commands (a.k.a. tasks) with streaming libraries. The recent trend towards npm scripts from these walled-garden tools necessitated emulating that functionality. So npm-run-parallel all the tasks!

Do I get colored terminal output from my tasks?

Yes! It's awesome. I learned a lot about streams and stdout in the process of making this.


See for the code of conduct.

Local development

  • npm run watch - Compile source code, and watch for changes

  • npm run lint - Lints source code (eslint)

  • npm run test:watch - Run tests and watch for file changes

Other commands

  • npm run build - Compiles source code (also used in prepublish)

  • npm run test - Run unit tests once

  • npm run start -- - Emulates the cli interface (note: pass it task arguments. Useful for manual testing.)


Run npm tasks in parallel and exit when they are all done






No packages published