A static, keyboard-driven process snapshot browser for Linux, built for
screen-reader users. Unlike top/htop, aproc never auto-refreshes:
the process list is a frozen snapshot until you explicitly press Ctrl-R.
aproc [mem|memory|cpu|pid|name]
Defaults to mem if no argument given.
Up/Down— move selectionHome/End— jump to the first/last process in the listLeft/Right— change the displayed field (mem/cpu/pid/name/age/user) without resorting or refreshingEnter— show process detailsEsc— back out of any secondary view or prompt (details, filter, sort chooser, signal chooser, command prompt, error) and return to the listCtrl-R— take a new snapshot (explicit refresh; keeps current sort)/— filter by name or command line (operates on current snapshot only)s— open sort chooser:m/Mmem,c/Ccpu,n/Nname,p/Ppid (lowercase = default direction, uppercase = reversed); choosing a key refreshes the snapshotk— open signal chooser for the selected process (Up/Downto pick, or type a signal number + Enter; default is SIGTERM). An unrecognized number reportsunknown signal: Ninline and sends nothing.Ctrl-K— send SIGTERM to the selected PID immediately, bypassing the chooser!— run an external command against the selected processq— quit
{pid}— the process's PID{name}— the process's name{cmd}— the full command line, as one shell-quoted token{user}— the owning user
This list is also shown as a hint line under the ! prompt itself, so it is
discoverable without leaving the app. On Enter, aproc leaves its alternate
screen and hands the terminal to the command, then waits for you to press Enter
before restoring the UI, so the command's output stays readable.
Example: ! strace -p {pid}. Values are shell-escaped before substitution,
so process names/command lines containing spaces or shell metacharacters
cannot alter the command's structure. Unrecognized {...} placeholders are
left as-is.
CPU is shown as a lifetime average percentage: total CPU time consumed
by the process divided by its wall-clock age, not an instantaneous rate.
aproc never samples /proc twice to compute a live rate — that would
violate its no-polling design.