# procs — A Modern Replacement for ps Written in Rust > procs is a colorized, human-friendly replacement for the classic ps command, with built-in tree view, column filters, Docker integration, and TCP/UDP port display. ## Install Save in your project root: # procs — A Modern Replacement for ps Written in Rust ## Quick Use ```bash brew install procs # All processes, colorized procs # Only processes matching "node", with tree procs --tree node # Sort by memory desc, show TCP ports procs --sorta rss --insert tcp ``` ## Introduction `ps aux` is ubiquitous but its columns, flags, and BSD/SysV dialects are a minefield. `procs` offers a single, consistent, colorized view of running processes with sensible defaults: human-readable CPU/RAM, hostname resolution for TCP sockets, Docker container mapping, and a keyword filter that actually works. ## What procs Does - Lists processes with default columns: PID, user, RSS/VSZ, CPU, command. - Filters by keyword, user, or PID range. - Shows tree view with `--tree`. - Inserts optional columns for TCP/UDP ports, Docker container, cgroup, ctxsw. - Works on Linux, macOS, Windows. ## Architecture Overview procs reads `/proc` on Linux, `sysctl` on macOS, and the Windows management APIs. Columns are declarative via `~/.config/procs/config.toml`, and the rendering pipeline tokenizes, sorts, and paints with `termcolor`. A single Rust binary means no Python/Perl runtime required. ## Self-Hosting & Configuration - Install via brew, cargo, apt, dnf, scoop, winget. - `~/.config/procs/config.toml` customizes columns, colors, themes. - Pager integration via `PAGER=less` or built-in `--pager`. - JSON output for dashboards: `procs --json`. - Works inside containers if `/proc` is mounted. ## Key Features - Multi-OS (Linux, macOS, Windows) with consistent UX. - Rich filters and sorting. - Optional TCP/UDP port, Docker, cgroup columns. - Tree view for parent/child exploration. - Pager, watch mode (`--watch`), JSON export. ## Comparison with Similar Tools - **ps** — POSIX classic; cryptic flags. - **htop** — interactive TUI with CPU bars; heavier. - **btop** — even fancier TUI; same interactive niche. - **pgrep/pkill** — purpose-built; procs covers both plus display. - **glances** — Python monitor; slower startup. ## FAQ **Q: Can it show Docker containers?** A: Yes — `--insert docker` adds the container column. **Q: Does it work in restricted containers?** A: Requires `/proc` access; privileged containers or hostPID=true. **Q: Watch mode rate?** A: `--watch-interval 1` seconds. **Q: Windows support?** A: Yes — columns adapt to NT APIs. ## Sources - https://github.com/dalance/procs --- Source: https://tokrepo.com/en/workflows/bcafd7b6-389d-11f1-9bc6-00163e2b0d79 Author: AI Open Source