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.
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

Alternatives & related tools
npm-check-updates
CLI that upgrades package.json dependencies to their latest versions, preserving semver range operators. Works with npm, yarn, pnpm, deno, and bun.
tsx
TypeScript Execute (tsx): a CLI for running TypeScript files directly in Node.js.
Supabase CLI
Runs the Supabase stack locally, manages Postgres migrations, deploys Edge Functions, and generates TypeScript types from your database schema.
Vercel CLI
Command-line interface for the Vercel platform: deploy projects, run them locally with vercel dev, and manage deployments from the terminal.
Angular CLI
Command-line tool for creating, serving, scaffolding, and maintaining Angular applications and workspaces via the ng command.
add a badge to your README
Maintain concurrently? Show that it's featured on trmn. The badge links back to this page.
[](https://www.trmn.sh/tools/concurrently?utm_source=badge)<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>