{"id":13526768,"url":"https://github.com/darkguy2008/parallelshell","last_synced_at":"2025-05-16T05:06:18.566Z","repository":{"id":23971571,"uuid":"27354180","full_name":"darkguy2008/parallelshell","owner":"darkguy2008","description":"Run multiple shell commands in parallel","archived":false,"fork":false,"pushed_at":"2020-09-06T01:46:58.000Z","size":38,"stargazers_count":501,"open_issues_count":20,"forks_count":45,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-08T15:11:23.792Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"gocd/docs.go.cd","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darkguy2008.png","metadata":{"files":{"readme":"README.md","changelog":"History.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-11-30T23:31:56.000Z","updated_at":"2024-06-19T23:21:42.000Z","dependencies_parsed_at":"2022-08-22T01:40:42.674Z","dependency_job_id":null,"html_url":"https://github.com/darkguy2008/parallelshell","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkguy2008%2Fparallelshell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkguy2008%2Fparallelshell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkguy2008%2Fparallelshell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkguy2008%2Fparallelshell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darkguy2008","download_url":"https://codeload.github.com/darkguy2008/parallelshell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254471061,"owners_count":22076585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:01:34.472Z","updated_at":"2025-05-16T05:06:17.788Z","avatar_url":"https://github.com/darkguy2008.png","language":"JavaScript","readme":"## Parallel Shell\n\nThis is a super simple npm module to run shell commands in parallel. All\nprocesses will share the same stdout/stderr, and if any command exits with a\nnon-zero exit status, the rest are stopped and the exit code carries through.\n\n### Version compatibility notes\n\n* Fully compatible with Node up to v8 and later!\n\n### Maintenance has been resumed by [@darkguy2008](https://github.com/darkguy2008). However, there are also better options, see [Consolidation of multiple similar libraries](https://github.com/mysticatea/npm-run-all/issues/10).\n\n### Motivation\n\n**How is this different than:**\n\n    $ cmd1 \u0026 cmd2 \u0026 cmd3\n\n* Cross platform -- works on Unix or Windows.\n\n* `\u0026` creates a background process, which only exits if you kill it or it ends. `parallelshell` will autokill processes if one of the others dies.\n\n* `command1 \u0026 command2 \u0026 command3` will wait in the terminal until command3 ends only. parallelshell will wait until all 3 end.\n\n* If command1 or command2 exit with non-zero exit code, then this will not effect the outcome of your shell (i.e. they can fail and npm/bash/whatever will ignore it). `parallelshell` will not ignore it, and will exit with the first non-zero exit code.\n\n* Pressing Ctrl+C will exit command3 but not 1 or 2. `parallelshell` will exit all 3\n\n* `parallelshell` outputs all jobs stdout/err to its stdout/err. background jobs do that... kind of coincidentally (read: unreliably)\n\n**So what's the difference between GNU parallel and this?**\n\nThe biggest difference is that parallelshell is an npm module and GNU parallel isn't. While they probably do similar things, albeit (GNU) parallel being more advanced, parallelshell is an easier option to work with when using npm (because it's an npm module).\n\nIf you have GNU parallel installed on all the machines you project will be on, then by all means use it! :)\n\n### Install\n\nSimply run the following to install this to your project:\n\n```bash\nnpm i --save-dev parallelshell\n```\n\nOr, to install it globally, run:\n\n```bash\nnpm i -g parallelshell\n```\n\n### Usage\n\nTo use the command, simply call it with a set of strings - which correspond to\nshell arguments, for example:\n\n```bash\nparallelshell \"echo 1\" \"echo 2\" \"echo 3\"\n```\n\nThis will execute the commands `echo 1` `echo 2` and `echo 3` simultaneously.\n\nNote that on Windows, you need to use double-quotes to avoid confusing the\nargument parser.\n\nAvailable options:\n```\n-h, --help         output usage information\n-v, --verbose      verbose logging\n-w, --wait         will not close sibling processes on error\n\n```\n","funding_links":[],"categories":["Repository","JavaScript","[Node.js](http://nodejs.org/) feature module and bundler"],"sub_categories":["Shell"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarkguy2008%2Fparallelshell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarkguy2008%2Fparallelshell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarkguy2008%2Fparallelshell/lists"}