Cross platform children list of a PID

Usage no npm install needed!

<script type="module">
  import pidtree from '';



Mac/Linux Build Status Windows Build status Codecov Coverage report Known Vulnerabilities Dependency Status
XO Code Style used AVA Test Runner used Istanbul Test Coverage used NI Scaffolding System used NP Release System used
Latest version on npm Project license

🚸 Cross platform children list of a PID.
Coded with ❤️ by Simone Primarosa.


This package is really similar to ps-tree but is faster, safer and provides sub-children results.
Furthermore ps-tree is unmaintained.

Uuh, and a fancy CLI is also available!


var pidtree = require('pidtree')

// Get childs of current process
pidtree(, function (err, pids) {
  // => []

// Include the given pid in the result array
pidtree(, {root: true}, function (err, pids) {
  // => [727]

// Get all the processes of the System (-1 is a special value of this package)
pidtree(-1, function (err, pids) {
  // => [530, 42, ..., 41241]

// Include PPID in the results
pidtree(1, {advanced: true}, function (err, pids) {
  // => [{ppid: 1, pid: 530}, {ppid: 1, pid: 42}, ..., {ppid: 1, pid: 41241}]

// If no callback is given it returns a promise instead
const pids = await pidtree(1)
// => [141, 42, ..., 15242]


Linux FreeBSD NetBSD SunOS macOS Win AIX

✅ = Working ❓ = Not tested but should work

Please if your platform is not supported file an issue.


pidtree cli Show a tree of the processes inside your system inside your terminal.
npx pidtree $PPID

Just replace $PPID with one of the pids inside your system.

Or don't pass anything if you want all the pids inside your system.

npx pidtree

To display the output as a list, similar to the one produced from pgrep -P $PID, pass the --list flag.

npx pidtree --list


pidtree(pid, [options], [callback]) ⇒ [Promise.<Array.<Object>>]

Get the list of children pids of the given pid.

Kind: global function
Returns: Promise.<Array.<Object>> - Only when the callback is not provided.
Access: public

Param Type Default Description
pid Number | String A pid. If -1 will return all the pids.
[options] Object Optional options object.
[options.root] Boolean false Include the provided pid in the list. Ignored if -1 is passed as pid.
[callback] function Called when the list is ready. If not provided a promise is returned instead.


  • pidusage - Cross-platform process cpu % and memory usage of a PID


See also the list of contributors who participated in this project.


This project is licensed under the MIT License - see the license file for details.