{"adoption": {"forks": 278, "observed_at": "2026-08-28T04:10:06.153887+00:00", "stars": 7839}, "canonical_url": "https://ross.abutalabs.com/products/concurrently", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Run commands concurrently. Like `npm run watch-js & npm run watch-less` but better.", "domain": ["developer-tools", "web-development"], "enriched": true, "function": ["cli", "concurrency", "developer-tools"], "health_score": 99, "homepage": "https://www.npmjs.com/package/concurrently", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["open-cli-tools/concurrently"], "name": "open-cli-tools/concurrently", "platform": ["cross-platform", "cli", "windows"], "pushed_at": "2026-08-18T10:03:34+00:00", "repo": "open-cli-tools/concurrently", "stars": 7839, "tags": ["process-management", "npm-scripts", "parallel-commands", "command-runner", "spawn", "prefix-output", "kill-others", "watch-tasks", "dev-servers", "command-line", "automation", "nodejs", "linux", "macos"], "topics": ["cli", "command-line", "concurrently", "parallel", "process", "spawn"], "urls": [], "use_cases": ["run multiple npm scripts at the same time", "run frontend and backend dev servers together from one terminal", "run watch tasks in parallel like watch-js and watch-less", "kill all background commands when one process fails", "read parallel command output with per-command prefixes", "run multiple commands concurrently on Windows where shell & behaves differently"], "what_it_is": "concurrently is an npm-distributed CLI tool (written in TypeScript) that runs multiple shell commands in parallel from a single terminal, with prefixed output to keep interleaved logs readable. It is cross-platform including Windows, and supports options like --kill-others to terminate all commands when one exits or fails.", "when_to_avoid": ["you only need simple backgrounding on POSIX shells where &, wait, or job control suffices", "you need dependency-aware task orchestration, sequencing, or caching rather than pure parallelism (consider a task runner like Make, nx, or turbo)", "you are orchestrating containers or distributed services rather than local shell commands", "your environment has no Node.js runtime available to install and run the tool"], "when_to_choose": ["you need to run several long-running commands (watchers, dev servers) in a single terminal", "you want readable interleaved output from parallel processes with prefixes and color coding", "you need cross-platform parallel command execution in npm scripts, including Windows", "you want all spawned processes terminated when one exits unexpectedly (--kill-others)"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/concurrently", "repo": "open-cli-tools/concurrently", "role": "main", "score": 98}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:06.153887+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:33:58.092652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a34c361855c2d905213920e5e9b32b767fc2290d2c9282ba268fe8ddb009fafe", "fetched_at": "2026-08-28T04:10:06.153887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-cli-tools/concurrently"}, {"content_hash": "ceb8f2979849bc5c185ad263ab9562b67f51396e4707fac490284a1575b634a9", "fetched_at": "2026-08-29T08:30:45.403855+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/concurrently"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:06.153887+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:33:58.092652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a34c361855c2d905213920e5e9b32b767fc2290d2c9282ba268fe8ddb009fafe", "fetched_at": "2026-08-28T04:10:06.153887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-cli-tools/concurrently"}, {"content_hash": "ceb8f2979849bc5c185ad263ab9562b67f51396e4707fac490284a1575b634a9", "fetched_at": "2026-08-29T08:30:45.403855+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/concurrently"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:33:58.092652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a34c361855c2d905213920e5e9b32b767fc2290d2c9282ba268fe8ddb009fafe", "fetched_at": "2026-08-28T04:10:06.153887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-cli-tools/concurrently"}, {"content_hash": "ceb8f2979849bc5c185ad263ab9562b67f51396e4707fac490284a1575b634a9", "fetched_at": "2026-08-29T08:30:45.403855+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/concurrently"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:10:06.153887+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:06.153887+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:06.153887+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:33:58.092652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a34c361855c2d905213920e5e9b32b767fc2290d2c9282ba268fe8ddb009fafe", "fetched_at": "2026-08-28T04:10:06.153887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-cli-tools/concurrently"}, {"content_hash": "ceb8f2979849bc5c185ad263ab9562b67f51396e4707fac490284a1575b634a9", "fetched_at": "2026-08-29T08:30:45.403855+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/concurrently"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:06.153887+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:06.153887+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:33:58.092652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a34c361855c2d905213920e5e9b32b767fc2290d2c9282ba268fe8ddb009fafe", "fetched_at": "2026-08-28T04:10:06.153887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-cli-tools/concurrently"}, {"content_hash": "ceb8f2979849bc5c185ad263ab9562b67f51396e4707fac490284a1575b634a9", "fetched_at": "2026-08-29T08:30:45.403855+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/concurrently"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:06.153887+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:06.153887+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:06.153887+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:33:58.092652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a34c361855c2d905213920e5e9b32b767fc2290d2c9282ba268fe8ddb009fafe", "fetched_at": "2026-08-28T04:10:06.153887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-cli-tools/concurrently"}, {"content_hash": "ceb8f2979849bc5c185ad263ab9562b67f51396e4707fac490284a1575b634a9", "fetched_at": "2026-08-29T08:30:45.403855+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/concurrently"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:06.153887+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:06.153887+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:33:58.092652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a34c361855c2d905213920e5e9b32b767fc2290d2c9282ba268fe8ddb009fafe", "fetched_at": "2026-08-28T04:10:06.153887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-cli-tools/concurrently"}, {"content_hash": "ceb8f2979849bc5c185ad263ab9562b67f51396e4707fac490284a1575b634a9", "fetched_at": "2026-08-29T08:30:45.403855+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/concurrently"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:33:58.092652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a34c361855c2d905213920e5e9b32b767fc2290d2c9282ba268fe8ddb009fafe", "fetched_at": "2026-08-28T04:10:06.153887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-cli-tools/concurrently"}, {"content_hash": "ceb8f2979849bc5c185ad263ab9562b67f51396e4707fac490284a1575b634a9", "fetched_at": "2026-08-29T08:30:45.403855+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/concurrently"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:33:58.092652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a34c361855c2d905213920e5e9b32b767fc2290d2c9282ba268fe8ddb009fafe", "fetched_at": "2026-08-28T04:10:06.153887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-cli-tools/concurrently"}, {"content_hash": "ceb8f2979849bc5c185ad263ab9562b67f51396e4707fac490284a1575b634a9", "fetched_at": "2026-08-29T08:30:45.403855+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/concurrently"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:33:58.092652+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a34c361855c2d905213920e5e9b32b767fc2290d2c9282ba268fe8ddb009fafe", "fetched_at": "2026-08-28T04:10:06.153887+00:00", "kind": "readme", "missing": false, "url": "https://github.com/open-cli-tools/concurrently"}, {"content_hash": "ceb8f2979849bc5c185ad263ab9562b67f51396e4707fac490284a1575b634a9", "fetched_at": "2026-08-29T08:30:45.403855+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/concurrently"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 98}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4227, "days_push": 15, "days_rel": 18, "gap_med": 16, "n_releases_24m": 16}, "score": 98, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}