concurrently

Node.js CLI that runs multiple shell commands in parallel with prefixed, colored output and options to kill or restart processes. Works on Windows.

install

concurrently is a command-line runner that starts several commands at the same time from a single terminal. It replaces patterns like npm run watch-js & npm run watch-css and opening a separate terminal per process. Each command is passed as a quoted argument, for example concurrently 'command1 arg' 'command2 arg'. It is written in Node.js but can run any command, and it is also available under the alias conc. It works cross-platform, including Windows, where only double quotes are supported.

Output from each process is prefixed so it can be told apart. Prefixes can be the process name, index, pid, time, or command, or a custom template such as [{time} process: {pid}]. Colors can be set per command or from a list, using Chalk color functions or auto. A raw mode prints only process output. The --kill-others switch stops all commands when one exits. The API also provides killOthersOn for success or failure, maxProcesses, restartTries and restartDelay, and a successCondition of first, last, or all.

concurrently can also be used programmatically. concurrently(commands, options) accepts command strings or objects with command, name, prefixColor, env, cwd, and ipc. It returns { result, commands }, where result is a Promise that resolves or rejects with an array of CloseEvents. Each Command object exposes pid, state, stdin, RxJS observables for stdout, stderr, and close events, plus start(), send(), and kill([signal]). Input can be forwarded to commands from stdin.

It suits JavaScript and Node.js developers who run watchers, dev servers, and build tasks side by side. A typical use is in the scripts section of a package.json. It can be installed locally as a devDependency or globally.

Installation

# via npm
npm i -g concurrently
# via Yarn
yarn global add concurrently
# via pnpm
pnpm add -g concurrently

concurrently demo

Alternatives & related tools

add a badge to your README

Maintain concurrently? Show that it's featured on trmn. The badge links back to this page.

Featured on trmn
Markdown
[![Featured on trmn](https://www.trmn.sh/badge/concurrently.svg)](https://www.trmn.sh/tools/concurrently?utm_source=badge)
HTML
<a href="https://www.trmn.sh/tools/concurrently?utm_source=badge"><img src="https://www.trmn.sh/badge/concurrently.svg" alt="Featured on trmn" height="20"></a>