A cross-platform Node.js library to list running processes with detailed metadata like CPU, memory, and command line.
ps-list is a Node.js library that retrieves detailed information about running processes on macOS, Linux, and Windows. It provides metadata such as PID, command line, CPU and memory usage, executable path, and start time, abstracting platform-specific system calls into a simple Promise-based API.
Node.js developers building system monitoring tools, task managers, performance dashboards, or CLI applications that need to inspect or manage running processes.
Developers choose ps-list for its cross-platform consistency, ease of use, and detailed process metadata—eliminating the need to write separate code for each operating system or rely on complex native modules.
Get running processes
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a consistent Promise-based API across macOS, Linux, and Windows, abstracting platform-specific complexities like /proc on Linux or command-line extraction on macOS, as described in the README.
On macOS and Linux, returns comprehensive data including PID, command line, CPU/memory percentages, executable path, and start time, leveraging system methods such as reading from /proc/{pid}/exe on Linux.
Includes an 'all' option to list processes from all users or only the current user on macOS and Linux, useful for multi-user system monitoring, though it has no effect on Windows.
Uses the fastlist binary on Windows for efficient process listing, as mentioned in the related section, ensuring reliable performance despite platform limitations.
On Windows, key properties like cmd, cpu, memory, uid, path, and startTime are not available, severely limiting detailed process analysis on this platform, as admitted in the README.
Relies on the fastlist binary for Windows, which can complicate deployment, increase attack surface, and may not be permissible in locked-down environments.
On macOS and Linux, the process name is truncated to 15 characters by the system, and executable path detection is best-effort, potentially leading to incomplete data for some use cases.