why-is-node-running helps diagnose cases where a Node.js process keeps running without an obvious reason. It logs the active handles that keep the event loop alive, and can be used either as a local dependency, as a global CLI, or preloaded with Node’s `--import` option.
Project status
- Maintenance status: Appears quiet or in maintenance mode. The most recent upstream update was 2025-01-08, and the newest listed updates are v3.2.1 to v3.2.2 from that same date, with no evidence of activity since then (as of 2026-06-11).
- Update cadence: Relatively infrequent. After v3.2.x (Jan 2025) there is no further evidence of updates, while earlier updates clustered around mid-2024 (v3.0.0 to v3.1.0) and later 2024 (v3.2.1 in Oct 2024).
AI summary generated
Recent updates
v3.2.2
v3.2.2 upgrades the publishing workflow to use Node.js 22 and switches internal resource tracking to use WeakRef. The code changes also adjust how stack traces are captured and later printed, moving from V8 CallSite method access to plain fileName/lineNumber properties.
v3.2.1
v3.2.1 makes the stack-printing logic more defensive by excluding stacks whose file name cannot be resolved. The release notes describe this as omitting stacks with an untraceable file name.
v3.2.0
v3.2.0 refactors why-is-node-running to use modern JavaScript and internal implementations, removing the external dependencies siginfo and stackback. It also updates output formatting so file paths printed in stack traces are relative to the current working directory. Documentation was updated accordingly (README, examples), along with minor CI and publishing workflow tweaks.
Breakingv3.1.0
Release v3.1.0 adds TypeScript type definitions and updates documentation/examples to reflect the primary default export name. It also adds a GitHub Actions workflow for publishing and fixes a typo in the `include` entrypoint.
BreakingFeaturesv3.0.0
v3.0.0 migrates why-is-node-running from CommonJS to standardized ES modules, and bumps the minimum supported Node.js version to 20.11+. The implementation is updated to use ESM imports throughout, including the CLI preload flow.
Breakingv2.3.0
v2.3.0 updates why-is-node-running to hide internal details on modern Node.js versions. This changes what the library considers user-relevant output, which may affect integrations that parse or display the reported reasons.