NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2121 most downloaded on npm
Run commands concurrently
Last release 1 months ago
15 Aug 2026
Release timing varies
gaps range from 2 weeks to 11 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
72 releases · first in 2015
fix: correctly output non-ASCII text on Windows by @DanielC000 in #604
Full Changelog: v10.0.4...v10.0.5
One column per quarter.
deps: upgrade shell-quote to 1.9.0 by @Mayvis in #599
Full Changelog: v10.0.3...v10.0.4
Republish of https://github.com/open-cli-tools/concurrently/releases/tag/v10.0.1 with Trusted Publishing enabled (see #595 )
Republish of https://github.com/open-cli-tools/concurrently/releases/tag/v10.0.1 with Trusted Publishing enabled (see #595)
Full Changelog: v10.0.2...v10.0.3
Ensure FlowController type is exported - #594
FlowController type is exported - #594Full Changelog: v10.0.0...v10.0.1
Address vulnerability in shellquote - #591
require(esm). See here for interoperability.reset (which does nothing). Concurrently now automatically selects a color, out of the box.--name-separator: use commas instead.killOthers: use killOthersOn instead.#ff0000.bold) - #450rgb(), hex(), bgRgb(), etc) - #578bg#RRGGBB - #578--shell CLI flag/shell API option - #288, #589, #556[{color}{name}{/color}] - #583, #587"/some/command" foo bar"shellquote - #591Full Changelog: v9.2.1...v10.0.0
upgrade shell-quote to 1.9.0 - #597 , #600
Full Changelog: v9.2.3...v9.2.4
Address vulnerability in shell-quote - #591 , #596
shell-quote - #591, #596chore: update eslint-plugin-simple-import-sort from v10 to v12 by @noritaka1166 in #551
Full Changelog: v9.2.0...v9.2.1
Bump esbuild from 0.23.1 to 0.25.0 in the npm_and_yarn group by @dependabot in https://github.com/open-cli-tools/concurrently/pull/528
--kill-timeout by @gustavohenke in https://github.com/open-cli-tools/concurrently/pull/540Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v9.1.2...v9.2.0
Add ability to have custom logger by @mwood23 in https://github.com/open-cli-tools/concurrently/pull/522
Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v9.1.1...v9.1.2
fix: support Deno's JSON with comments configuration by @mahtaran in https://github.com/open-cli-tools/concurrently/pull/523
Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v9.1.0...v9.1.1
Remove signal event listeners on finish by @gustavohenke in https://github.com/open-cli-tools/concurrently/pull/512
Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v9.0.1...v9.1.0
Don't set up more than 1 abort signal listener by @gustavohenke in https://github.com/open-cli-tools/concurrently/pull/503
Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v9.0.0...v9.0.1
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.
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.
Pending commands no longer run when --max-processes is set and an interruption/kill signal is sent - #433, #452, #460
Before v9.0.0, pressing <kbd>Ctrl</kbd>+<kbd>C</kbd> when --max-processes is set meant that only those commands would receive it. Once these stopped, the pending commands would start, which in turn meant that another <kbd>Ctrl</kbd>+<kbd>C</kbd> press would be necessary to stop them, and so on.
Similar situation applied to combining --max-processes with --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.
The concurrently and default exports are now the same - #399
It's reasonable to expect that import { concurrently } from 'concurrently' would work the same as import 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.
--restart-after exponential. Restarts happen at 2^N seconds.--pad-prefix flag - #166, #417, #495--teardown flag - #472, #500node:<script> commands to node --run <script> - #475state field to Command - #455spawn-command when running in Node 22 - #407, #477, #479, #492--raw and --hide compatible - #394, #486--help no longer shows examples due to there being too many.
Refer to https://github.com/open-cli-tools/concurrently/tree/v9.0.0/docs instead, or to the node_modules/concurrently/docs directory in your project.--passthrough-arguments - #490date-fns with hand-rolled date formatting - #436, #443
This should make installing concurrently faster.Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v8.2.2...v9.0.0
fix(suggestion): prefixColors API type to embrace string type by @SeiwonPark in https://github.com/open-cli-tools/concurrently/pull/439
Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v8.2.1...v8.2.2
Replace deprecated RxJS code by @paescuj in https://github.com/open-cli-tools/concurrently/pull/343
Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v8.2.0...v8.2.1
Support REPL languages that use colons by @wyattades in https://github.com/open-cli-tools/concurrently/pull/393
Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v8.1.0...v8.2.0
fix: move types condition to the front by @Andarist in https://github.com/open-cli-tools/concurrently/pull/422
types condition to the front by @Andarist in https://github.com/open-cli-tools/concurrently/pull/422raw per command when using the API by @chbiel in https://github.com/open-cli-tools/concurrently/pull/411Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v8.0.1...v8.1.0
Fix release workflow by @paescuj in https://github.com/open-cli-tools/concurrently/pull/408
Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v8.0.0...v8.0.1
Breaking change: Drop support for Node.js v12 & add support for Node.js v18 by @paescuj in https://github.com/open-cli-tools/concurrently/pull/342
--kill-signal option by @paulsmithkc in https://github.com/open-cli-tools/concurrently/pull/402Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v7.6.0...v8.0.0
Support percent values in maxProcesses by @lynxtaa in https://github.com/open-cli-tools/concurrently/pull/375
--save-dev by @DetachHead in https://github.com/open-cli-tools/concurrently/pull/376Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v7.5.0...v7.6.0
Add auto colors functionality by @eliasm307, @paescuj, @gustavohenke in https://github.com/open-cli-tools/concurrently/pull/296
onFinish signature when using exactOptionalPropertyTypes by @Baune8D in https://github.com/open-cli-tools/concurrently/pull/372Full Changelog: https://github.com/open-cli-tools/concurrently/compare/v7.4.0...v7.5.0
Updated dependencies rxjs and date-fns - #353, #340
conc - #358rxjs and date-fns - #353, #340Export package.json path - #339
Update rxjs to version 7.0.0 - #326
Fix --success command- syntax when command name has dashes - #324, #325
--success command- syntax when command name has dashes - #324, #325Support passthrough of additional arguments to commands via placeholders - #33, #282, #307
command-{name|index} and !command-{name|index} to --success - #280, #281, #318Excluding pattern support added, e.g. concurrently npm*(!fix) (#305, #306)
concurrently npm:lint:*(!fix) (#305, #306)Dropped support for Node 10. Minimum version is now 12.20.
🎉 🥂 Happy 2022!
concurrently() API now has a different return value. Please refer to the docs.--group flag/option to run process in parallel but print output in sequence - #75, #79, #272import concurrently from 'concurrently'.concurrently() now returns the commands alongside a promise for the result - #209Fix command names when using npm wildcard (#148, #165, #211, #212)
Add support for configuring via environment variables that start with CONCURRENTLY_ prefix
CONCURRENTLY_ prefix (#289)--timings flag to show when each process started and stopped, and how long they ran for (#291, #295)Add --hide flag to hide the output of specified commands (#138, #173)
--hide flag to hide the output of specified commands (#138, #173)Distribute prefix colors correctly when using npm/yarn/pnpm script expansion (#186, #210, #234, #286)
prefixColors, which serves as fallback for commands without a prefixColor (#286)Remove read-pkg dependency which had a vulnerability issue
read-pkg dependency which had a vulnerability issue (#274)Fix hanging issue after using programmatic API to read from stdin (#252, #253) Big kudos to @brandonchinn178 for finding and fixing this! 🏆 🎉
Include killed in the command result in programmatic API
killed in the command result in programmatic API (#250)--restart-tries restart forever with negative values (#263)Change default color to reset (no color set), instead of gray.dim (#259, #275)
reset (no color set), instead of gray.dim (#259, #275)Update lodash to fix a vulnerability (#270, #271)
--handle-input when input contains a colon (#269)Fix cwd option not overwriting per command if specified in programmatic API (#266, #268)
BREAKING CHANGE: Dropped support for Node 8
prefixColors option now accepts HEX colors (#260, #261)cwd option to programmatic API (#216, #246)Added support for pnpm alongside npm and yarn
Support limit of processes at once (#159, #175, #214)
Return exit codes in the programmatic API
Update dependencies to get rid of vulnerability in `tree-kill`
tree-killUpgrade dependencies to get rid of vulnerability in `os-locale` (#204, #205)
os-locale (#204, #205)Timestamp formatting library `date-fns` was upgraded to v2.0.0
date-fns was upgraded to v2.0.0 (#196)SIGHUP (#193, #195)Don't strip quotes if they are impaired (#118, #194)
bin: pass --prefix-length argument through
--prefix-length argument through (#189)Add yarn support (#171 -- big thanks to @igrayson!)
concurrently --versionsuccessCondition option (#176)Make success condition respect exiting order (as per docs), instead of command spec order
…and more reliably. It does feature some small breaking changes, and maybe even fixes some longstanding bugs.
More than anything, v4 is just a big refactor to allow changes to be made faster and more reliably.
It does feature some small breaking changes, and maybe even fixes some longstanding bugs.
--allow-restarts is no more.
Instead, just set --restart-tries to something greater than 0.--handle-input flag. (#147)none will now actually not prefix commands' outputs.[] .SIGINTs/<kbd>Ctrl</kbd>+<kbd>C</kbd> will now be handled gracefully. (#150)
No more exiting with code 1 or tweaking --success flag.null exit codes (#133)That's a pretty bad bug that existed till now. You won't see a log like this anymore:
[1] npm run lint-watch exited with code null
What you will see going forward is the actual exit signal:
[1] npm run lint-watch exited with code SIGTERM
For Windows users, this will invariably still be exit code 1.
Closes #101, #112. Maybe even #103.
const concurrently = require('concurrently');
await concurrently([
'npm:watch-*',
{ name: 'server', command: 'nodemon' }
], {
prefix: 'name',
killOthers: ['failure'],
restartTries: 3
});
Check the docs here for some info on how to use it.
Fix inability to change the prefix to a template like {time}-{pid}
{time}-{pid} (#152)Support wildcard expansion for npm:something-*/npm:*-like commands
npm: prefix to npm run (#126)npm:something-*/npm:*-like commands (#140)BIG thanks to @pgraham for contributing with the most important changes of this version!
Fix stdout when lines are cleared (#2, #70, #85)
Add flags for restarting processes: --allow-restart, --restart-after, --restart-tries (#48, #100)
--allow-restart, --restart-after, --restart-tries (#48, #100)--prefix to name when --names is set (#97)Don't try to kill other processes while they are already being killed (#92, #91)
--kill-others-on-fail flag (#93, #64, #55)Switch spawn-default-shell with spawn-command due to lots of problems in v3.2.0 (#61, #89)
Switch spawn-default-shell with spawn-command due to lots of problems in v3.2.0 (#61, #89)
Add support for colors in subprocesses when they use chalk (#49, #86, #87)
--login flag, allowing you to make use of /etc/profile, ~/.profile, and etc (#81)Also, this version drops support for Node 0.12. We're only supporting Node 4+.
Bumps spawn-default-shell to 1.1.0: https://github.com/kimmobrunfeldt/spawn-default-shell/releases/tag/1.1.0
Bumps spawn-default-shell to 1.1.0: https://github.com/kimmobrunfeldt/spawn-default-shell/releases/tag/1.1.0
This release includes huge amount of improvements. Major updates:
This release includes huge amount of improvements. Major updates:
Closes these PRs: #58 #57 #56 #53 #47 #45 #43 #42 #40 #21. Closes these issues: #52 #50 #41 #31 #28 #7 #3.
Your coding agent can read these notes before it upgrades. Set up the MCP server →