procs CLI
Searchable processes and configurable columns help locate CPU load, listening ports and child commands from a terminal.
- 6,218 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Output can expose command arguments and process details within the user’s permissions.
Install
Manual install
nix-env --install procsFirst command-based option after the binary download: Nixpkgs.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Output can expose command arguments and process details within the user’s permissions.
This is third-party code. Review the repository files before installing.
What it does
Pass a command name or process ID to filter running programs. Configurable columns include memory, CPU time, storage throughput and TCP/UDP ports. Numeric searches match process IDs exactly by default; text searches partially match commands or users. Tree mode exposes parent-child relationships, and watch mode refreshes the table. A TOML configuration controls columns, search behavior and presentation. A terminal-enabled coding agent can use the output to investigate a local service.
Who it is for. Developers investigating which local command owns a port or spawned unexpected processes.
Good fit when
- A build has left child commands running, and the developer identifies their parent process.
- A user remembers part of a program name and finds it among running processes.
- Service load fluctuates, and an administrator watches CPU changes in a refreshing table.
- A developer places ports and memory usage beside the command name while inspecting a service.
Not a fit when
- You need a monitoring server retaining a day of historical load.
- Required metrics are unavailable on the selected operating system.
- The agent must not see process names or command arguments.
Example request
Show the build process tree and identify the command with the highest CPU usage without requesting extra privileges.Limitations
Columns depend on the OS: TCP ports are available on Linux, macOS and Windows; UDP ports on Linux and macOS. Support for macOS and FreeBSD is experimental, with macOS testing reported only in GitHub Actions. Without elevated rights, macOS hides other users’ processes and Linux hides some of their metrics, such as read/write throughput. Container names require access to the Docker socket; a normal process list does not.
How to disable. Press `q` in watch mode. Remove procs from diagnostic jobs and uninstall it through its original installation method.
FAQ
How can I install procs without compiling?
Download the matching archive from the [release page](https://github.com/dalance/procs/releases/latest) and extract the binary into a directory on `PATH`.
How do I see child processes?
Run `procs --tree` to display parent-child relationships on the left.
How do I sort by CPU?
Run `procs --sortd cpu`. Add `--watch` to refresh the table and press `q` to exit.
How do I search several processes?
Use `--or` to match any supplied argument. `procs --or 6000 60000 60001 16723` searches the listed process IDs; replace them with your PIDs.
Where can I list columns?
Run `procs --list`. Its column names are used for sorting and adding fields to the table.
Discussion
No questions or reviews yet.
Related
CLI toolsbottom displays processes, CPU load, memory, network and disks in the terminal with graphs, search and configurable widgets.
witr identifies the process holding a port or file and shows its startup chain, supervising service or container context.
PM2 is a process manager that saves background app lists for restart after reboot and displays their status in the terminal.
A single-container web dashboard for monitoring and controlling a fleet of 1C MCP servers: status, indexing progress, VRAM and license checks
Terminal diagnostics combine traceroute and ping so agents can compare routes, latency and missing probe responses.
Long jobs remain in a local queue after the terminal closes, with separate controls for execution order and captured output.
README in short
Linux and macOS use a pager for long output, while Windows uses the built-in pager. `procs --gen-config` prints a complete configuration example.