A system monitor for Linux, built in Elixir with ex_ratatui.
Catppuccin Macchiato theme · live CPU/GPU/memory charts · process management · BEAM runtime stats
- Dashboard - CPU cores, memory/swap/disk gauges, GPU usage (NVIDIA, AMD, Intel), and live charts
- Processes - sortable table, name/user/PID filter, send signals (TERM, KILL, STOP, CONT, HUP, INT)
- Network - per-interface throughput and history graph
- System - native host info (OS, kernel, desktop, battery, IPs, …) plus live BEAM/OTP runtime metrics
- Linux with
/procand/sys(tested on Ubuntu) - A terminal with true-color support
A compiled release is self-contained — you do not need Elixir or Erlang installed to run it.
- Elixir 1.19+ (see
mix.exs) - Erlang/OTP — OTP 29 is recommended. On Elixir 1.20.2, extop starts and exits noticeably faster on OTP 29 than on OTP 28.
Optional: gsettings for GTK theme details on the System tab.
git clone <repo-url>
cd extop
mix deps.get
mix runPress q or Esc to quit.
Build a standalone release:
MIX_ENV=prod mix releaseRun it directly - no start subcommand needed:
./_build/prod/rel/extop/bin/extopCopy _build/prod/rel/extop anywhere and run bin/extop from that directory.
Add the release bin directory to your PATH to run extop from anywhere:
export PATH="/path/to/extop/_build/prod/rel/extop/bin:$PATH"
extopFor a permanent setup, add that line to ~/.bashrc, ~/.zshrc, or your shell profile.
Release management commands still work when passed explicitly:
./bin/extop stop
./bin/extop remote
./bin/extop version| Key | Action |
|---|---|
1–4 / Tab |
Switch tabs |
q / Esc |
Quit |
↑ ↓ j |
Scroll / select process |
/ |
Filter processes |
p u n c m |
Sort by PID / user / name / CPU / mem |
t k s r h i |
Send signal to selected process |
r |
Refresh System tab info |
See LICENSE if present.
