Terminal GuideTerminal Guide
procs icon

procs

Modern CLI
macOSLinuxWindows
Rust

Modern ps replacement with color output and tree view.

Official Website

Features

Color OutputTree ViewDocker SupportWatch Mode
Replaces
ps

Installation

Homebrew
brew install procs
Pacman (Arch)
pacman -S procs
Cargo (Rust)
cargo install procs

Why use procs?

procs is a modern process viewer that includes all the functionality of the traditionalps command while significantly improving visibility and usability.

Color Display

Color-coded display based on CPU/memory usage. Instantly see resource-heavy processes.

Tree View

Display process parent-child relationships in tree format. Understand process hierarchy intuitively.

Watch Mode

Real-time updating display. Dynamic process monitoring like top.

Docker Support

Display Docker container names. Easier process management in container environments.

Basic Usage

Display Processes

Basic Commands
# Display all processes
procs

# Search by specific keyword
procs node

# Filter by multiple keywords (OR search)
procs python ruby

# Display by PID
procs --pid 1234

Output Example

PID:▲ User │ TTY │ CPU │ MEM │ CPU Time │ Command
1 root? 0.0 0.1 │ 00:00:02 │ /sbin/init
423 root? 0.0 0.2 │ 00:00:01 │ /usr/lib/systemd/systemd-journald
1024 daiaokipts/0 2.5 1.8 │ 00:05:23 │ node server.js
1156 daiaokipts/145.212.4 │ 01:23:45 │ python train.py
2048 daiaokipts/2 0.1 0.5 │ 00:00:15 │ vim config.toml

Colors change based on CPU/memory usage (green: low → yellow: medium → red: high)

Common Options

OptionDescriptionExample
-t, --treeDisplay in tree viewprocs --tree
-w, --watchWatch mode (real-time update)procs --watch
--watch-intervalSpecify update interval (milliseconds)procs -w --watch-interval 500
-a, --andAND search (match all keywords)procs -a python server
-o, --orOR search (default)procs -o node python
--sorta, --sortdAscending/descending sortprocs --sortd cpu
-i, --insertDisplay additional columnsprocs -i docker

Search and Filtering

Keyword Search

Search Options
# Search by command name
procs nginx

# Search by username
procs root

# Search by PID
procs 1234

# AND search (processes containing both)
procs -a python flask

# OR search (processes containing either)
procs node python ruby

Sorting and Display Order

Sort Options
# Sort by CPU usage (descending)
procs --sortd cpu

# Sort by memory usage (descending)
procs --sortd mem

# Sort by PID (ascending)
procs --sorta pid

# Sort by start time
procs --sortd start

Practical Examples

Tree View

Tree View
# Display process parent-child relationships in tree
procs --tree

# Display specific process and its children
procs --tree systemd

# Tree view + watch mode
procs --tree --watch
PID:▲ User │ CPU │ MEM │ Command
1 root0.00.1/sbin/init
423 root0.00.2├─ systemd-journald
512 root0.00.1├─ systemd-udevd
1024 daiaoki0.50.8├─ bash
1156 daiaoki2.11.5│ └─ node server.js
1200 daiaoki0.10.3│ └─ node worker.js

Watch Mode

Watch Mode
# Monitor processes in real-time
procs --watch

# Update every 500ms
procs --watch --watch-interval 500

# Monitor specific process
procs --watch node

# Monitor sorted by CPU usage
procs --watch --sortd cpu

Press q key to exit watch mode.

Docker Support

Docker Support
# Add Docker container name column
procs -i docker

# Display Docker container processes
procs -i docker nginx

# Filter by container name
procs my-container
PID:▲ User │ Docker │ CPU │ MEM │ Command
2048 rootnginx-proxy0.20.5nginx: master
2156 wwwnginx-proxy0.10.3nginx: worker
3072 rootpostgres-db1.52.1postgres
4096 nodeapp-backend3.24.5node index.js

Configuration and Customization

Configuration File

Customize default settings in ~/.config/procs/config.toml.

~/.config/procs/config.toml
# ~/.config/procs/config.toml

# Specify columns to display
[[columns]]
kind = "Pid"
style = "BrightYellow"
numeric_search = true
nonnumeric_search = false

[[columns]]
kind = "User"
style = "BrightCyan"

[[columns]]
kind = "Separator"
style = "White"

[[columns]]
kind = "CpuTime"
style = "BrightMagenta"

[[columns]]
kind = "Command"
style = "BrightWhite"

# Add Docker column
[[columns]]
kind = "Docker"
style = "BrightBlue"

# Pager settings
[pager]
mode = "Auto"  # Auto, Always, Disable

# Display style
[style]
header = "BrightWhite|Bold"
unit = "BrightWhite"

# Color theme
[style.by_percentage]
color_000 = "BrightBlue"
color_025 = "BrightGreen"
color_050 = "BrightYellow"
color_075 = "BrightRed"
color_100 = "BrightRed"

Custom Column Configuration

Column Customization
# Available column types
# Pid, User, Username, Uid, Gid, State, Nice, Priority
# Ppid, Threads, StartTime, CpuTime, Cpu, Mem, VmSize
# VmRss, VmPeak, ReadBytes, WriteBytes, Command, Docker
# and many more

# Add columns from command line
procs -i docker,state

# Specify display columns (recommended in config.toml)
procs --config minimal

Shell Alias Configuration

Alias Configuration
# ~/.bashrc or ~/.zshrc

# Replace ps with procs
alias ps='procs'

# Common formats
alias pst='procs --tree'
alias psw='procs --watch'
alias psc='procs --sortd cpu'
alias psm='procs --sortd mem'

# For Docker environments
alias psd='procs -i docker'

Comparison with ps

Featurepsprocs
Color Display-Color-coded by CPU/memory usage
Tree Viewps --forestBeautiful tree display
Watch Modewatch psBuilt-in support
Keyword Searchps aux | grep ...Direct argument search
Docker Support-Display container names
Column Customization-o optionFlexible with config file
PortabilityBuilt-in by defaultRequires separate installation

Tips and Tricks

  • Generate config file template with procs --gen-config
  • Interactive search is available with / key in watch mode
  • Some features (Docker column, etc.) may be limited on macOS
  • Color output is automatically disabled when piping to other commands. Force it with --color always
  • Find high-load processes with procs --sortd cpu or procs --sortd mem
Written by Dai AokiPublished: 2026-01-20

Related Articles

Explore More