concurrently
10.0.6 · 8 Oct 2026MIT29.2M / weekRepositoryHomepagenpmAtom feed
72 stable releases, newest first, by release line. Notes are quoted as the maintainers published them.
- 10.x · latest line
10.0.6
8 Oct 2026Skip force-kill logging when no processes remain
What's Changed
Skip force-kill logging when no processes remain
10.0.5
15 Aug 2026Correctly output non-ASCII text on Windows
Expand wildcards from package.json5 when package.json is missing
10.0.4
24 Jul 2026Avoid kill timeout exit delays
What's Changed
Avoid kill timeout exit delays
10.0.3
2 Jun 2026Republish of github.com/open-cli-tools/concurrently/releases… with Trusted Publishing enabled (see #595)
10.0.0
28 May 2026- breaking
Dropped support for Node.js <22.0.0.
Older Node.js version have reached end-of-life, and certain features require new-ish JS APIs. - breaking
Concurrently is now ESM-only.
It's now possible torequire(esm). See here for interoperability. - breaking
Prefix colors now default to automatic - #581
The colors used to default toreset(which does nothing). Concurrently now automatically selects a color, out of the box.
The list of colors used is not jarring nor carries semantic meaning, and reads well in both dark and light terminal backgrounds.
Breaking Changes
- breaking
Dropped support for Node.js <22.0.0.
Older Node.js version have reached end-of-life, and certain features require new-ish JS APIs. - breaking
Concurrently is now ESM-only.
It's now possible torequire(esm). See here for interoperability. - breaking
Prefix colors now default to automatic - #581
The colors used to default toreset(which does nothing). Concurrently now automatically selects a color, out of the box.
The list of colors used is not jarring nor carries semantic meaning, and reads well in both dark and light terminal backgrounds. - breaking
Removed deprecated flags and options
CLI flag
--name-separator: use commas instead.API option
killOthers: usekillOthersOninstead.
New Features
Support applying modifiers to hex prefix colors (e.g.
#ff0000.bold) - #450Support chalk's color functions in prefixes (e.g.
rgb(),hex(),bgRgb(), etc) - #578Set prefix background color via
bg#RRGGBB- #578Allow shell override via
--shellCLI flag/shellAPI option - #288, #589, #556
concurrently distinguishes between cmd.exe, powershell, and POSIX-based shells.Manual prefix coloring in templates e.g.
[{color}{name}{/color}]- #583, #587
Bug fixes
Scope quote normalization to CLI input - #582, #585
It should now also be possible to run commands like"/some/command" foo bar"Don't throw when color doesn't exist - #580
Security
- security
Address vulnerability in
shellquote- #591
Other changes
Warn about running on Snap - #584
- 9.x
9.2.5
8 Oct 2026Only updates a dependency:shell-quote 1.12.0
9.2.3
18 Jun 2026- security
Address vulnerability in
shell-quote- #591, #596
9.2.1
25 Aug 2025Remove lodash
Replace jest with vitest
Upgrade to pnpm v10
What's Changed
Remove lodash
Replace jest with vitest
Upgrade to pnpm v10
Minor dependency updates
Migrate to ESLint v9
Full coverage
Update GH actions/workflows, enable NPM provenance
9.2.0
22 Jun 2025Don't throw when there are no commands
Add
--kill-timeoutHandle SIGPIPEs
What's Changed
Bump esbuild from 0.23.1 to 0.25.0 in the npm_and_yarn group
Don't throw when there are no commands
Add
--kill-timeoutHandle SIGPIPEs
9.1.2
31 Dec 2024Add ability to have custom logger
9.1.1
27 Dec 2024Support Deno's JSON with comments configuration
9.1.0
4 Nov 2024Remove signal event listeners on finish
Add support for Deno shortcuts and wildcards
bin: Show help when no args are passed
9.0.1
12 Sep 2024Don't set up more than 1 abort signal listener
9.0.0
8 Sep 2024- breaking
Dropped support for Node.js < 18.0.0.
Older Node.js version have reached end-of-life, and certain features require new-ish JS APIs. - breaking
Pending commands no longer run when
--max-processesis set and an interruption/kill signal is sent - #433, #452, #460
Before v9.0.0, pressing Ctrl+C when--max-processesis set meant that only those commands would receive it. Once these stopped, the pending commands would start, which in turn meant that another Ctrl+C press would be necessary to stop them, and so on.
Similar situation applied to combining--max-processeswith--kill-others/--kill-others-on-fail.Starting with v9.0.0, this no longer happens, as these flags and/or key presses send a signal to stop the running commands in addition to preventing new commands from running.
- breaking
The
concurrentlyand default exports are now the same - #399
It's reasonable to expect thatimport { concurrently } from 'concurrently'would work the same asimport concurrently from 'concurrently', however this has not been the case.
The former used to be an unconfigured version of concurrently, lacking all features that you'd get from the CLI, which was seen as a "footgun". Both are now the same function.If you'd like to access the unconfigured function, use
import { createConcurrently } from 'concurrently'instead.
Breaking Changes
- breaking
Dropped support for Node.js < 18.0.0.
Older Node.js version have reached end-of-life, and certain features require new-ish JS APIs. - breaking
Pending commands no longer run when
--max-processesis set and an interruption/kill signal is sent - #433, #452, #460
Before v9.0.0, pressing Ctrl+C when--max-processesis set meant that only those commands would receive it. Once these stopped, the pending commands would start, which in turn meant that another Ctrl+C press would be necessary to stop them, and so on.
Similar situation applied to combining--max-processeswith--kill-others/--kill-others-on-fail.Starting with v9.0.0, this no longer happens, as these flags and/or key presses send a signal to stop the running commands in addition to preventing new commands from running.
- breaking
The
concurrentlyand default exports are now the same - #399
It's reasonable to expect thatimport { concurrently } from 'concurrently'would work the same asimport concurrently from 'concurrently', however this has not been the case.
The former used to be an unconfigured version of concurrently, lacking all features that you'd get from the CLI, which was seen as a "footgun". Both are now the same function.If you'd like to access the unconfigured function, use
import { createConcurrently } from 'concurrently'instead.
New Features
Exponential back-off support for process restarting - #265, #462
Use--restart-after exponential. Restarts happen at2^Nseconds.Add prefix padding via new
--pad-prefixflag - #166, #417, #495Specify teardown commands via new
--teardownflag - #472, #500Expand
node:<script>commands tonode --run <script>- #475[API only] Inter-Process Communication (ipc) - #498
[API only] Make it possible to use no colors at all - #466
[API only] Add a
statefield toCommand- #455
Bug Fixes
Fix importing concurrently in ESM package - #454, #456, #494
Make sure concurrently doesn't resolve when manually restarting commands through API - #463, #464
Fix warning coming from
spawn-commandwhen running in Node 22 - #407, #477, #479, #492Ensure prefix is written when logging without a trailing LF - #276, #467
Other Changes
--helpno longer shows examples due to there being too many.
Refer to github.com/open-cli-tools/concurrently/tree/v9.… instead, or to thenode_modules/concurrently/docsdirectory in your project.Improve examples of
--passthrough-arguments- #490Replace
date-fnswith hand-rolled date formatting - #436, #443
This should make installing concurrently faster.
- 8.x
8.2.2
19 Oct 2023suggestion: prefixColors API type to embrace string type
Test against Node.js v20 instead of v19
What's Changed
suggestion: prefixColors API type to embrace string type
Test against Node.js v20 instead of v19
8.2.1
22 Aug 2023Delay summary timings output until finished
Replace deprecated RxJS code
8.2.0
9 Jun 2023Support REPL languages that use colons
What's Changed
Support REPL languages that use colons
8.1.0
1 Jun 2023Move
typescondition to the frontAllow setting
rawper command when using the API
8.0.1
29 Mar 2023Fix release workflow
What's Changed
Fix release workflow
8.0.0
28 Mar 2023- breaking
Drop support for Node.js v12 & add support for Node.js v18
Add support for Bun
Add
--kill-signaloption
What's Changed
- breaking
Drop support for Node.js v12 & add support for Node.js v18
Add support for Bun
Add
--kill-signaloptionFixed broken link in the readme
- 7.x
7.6.0
20 Nov 2022Support percent values in maxProcesses
Enable TypeScript strict mode
Update install command to use
--save-dev
What's Changed
Support percent values in maxProcesses
Enable TypeScript strict mode
Update install command to use
--save-devCorrect wildcard naming as described in README
7.5.0
22 Oct 2022Add auto colors functionality
Fix
onFinishsignature when using exactOptionalPropertyTypes
7.0.0
3 Jan 2022- breaking
Dropped support for Node 10. Minimum version is now 12.20.
- breaking
concurrently()API now has a different return value. Please refer to the docs.
🎉 🥂 Happy 2022!
Breaking changes
- breaking
Dropped support for Node 10. Minimum version is now 12.20.
- breaking
concurrently()API now has a different return value. Please refer to the docs.
Functional changes
Added
--groupflag/option to run process in parallel but print output in sequence - #75, #79, #272Codebase converted to TypeScript. Some bugs may arise due to this, but I hope not!
API Changes
Concurrently can now be imported as an ES Module! Just do
import concurrently from 'concurrently'.concurrently()now returns the commands alongside a promise for the result - #209
- 6.x
6.2.2
27 Sep 2021- security
Remove
read-pkgdependency which had a vulnerability issue
6.2.1
8 Aug 2021Fix hanging issue after using programmatic API to read from stdin (#252, #253)
Big kudos to @brandonchinn178 for finding and fixing this! 🏆 🎉Correctly reexport flow controllers
6.2.0
24 May 2021Include
killedin the command result in programmatic APIMake
--restart-triesrestart forever with negative values
- 5.x
5.1.0
27 Jan 2020Return exit codes in the programmatic API
5.0.2
18 Dec 2019Only updates dependencies, nothing else changes.
5.0.1
9 Dec 2019- security
Upgrade dependencies to get rid of vulnerability in
os-locale(#204, #205) bin: Remove duplicate entries from usage docs
5.0.0
7 Oct 2019- breaking
Timestamp formatting library
date-fnswas upgraded to v2.0.0
- 4.x
4.1.1
25 Jun 2019bin: Pass
--prefix-lengthargument through