@caarlos0/ttop
v0.2.0
Published
A tiny TUI that lists, filters and kills the processes running in every tmux pane.
Downloads
521
Readme
ttop
A tmux-aware process tree with
top-style CPU/memory views.
Sessions are tabs, each window a process tree, sorted by CPU or memory (busiest first). Navigate, filter, and kill — from any pane.
Sessions: dev* infra notes
PID CPU% MEM COMMAND (sort: CPU ▼)
▾ [2] api 4 proc · 14.2% · 354M
5990 0.0 9M └─ -fish
6021 13.7 320M └─ node server.js
6044 0.5 21M ├─ esbuild
6050 0.0 4M └─ tsc --watch
▾ [1] editor 2 proc · 1.8% · 89M
4775 0.0 9M └─ -fish
4810 1.8 80M └─ nvim
j/k move · ^u/^d page · g/G ends · h/l session · Enter fold · / filter · P cpu · M mem · t SIGTERM · x SIGKILL · q quitInstall
brew install --cask caarlos0/tap/ttop # homebrew
npm install -g @caarlos0/ttop # npm
npx @caarlos0/ttop # run without installing
cargo install --path . # from sourcettop reads your running tmux server, so run it from inside (or alongside) tmux.
Keys
Vim-style; arrows, Home/End and PageUp/PageDown work too.
| Key | Action |
| --- | --- |
| j / k | move (Ctrl-d/Ctrl-u half-page, g/G top/bottom) |
| h / l, Tab | switch session |
| Enter | fold / unfold window (⇧Enter for all) |
| / | filter by command or PID |
| P / M | sort by CPU / memory |
| t / x | SIGTERM / SIGKILL the selected process |
| q | quit |
CPU% is sampled between ~2s refreshes — the first frame reads ~0%, and a busy process can exceed 100% on multiple cores.
⇧Enter needs a terminal with keyboard-enhancement support; inside tmux, also
set -g extended-keys on.
